@nylas/web-elements 2.2.0 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/nylas-web-elements/{abstract-provider-D75Ucvku.js → abstract-provider-9AZudYSI.js} +2 -2
- package/dist/nylas-web-elements/{abstract-provider-D75Ucvku.js.map → abstract-provider-9AZudYSI.js.map} +1 -1
- package/dist/nylas-web-elements/add-circle-icon.entry.js +1 -1
- package/dist/nylas-web-elements/archive-icon.entry.js +1 -1
- package/dist/nylas-web-elements/arrow-icon.entry.js +1 -1
- package/dist/nylas-web-elements/bold-icon.entry.js +1 -1
- package/dist/nylas-web-elements/button-component.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-agenda-fill-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-agenda-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-cancel-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-check-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-info-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-patterns-icon.entry.js +1 -1
- package/dist/nylas-web-elements/checkbox-component.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/checkbox-component.entry.js +1 -1
- package/dist/nylas-web-elements/checkbox-component.entry.js.map +1 -1
- package/dist/nylas-web-elements/checkbox-group.entry.js +1 -1
- package/dist/nylas-web-elements/checkmark-circle-icon.entry.js +1 -1
- package/dist/nylas-web-elements/checkmark-icon.entry.js +1 -1
- package/dist/nylas-web-elements/chevron-icon.entry.js +1 -1
- package/dist/nylas-web-elements/clock-icon.entry.js +1 -1
- package/dist/nylas-web-elements/close-icon.entry.js +1 -1
- package/dist/nylas-web-elements/copy-icon.entry.js +1 -1
- package/dist/nylas-web-elements/{customParseFormat-Bk5PI6Cs.js → customParseFormat-BJNMxHY2.js} +2 -2
- package/dist/nylas-web-elements/{customParseFormat-Bk5PI6Cs.js.map → customParseFormat-BJNMxHY2.js.map} +1 -1
- package/dist/nylas-web-elements/delete-icon.entry.js +1 -1
- package/dist/nylas-web-elements/document-refresh-icon.entry.js +1 -1
- package/dist/nylas-web-elements/dragable-icon.entry.js +1 -1
- package/dist/nylas-web-elements/edit-icon.entry.js +1 -1
- package/dist/nylas-web-elements/envelope-fill-icon.entry.js +1 -1
- package/dist/nylas-web-elements/envelope-icon.entry.js +1 -1
- package/dist/nylas-web-elements/eye-icon.entry.js +1 -1
- package/dist/nylas-web-elements/feedback-icon.entry.js +1 -1
- package/dist/nylas-web-elements/flow-icon.entry.js +1 -1
- package/dist/nylas-web-elements/folder-icon.entry.js +1 -1
- package/dist/nylas-web-elements/forward-icon.entry.js +1 -1
- package/dist/nylas-web-elements/globe-icon.entry.js +1 -1
- package/dist/nylas-web-elements/google-logo-icon.entry.js +1 -1
- package/dist/nylas-web-elements/google-meet-icon.entry.js +1 -1
- package/dist/nylas-web-elements/inbox-icon.entry.js +1 -1
- package/dist/nylas-web-elements/{index-BVtainOy.js → index-BPPwIJj2.js} +2 -2
- package/dist/nylas-web-elements/{index-BVtainOy.js.map → index-BPPwIJj2.js.map} +1 -1
- package/dist/nylas-web-elements/{index-B-KMpdMZ.js → index-Cbn5rIwb.js} +2 -2
- package/dist/nylas-web-elements/index-Cbn5rIwb.js.map +1 -0
- package/dist/nylas-web-elements/index.esm.js +1 -1
- package/dist/nylas-web-elements/info-icon.entry.js +1 -1
- package/dist/nylas-web-elements/input-color-picker.entry.js +1 -1
- package/dist/nylas-web-elements/input-component.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/input-component.entry.js +1 -1
- package/dist/nylas-web-elements/input-component.entry.js.map +1 -1
- package/dist/nylas-web-elements/input-dropdown.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/input-dropdown.entry.js +1 -1
- package/dist/nylas-web-elements/input-dropdown.entry.js.map +1 -1
- package/dist/nylas-web-elements/input-image-url.entry.js +1 -1
- package/dist/nylas-web-elements/italic-icon.entry.js +1 -1
- package/dist/nylas-web-elements/loading-icon.entry.js +1 -1
- package/dist/nylas-web-elements/location-icon.entry.js +1 -1
- package/dist/nylas-web-elements/location-off-icon.entry.js +1 -1
- package/dist/nylas-web-elements/microsoft-logo-icon.entry.js +1 -1
- package/dist/nylas-web-elements/microsoft-teams-icon.entry.js +1 -1
- package/dist/nylas-web-elements/multi-select-dropdown.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/multi-select-dropdown.entry.js +1 -1
- package/dist/nylas-web-elements/multi-select-dropdown.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-additional-participants.entry.js +1 -1
- package/dist/nylas-web-elements/{nylas-api-request-B1V2koVc.js → nylas-api-request-rYAjhY1J.js} +2 -2
- package/dist/nylas-web-elements/{nylas-api-request-B1V2koVc.js.map → nylas-api-request-rYAjhY1J.js.map} +1 -1
- package/dist/nylas-web-elements/nylas-availability-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-booked-event-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-booking-calendar-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-booking-confirmation-redirect.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-booking-confirmation-type.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-booking-form-config.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-booking-form.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-buffer-time.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-calendar-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-cancel-booking-form.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-cancellation-policy.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-cancellation-policy.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-cancellation-policy.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-cancelled-event-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-confirmation-email.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-confirmed-event-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-connected-calendars.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-custom-booking-flow.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-custom-event-slug.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-customize-booking-settings.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-customize-booking-settings.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-customize-booking-settings.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-date-component.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-date-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-date-picker.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-disable-emails.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-editor-tabs-group.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-editor-tabs-group.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-editor-tabs-group.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-editor-tabs.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-editor-tabs.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-editor-tabs.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-calendar.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-capacity.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-description.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-description.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-description.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-duration.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-duration.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-duration.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-info.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-limits.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-limits.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-limits.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-location.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-location.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-location.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-timeslot.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-title.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-title.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-title.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-feedback-form.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-form-card.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-form-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-form-card.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-limit-future-bookings.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-list-configurations.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-locale-switch.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-logo.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-min-booking-notice.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-min-cancellation-notice.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-notification.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-notification.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-organizer-confirmation-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-page-name.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-page-name.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-page-name.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-page-styling.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-participant-booking-calendars.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-participants-custom-availability.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-reminder-emails.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-reminder-time.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-scheduler-editor.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js +3 -3
- package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-scheduling-method.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-scheduling.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-select-event-type.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-selected-event-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-specific-time-availability-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-time-window-picker.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-time-window-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-time-window-picker.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-timeslot-interval.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-timeslot-interval.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-timeslot-interval.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-timeslot-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
- package/dist/nylas-web-elements/nylas-web-elements.esm.js.map +1 -1
- package/dist/nylas-web-elements/paintbrush-fill-icon.entry.js +1 -1
- package/dist/nylas-web-elements/paintbrush-icon.entry.js +1 -1
- package/dist/nylas-web-elements/people-icon.entry.js +1 -1
- package/dist/nylas-web-elements/person-clipboard-icon.entry.js +1 -1
- package/dist/nylas-web-elements/person-icon.entry.js +1 -1
- package/dist/nylas-web-elements/play-icon.entry.js +1 -1
- package/dist/nylas-web-elements/plus-icon.entry.js +1 -1
- package/dist/nylas-web-elements/radio-button-group.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/radio-button-group.entry.js +1 -1
- package/dist/nylas-web-elements/radio-button-group.entry.js.map +1 -1
- package/dist/nylas-web-elements/refresh-icon.entry.js +1 -1
- package/dist/nylas-web-elements/{register-component-BHk70oxk.js → register-component-Blj8K64f.js} +2 -2
- package/dist/nylas-web-elements/{register-component-BHk70oxk.js.map → register-component-Blj8K64f.js.map} +1 -1
- package/dist/nylas-web-elements/reply-all-icon.entry.js +1 -1
- package/dist/nylas-web-elements/reply-icon.entry.js +1 -1
- package/dist/nylas-web-elements/search-icon.entry.js +1 -1
- package/dist/nylas-web-elements/select-dropdown.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/select-dropdown.entry.js +1 -1
- package/dist/nylas-web-elements/select-dropdown.entry.js.map +1 -1
- package/dist/nylas-web-elements/sent-icon.entry.js +1 -1
- package/dist/nylas-web-elements/spam-icon.entry.js +1 -1
- package/dist/nylas-web-elements/star-icon.entry.js +1 -1
- package/dist/nylas-web-elements/stop-icon.entry.js +1 -1
- package/dist/nylas-web-elements/textarea-component.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/textarea-component.entry.js +1 -1
- package/dist/nylas-web-elements/textarea-component.entry.js.map +1 -1
- package/dist/nylas-web-elements/time-period-selector.entry.js +1 -1
- package/dist/nylas-web-elements/toggle-switch.entry.js +1 -1
- package/dist/nylas-web-elements/tooltip-component.entry.js +1 -1
- package/dist/nylas-web-elements/translate-icon.entry.js +1 -1
- package/dist/nylas-web-elements/trash-fill-icon.entry.js +1 -1
- package/dist/nylas-web-elements/trash-icon.entry.js +1 -1
- package/dist/nylas-web-elements/underline-icon.entry.js +1 -1
- package/dist/nylas-web-elements/{utils-Bj5Y75fX.js → utils-DhmCcrVs.js} +3 -3
- package/dist/nylas-web-elements/{utils-Bj5Y75fX.js.map → utils-DhmCcrVs.js.map} +1 -1
- package/dist/nylas-web-elements/warning-icon.entry.js +1 -1
- package/dist/nylas-web-elements/zoom-icon.entry.js +1 -1
- package/dist/types/components/design-system/input-component/input-component.d.ts +1 -0
- package/dist/types/components/design-system/multi-select-dropdown/multi-select-dropdown.d.ts +1 -0
- package/dist/types/components/design-system/textarea-component/textarea-component.d.ts +1 -0
- package/dist/types/components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings.d.ts +1 -1
- package/dist/types/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.d.ts +1 -0
- package/dist/types/components.d.ts +4 -4
- package/package.json +3 -3
- package/readme.md +1 -1
- package/dist/nylas-web-elements/index-B-KMpdMZ.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nylas-scheduler-editor.entry.esm.js","sources":["src/connector/shared/api/scheduler-config.ts","src/connector/nylas-scheduler-config-connector/index.ts","src/stores/scheduler-config-store.ts","../nylas-identity/esm/client/localStorage.js","../nylas-identity/esm/client/store.js","../nylas-identity/esm/client/indexedDB.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/rng.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/regex.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/validate.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/stringify.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v1.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/parse.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v35.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/md5.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v3.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v4.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/sha1.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v5.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/nil.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/version.js","../../node_modules/.pnpm/@microsoft+fetch-event-source@2.0.1/node_modules/@microsoft/fetch-event-source/lib/esm/parse.js","../../node_modules/.pnpm/@microsoft+fetch-event-source@2.0.1/node_modules/@microsoft/fetch-event-source/lib/esm/fetch.js","../nylas-identity/esm/helpers/index.js","../../node_modules/.pnpm/jwt-decode@3.1.2/node_modules/jwt-decode/build/jwt-decode.esm.js","../nylas-identity/esm/app.js","../../node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react.production.min.js","../../node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react.development.js","../../node_modules/.pnpm/react@18.2.0/node_modules/react/index.js","../nylas-identity/esm/helpers/hooks.js","src/components/scheduler-editor/nylas-scheduler-editor/LoginRequired.tsx","src/components/scheduler-editor/nylas-scheduler-editor/ExpressFlow.tsx","src/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.scss?tag=nylas-scheduler-editor&encapsulation=shadow","src/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.tsx"],"sourcesContent":["import { NylasApiRequest } from '../../../common/nylas-api-request';\nimport { NylasSchedulerConfigStoreType } from '@/stores/scheduler-config-store';\nimport { dataResponse, getCalendarRange } from '@/utils/utils';\nimport {\n Calendar,\n Configuration,\n EventDetails,\n GroupConfiguration,\n GroupEvent,\n GroupEventAPIData,\n ImportGroupEventDetails,\n ImportGroupEventResponse,\n NylasResponse,\n RecurrenceDeleteOption,\n RecurrenceUpdateOption,\n isNylasErrorResponse,\n} from '@nylas/core';\nimport dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\ntype NylasSchedulerConfigAPIConnectorOptions = {\n nylasApiRequest?: NylasApiRequest;\n nylasSchedulerConfigStore: NylasSchedulerConfigStoreType;\n};\n\ntype GroupEventsCache = {\n data: GroupEventAPIData[];\n timestamp: number;\n};\n\n/**\n * Nylas Scheduler Config API Connector\n * This class is responsible for making API requests to the Nylas API for Scheduler Configurations.\n */\nexport class NylasSchedulerConfigAPIConnector {\n private nylasApiRequest?: NylasApiRequest;\n private nylasSchedulerConfigStore: NylasSchedulerConfigStoreType;\n private groupEventsCache: Map<string, GroupEventsCache> = new Map();\n private readonly CACHE_DURATION = 1 * 60 * 1000; //1 minute in milliseconds\n\n constructor({ nylasApiRequest, nylasSchedulerConfigStore }: NylasSchedulerConfigAPIConnectorOptions) {\n this.nylasApiRequest = nylasApiRequest;\n this.nylasSchedulerConfigStore = nylasSchedulerConfigStore;\n }\n\n /**\n * Get the current user.\n * @returns The current user or null if the request is not initialized.\n */\n public async currentUser() {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return null;\n }\n\n return this.nylasApiRequest.currentUser();\n }\n\n /**\n * Get the current user's calendars.\n * @returns The current user's calendars or an error if the request is not initialized.\n */\n public async getCalendars() {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error fetching calendars: Nylas API Request is not initialized',\n });\n }\n\n const allCalendars: Calendar[] = [];\n let cursor: string | null = null;\n const limit = 50;\n\n do {\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Calendar[]>>({\n method: 'GET',\n path: `calendars?limit=${limit}${cursor ? `&page_token=${cursor}` : ''}`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error fetching calendars: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error fetching calendars: ' + response.error?.message,\n });\n }\n\n // Add the current page of calendars to our collection\n allCalendars.push(...response.data);\n\n // Update cursor for next iteration\n cursor = response.next_cursor || null;\n } while (cursor);\n\n // Set all calendars as the current calendars\n this.nylasSchedulerConfigStore.state.calendars = allCalendars;\n\n return dataResponse(allCalendars);\n }\n\n /**\n * Get a configuration by its ID.\n * @param configurationId The ID of the configuration to fetch.\n */\n public async getConfigurationById(configurationId: string, forceFetch: boolean = false) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error fetching configuration: Nylas API Request is not initialized',\n });\n }\n\n // If the configuration is already in the store, return it\n if (!forceFetch) {\n const existingConfig = this.nylasSchedulerConfigStore.state.configurations.find(c => c.id === configurationId);\n if (existingConfig) {\n this.nylasSchedulerConfigStore.state.selectedConfiguration = existingConfig;\n return dataResponse(existingConfig);\n }\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Configuration>>({\n method: 'GET',\n path: `scheduling/configurations/${configurationId}`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error fetching configuration: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error fetching configuration: ' + response.error?.message,\n });\n }\n\n // Set the new configuration as the current configuration\n this.nylasSchedulerConfigStore.state.selectedConfiguration = response.data;\n\n // If the configuration was updated, update the list of configurations\n // If it doesn't exist, add it to the list\n if (this.nylasSchedulerConfigStore.state.configurations.find(c => c.id === configurationId)) {\n this.nylasSchedulerConfigStore.state.configurations = this.nylasSchedulerConfigStore.state.configurations.map(c => (c.id === configurationId ? response.data : c));\n } else {\n this.nylasSchedulerConfigStore.state.configurations = [...this.nylasSchedulerConfigStore.state.configurations, response.data];\n }\n\n return dataResponse(response.data);\n }\n\n /**\n * Get all configurations.\n * @returns The list of configurations or an error if the request is not initialized.\n */\n public async getConfigurations(cursor?: string) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error fetching configurations: Nylas API Request is not initialized',\n });\n }\n const limit = 50;\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Configuration[]>>({\n method: 'GET',\n path: `scheduling/configurations?limit=${limit}${cursor ? `&page_token=${cursor}` : ''}`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error fetching configurations: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error fetching configurations: ' + response.error?.message,\n });\n }\n\n // Set the configurations in the store\n this.nylasSchedulerConfigStore.state.configurations = response.data;\n this.nylasSchedulerConfigStore.state.listConfigurationsNextCursor = response.next_cursor || null;\n return dataResponse(response.data);\n }\n\n /**\n * Get master event by its ID.\n */\n public async getMasterEventById(masterEventId: string) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error fetching master event: Nylas API Request is not initialized',\n });\n }\n\n const selectedGroupEvent = this.nylasSchedulerConfigStore.state.selectedGroupEvent;\n const calendar_id = selectedGroupEvent?.event?.calendar_id;\n if (!calendar_id) {\n console.warn('Calendar ID is not present');\n return dataResponse(null, {\n message: 'Error fetching master event: Calendar ID is not present',\n });\n }\n const queryParamsObject = new URLSearchParams();\n queryParamsObject.append('calendar_id', calendar_id);\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<EventDetails>>({\n method: 'GET',\n path: `events/${masterEventId}?${queryParamsObject.toString()}`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error fetching master event: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error fetching master event: ' + response.error?.message,\n });\n }\n\n const masterGroupEvents = this.nylasSchedulerConfigStore.state.masterGroupEvents;\n // Set the new master event as the current master event\n if (masterGroupEvents[masterEventId]) {\n this.nylasSchedulerConfigStore.state.masterGroupEvents[masterEventId] = response.data;\n } else {\n this.nylasSchedulerConfigStore.state.masterGroupEvents = { ...masterGroupEvents, [masterEventId]: response.data };\n }\n\n return dataResponse(response.data);\n }\n\n /**\n * Create a new configuration.\n * @param configuration The configuration to create.\n * @returns The new configuration or an error if the request is not initialized.\n */\n public async createConfiguration(configuration: Omit<Partial<Configuration>, 'id'>) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error creating configuration: Nylas API Request is not initialized',\n });\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Configuration>>({\n method: 'POST',\n path: `scheduling/configurations`,\n body: configuration,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error creating configuration: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error creating configuration: ' + response.error?.message,\n });\n }\n\n // Set the new configuration as the current configuration\n this.nylasSchedulerConfigStore.state.selectedConfiguration = response.data;\n\n // Add the new configuration to the list of configurations\n this.nylasSchedulerConfigStore.state.configurations = [...this.nylasSchedulerConfigStore.state.configurations, response.data];\n\n return dataResponse(response.data);\n }\n\n /**\n * Update an existing configuration.\n * @param configuration The configuration to update.\n * @returns The updated configuration or an error if the request is not initialized.\n */\n public async updateConfiguration(configuration: Partial<Configuration>) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error updating configuration: Nylas API Request is not initialized',\n });\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Configuration>>({\n method: 'PUT',\n path: `scheduling/configurations/${configuration.id}`,\n body: configuration,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error updating configuration: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error updating configuration: ' + response.error?.message,\n });\n }\n\n // Set the new configuration as the current configuration\n this.nylasSchedulerConfigStore.state.selectedConfiguration = response.data;\n\n // If the configuration was updated, update the list of configurations\n // If it doesn't exist, add it to the list\n if (this.nylasSchedulerConfigStore.state.configurations.find(c => c.id === configuration.id)) {\n this.nylasSchedulerConfigStore.state.configurations = this.nylasSchedulerConfigStore.state.configurations.map(c => (c.id === configuration.id ? response.data : c));\n } else {\n this.nylasSchedulerConfigStore.state.configurations = [...this.nylasSchedulerConfigStore.state.configurations, response.data];\n }\n\n return dataResponse(response.data);\n }\n\n /**\n * Delete a configuration by its ID.\n * @param configurationId The ID of the configuration to delete.\n * @returns The deleted configuration or an error if the request is not initialized.\n */\n public async deleteConfiguration(configurationId: string) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error deleting configuration: Nylas API Request is not initialized',\n });\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Configuration>>({\n method: 'DELETE',\n path: `scheduling/configurations/${configurationId}`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error deleting configuration: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error deleting configuration: ' + response.error?.message,\n });\n }\n\n // Remove the configuration from the list\n this.nylasSchedulerConfigStore.state.configurations = this.nylasSchedulerConfigStore.state.configurations.filter(c => c.id !== configurationId);\n\n // If the deleted configuration was the current configuration, reset it\n if (this.nylasSchedulerConfigStore.state.selectedConfiguration?.id === configurationId) {\n this.nylasSchedulerConfigStore.resetSelectedConfiguration();\n }\n\n return dataResponse(response.data);\n }\n\n /**\n * Create a group event.\n * @param eventDetails The group event to create.\n * @returns The group event or an error if the request is not initialized.\n */\n public async createGroupEvent(eventDetails: Omit<Partial<GroupEvent>, 'id'>, configurationId: string) {\n this.nylasSchedulerConfigStore.state.isLoading = true;\n\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error creating group event: Nylas API Request is not initialized',\n });\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<GroupEventAPIData>>({\n method: 'POST',\n path: `scheduling/configurations/${configurationId}/group-events`,\n body: eventDetails,\n });\n\n if (error) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error creating group event: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error creating group event: ' + response.error?.message,\n });\n }\n\n // Set the new configuration as the current configuration\n this.nylasSchedulerConfigStore.state.selectedGroupEvent = response.data;\n\n // Get the list of group events\n await this.getGroupEvents(configurationId, this.nylasSchedulerConfigStore.state.selectedConfiguration as Configuration | GroupConfiguration);\n\n this.nylasSchedulerConfigStore.state.isLoading = false;\n\n return dataResponse(response.data);\n }\n\n /**\n * Get a list of group events for a configuration.\n */\n public async getGroupEvents(configurationId: string, selectedConfiguration: Configuration | GroupConfiguration) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error fetching group events: Nylas API Request is not initialized',\n });\n }\n\n const queryParamsObject = new URLSearchParams();\n queryParamsObject.append('show_all', 'true');\n\n const calendarViewDateRange = this.nylasSchedulerConfigStore.state.calendarViewDateRange;\n let startTime: string;\n let endTime: string;\n\n if (calendarViewDateRange) {\n startTime = calendarViewDateRange.start_time;\n endTime = calendarViewDateRange.end_time;\n } else {\n const range = getCalendarRange(new Date().toISOString(), 'week');\n startTime = range.startTime.toString();\n endTime = range.endTime.toString();\n }\n\n // Create a cache key from the time range\n const cacheKey = `${configurationId}-${startTime}-${endTime}`;\n const cachedData = this.groupEventsCache.get(cacheKey);\n\n // Check if we have valid cached data\n if (cachedData && Date.now() - cachedData.timestamp < this.CACHE_DURATION) {\n this.nylasSchedulerConfigStore.state.groupEvents = cachedData.data;\n return dataResponse(cachedData.data);\n }\n\n queryParamsObject.append('start_time', startTime);\n queryParamsObject.append('end_time', endTime);\n\n const calendar_id = (selectedConfiguration as GroupConfiguration)?.group_booking?.calendar_id;\n if (calendar_id) {\n queryParamsObject.append('calendar_id', calendar_id);\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<GroupEventAPIData[]>>({\n method: 'GET',\n path: `scheduling/configurations/${configurationId}/group-events?${queryParamsObject.toString()}`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error fetching group events: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error fetching group events: ' + response.error?.message,\n });\n }\n\n // Update cache with new data\n this.groupEventsCache.set(cacheKey, {\n data: response.data,\n timestamp: Date.now(),\n });\n\n // Clean up expired cache entries\n this.cleanupExpiredCache();\n\n // Set the group events in the store\n this.nylasSchedulerConfigStore.state.groupEvents = response.data;\n\n return dataResponse(response.data);\n }\n\n /**\n * Clean up expired cache entries\n */\n private cleanupExpiredCache() {\n const now = Date.now();\n for (const [key, value] of this.groupEventsCache.entries()) {\n if (now - value.timestamp > this.CACHE_DURATION) {\n this.groupEventsCache.delete(key);\n }\n }\n }\n\n /**\n * Update a group event.\n */\n public async updateGroupEventById(groupEventDetails: Partial<GroupEvent>, configurationId: string) {\n this.nylasSchedulerConfigStore.state.isLoading = true;\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error updating group event: Nylas API Request is not initialized',\n });\n }\n const groupEventId = groupEventDetails.id;\n delete groupEventDetails.id;\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<GroupEventAPIData>>({\n method: 'PATCH',\n path: `scheduling/configurations/${configurationId}/group-events/${groupEventId}`,\n body: groupEventDetails,\n });\n\n if (error) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error updating group event: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error updating group event: ' + response.error?.message,\n });\n }\n\n // Set the new group event as the current group event\n this.nylasSchedulerConfigStore.state.selectedGroupEvent = response.data;\n\n // If the group event was updated, update the list of group events\n await this.getGroupEvents(configurationId, this.nylasSchedulerConfigStore.state.selectedConfiguration as Configuration | GroupConfiguration);\n\n this.nylasSchedulerConfigStore.state.isLoading = false;\n\n return dataResponse(response.data);\n }\n /**\n * Updates a group event based on recurrence logic.\n */\n public async updateGroupEvent(groupEventDetails: GroupEvent, chosenOption: RecurrenceUpdateOption, configurationId: string) {\n this.nylasSchedulerConfigStore.state.isLoading = true;\n const selectedGroupEvent = this.nylasSchedulerConfigStore.state.selectedGroupEvent;\n const masterEventId = selectedGroupEvent?.event?.master_event_id;\n const selectedGroupEventId = selectedGroupEvent?.event?.id;\n const selectedGroupEventStartTime = selectedGroupEvent?.event?.when?.start_time;\n const rruleString = selectedGroupEvent?.group_event_info?.rrule?.[0];\n const rruleStringWithoutUntil = rruleString\n ? rruleString\n .split(';')\n .filter(s => !s.startsWith('UNTIL'))\n .join(';')\n : '';\n const until = selectedGroupEventStartTime\n ? dayjs(selectedGroupEventStartTime * 1000)\n .subtract(1, 'minute')\n .format('YYYYMMDDTHHmmss[Z]')\n : '';\n if (chosenOption === 'this') {\n // Update only the current event (sub-event)\n return this.updateGroupEventById(\n {\n ...groupEventDetails,\n id: selectedGroupEventId,\n recurrence: masterEventId ? undefined : groupEventDetails.recurrence,\n },\n configurationId,\n );\n } else if (chosenOption === 'future' && masterEventId) {\n // 1️⃣ Create a new recurrence event with the same recurrence as before\n const newRecurrenceEvent = await this.createGroupEvent(groupEventDetails, configurationId);\n // 2️⃣ Update master event with UNTIL\n const updatedMasterEvent = {\n location: selectedGroupEvent?.event?.location,\n conferencing: selectedGroupEvent?.event?.conferencing,\n title: selectedGroupEvent?.event?.title,\n description: selectedGroupEvent?.event?.description,\n capacity: selectedGroupEvent?.group_event_info?.capacity,\n calendar_id: selectedGroupEvent?.event?.calendar_id,\n recurrence: rruleStringWithoutUntil ? [rruleStringWithoutUntil + ';UNTIL=' + until] : [`RRULE:FREQ=DAILY;UNTIL=${until}`],\n };\n await this.updateGroupEventById(\n {\n ...updatedMasterEvent,\n id: masterEventId,\n },\n configurationId,\n );\n return [updatedMasterEvent, newRecurrenceEvent];\n } else if (chosenOption === 'all') {\n // Update the master event\n // Check if the when is different\n const groupEventDetailsWhen = groupEventDetails?.when;\n const selectedGroupEventWhen = selectedGroupEvent?.event?.when;\n const masterEvent = this.nylasSchedulerConfigStore.state.masterGroupEvents?.[masterEventId as string];\n let when = masterEvent?.when;\n\n if (groupEventDetailsWhen?.start_time !== selectedGroupEventWhen?.start_time) {\n when = {\n ...when,\n start_time: groupEventDetailsWhen?.start_time || when?.start_time,\n };\n }\n if (groupEventDetailsWhen?.end_time !== selectedGroupEventWhen?.end_time) {\n when = {\n ...when,\n end_time: groupEventDetailsWhen?.end_time || when?.end_time,\n };\n }\n if (groupEventDetailsWhen?.start_timezone !== selectedGroupEventWhen?.start_timezone) {\n when = {\n ...when,\n start_timezone: groupEventDetailsWhen?.start_timezone || when?.start_timezone,\n };\n }\n if (groupEventDetailsWhen?.end_timezone !== selectedGroupEventWhen?.end_timezone) {\n when = {\n ...when,\n end_timezone: groupEventDetailsWhen?.end_timezone || when?.end_timezone,\n };\n }\n\n return this.updateGroupEventById(\n {\n ...groupEventDetails,\n when: when,\n id: masterEventId,\n },\n configurationId,\n );\n }\n\n this.nylasSchedulerConfigStore.state.isLoading = false;\n throw new Error('Invalid option');\n }\n\n /**\n * Delete a group event.\n */\n public async deleteGroupEvent(_groupEventDetails: GroupEvent, chosenOption: RecurrenceDeleteOption, configurationId: string) {\n this.nylasSchedulerConfigStore.state.isLoading = true;\n const selectedGroupEvent = this.nylasSchedulerConfigStore.state.selectedGroupEvent;\n const masterEventId = selectedGroupEvent?.event?.master_event_id;\n const selectedGroupEventId = selectedGroupEvent?.event?.id;\n const selectedGroupEventStartTime = selectedGroupEvent?.event?.when?.start_time;\n const rruleString = selectedGroupEvent?.group_event_info?.rrule?.[0];\n const rruleStringWithoutUntil = rruleString\n ? rruleString\n .split(';')\n .filter(s => !s.startsWith('UNTIL'))\n .join(';')\n : '';\n const until = selectedGroupEventStartTime ? dayjs(selectedGroupEventStartTime * 1000).format('YYYYMMDDTHHmmss[Z]') : '';\n const updatedMasterEvent = {\n location: selectedGroupEvent?.event?.location,\n conferencing: selectedGroupEvent?.event?.conferencing,\n title: selectedGroupEvent?.event?.title,\n description: selectedGroupEvent?.event?.description,\n capacity: selectedGroupEvent?.group_event_info?.capacity,\n calendar_id: selectedGroupEvent?.event?.calendar_id,\n recurrence: rruleStringWithoutUntil ? [rruleStringWithoutUntil + ';UNTIL=' + until] : [`RRULE:UNTIL=${until}`],\n };\n\n if (chosenOption === 'this' && selectedGroupEventId) {\n // Delete only the current event (sub-event)\n return this.deleteGroupEventById(selectedGroupEventId, configurationId);\n } else if (chosenOption === 'future' && masterEventId && selectedGroupEventId) {\n // Delete current event\n await this.deleteGroupEventById(selectedGroupEventId, configurationId);\n // Update master event with UNTIL\n return await this.updateGroupEventById(\n {\n ...updatedMasterEvent,\n id: masterEventId,\n },\n configurationId,\n );\n } else if (chosenOption === 'all' && masterEventId) {\n // Delete all events\n return this.deleteGroupEventById(masterEventId, configurationId);\n }\n\n this.nylasSchedulerConfigStore.state.isLoading = false;\n throw new Error('Invalid option');\n }\n\n /**\n * Delete a group event by its ID.\n */\n public async deleteGroupEventById(groupEventId: string, configurationId: string) {\n this.nylasSchedulerConfigStore.state.isLoading = true;\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error deleting group event: Nylas API Request is not initialized',\n });\n }\n\n const queryParamsObject = new URLSearchParams();\n const calendar_id = (this.nylasSchedulerConfigStore.state.selectedConfiguration as GroupConfiguration)?.group_booking?.calendar_id;\n if (calendar_id) {\n queryParamsObject.append('calendar_id', calendar_id);\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<GroupEventAPIData>>({\n method: 'DELETE',\n path: `scheduling/configurations/${configurationId}/group-events/${groupEventId}?calendar_id=${calendar_id}`,\n });\n\n if (error) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error deleting group event: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error deleting group event: ' + response.error?.message,\n });\n }\n\n // If the group event was delete, update the list of group events\n await this.getGroupEvents(configurationId, this.nylasSchedulerConfigStore.state.selectedConfiguration as Configuration | GroupConfiguration);\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(response.data);\n }\n\n /**\n * Import a group event.\n */\n public async importGroupEvent(groupEventDetails: ImportGroupEventDetails[], configurationId: string) {\n this.nylasSchedulerConfigStore.state.isLoading = true;\n\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error importing group event: Nylas API Request is not initialized',\n });\n }\n\n const queryParamsObject = new URLSearchParams();\n const calendar_id = (this.nylasSchedulerConfigStore.state.selectedConfiguration as GroupConfiguration)?.group_booking?.calendar_id;\n if (calendar_id) {\n queryParamsObject.append('calendar_id', calendar_id);\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<ImportGroupEventResponse>>({\n method: 'POST',\n path: `scheduling/configurations/${configurationId}/import-group-events?${queryParamsObject.toString()}`,\n body: groupEventDetails,\n });\n\n if (error) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error importing group event: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error importing group event: ' + response.error?.message,\n });\n }\n\n // Update the list of group events\n if (response.data?.imported_events?.length > 0) {\n await this.getGroupEvents(configurationId, this.nylasSchedulerConfigStore.state.selectedConfiguration as Configuration | GroupConfiguration);\n }\n\n this.nylasSchedulerConfigStore.state.isLoading = false;\n\n return dataResponse(response.data);\n }\n}\n","import { NylasApiRequest } from '@/common/nylas-api-request';\nimport { NylasSchedulerConfigStoreType } from '../../stores/scheduler-config-store';\nimport { debug } from '@/utils/utils';\nimport { NylasSchedulerConfigAPIConnector } from '../shared/api/scheduler-config';\n\ntype NylasSchedulerConfigConnectorOptions = {\n nylasSchedulerConfigStore: NylasSchedulerConfigStoreType;\n nylasApiRequest?: NylasApiRequest;\n};\n\nexport class NylasSchedulerConfigConnector {\n public nylasApiRequest?: NylasApiRequest;\n public nylasSchedulerConfigStore: NylasSchedulerConfigStoreType;\n\n private _schedulerConfigConnector: NylasSchedulerConfigAPIConnector | undefined;\n\n constructor({ nylasApiRequest, nylasSchedulerConfigStore }: NylasSchedulerConfigConnectorOptions) {\n this.nylasApiRequest = nylasApiRequest;\n this.nylasSchedulerConfigStore = nylasSchedulerConfigStore;\n }\n\n public init() {\n debug('NylasSchedulerConfigConnector init');\n }\n\n public get schedulerConfigStore() {\n return this.nylasSchedulerConfigStore;\n }\n\n public get schedulerConfig() {\n if (this._schedulerConfigConnector) {\n return this._schedulerConfigConnector;\n }\n\n this._schedulerConfigConnector = new NylasSchedulerConfigAPIConnector({\n nylasApiRequest: this.nylasApiRequest,\n nylasSchedulerConfigStore: this.nylasSchedulerConfigStore,\n });\n return this._schedulerConfigConnector;\n }\n\n public resetStores() {\n debug('NylasSchedulerConfigConnector resetStores');\n this.nylasSchedulerConfigStore.reset();\n }\n\n public async logout() {\n debug('NylasSchedulerConfigConnector logout');\n this.resetStores();\n }\n}\n\nexport type PublicMethods<T> = {\n [K in keyof T]: T[K] extends Function ? (string extends K ? never : K) : never;\n}[keyof T];\n\nexport type NylasSchedulerConfigConnectorPublicMethods = PublicMethods<NylasSchedulerConfigConnector>;\n","import { AdditionalParticipant, Calendar, Configuration, EventDetails, GroupConfiguration, GroupEventAPIData, EnableEventTypes, ThemeConfig } from '@nylas/core';\nimport { ObservableMap, createStore } from '@stencil/store';\nimport { User } from '../common/nylas-api-request';\nimport { CONFIGURATION_EVENT_TYPE, EXPERIMENTAL_FEATURES } from '@/common/constants';\n\ntype RecursivePartial<T> = {\n [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object | undefined ? RecursivePartial<T[P]> : T[P];\n};\n\nexport interface NylasSchedulerConfigStoreState {\n /**\n * The selected configuration.\n * This is the configuration that is currently selected, use it to populate default values for new configurations.\n */\n selectedConfiguration: RecursivePartial<Configuration> | RecursivePartial<GroupConfiguration>;\n /**\n * The list of configurations.\n * This is the list of configurations that the user has created.\n */\n configurations: Configuration[];\n /**\n * The list of calendars.\n * This is the list of calendars that the user has access to.\n */\n calendars: Calendar[];\n /**\n * The current user.\n * This is the user that is currently logged in.\n */\n currentUser: User | null;\n /**\n * The current action.\n * This is the current action that the user is performing.\n */\n action: 'create' | 'create-select' | 'edit' | null;\n /**\n * The additional participants.\n */\n additionalParticipants: AdditionalParticipant[];\n /**\n * The next cursor for list configurations.\n */\n listConfigurationsNextCursor: string | null;\n /**\n * The conference providers.\n */\n conferenceProviders?: Record<'microsoft' | 'zoom' | 'google', string>;\n /**\n * The flag to determine if the slug is required\n */\n requiresSlug: boolean;\n /**\n * The selected language.\n */\n selectedLanguage?: string;\n /**\n * The flag to show or hide the option to manage nylas branding in the email template.\n */\n nylasBranding?: boolean;\n /**\n * The experimental features.\n */\n experimentalFeatures?: Record<EXPERIMENTAL_FEATURES, boolean>;\n /**\n * Controls which event types are enabled in the Scheduler.\n *\n * - By default, all event types are enabled and users will see a selection screen when creating a new event.\n * - You can disable specific event types by setting them to `false`.\n * - At least one event type must remain enabled at all times.\n * - If only one event type is enabled, the event type selection screen will be skipped.\n */\n enableEventTypes?: EnableEventTypes;\n /**\n * The selected event type for creating a new configuration.\n */\n selectedEventType?: CONFIGURATION_EVENT_TYPE;\n /**\n * The group events of the selected configuration.\n */\n groupEvents: GroupEventAPIData[];\n /**\n * The selected group event being edited.\n */\n selectedGroupEvent?: GroupEventAPIData;\n /**\n * The url params with the date and time range for the current view in the scheduler editor calendar.\n */\n calendarViewDateRange?: {\n start_time: string;\n end_time: string;\n };\n /**\n * The list of master group events.\n */\n masterGroupEvents: Record<string, EventDetails>;\n /**\n * The flag to determine if the form is loading.\n */\n isLoading: boolean;\n /**\n * The theme config.\n */\n themeConfig?: ThemeConfig;\n}\n\nexport type NylasSchedulerConfigStoreType = ReturnType<typeof CreateNylasSchedulerConfigStore>;\n\nexport type CreateNylasSchedulerConfigStoreReturnType = ObservableMap<NylasSchedulerConfigStoreState> & {\n /**\n * Reset the selected configuration to the default state.\n * This is used to reset the selected configuration to the default state instead of setting it to an empty object.\n */\n resetSelectedConfiguration: () => void;\n};\n\nexport function CreateNylasSchedulerConfigStore(defaultState: Partial<NylasSchedulerConfigStoreState> = {}): CreateNylasSchedulerConfigStoreReturnType {\n const defaultSchedulerConfigState: NylasSchedulerConfigStoreState = {\n selectedConfiguration: {},\n configurations: [],\n groupEvents: [],\n listConfigurationsNextCursor: null,\n calendars: [],\n currentUser: null,\n action: null,\n additionalParticipants: [],\n requiresSlug: false,\n masterGroupEvents: {},\n isLoading: false,\n ...defaultState,\n };\n const store = createStore<NylasSchedulerConfigStoreState>(defaultSchedulerConfigState);\n\n /**\n * Reset the selected configuration to the default state.\n * This is used to reset the selected configuration to the default state instead of setting it to an empty object.\n */\n function resetSelectedConfiguration() {\n store.set('selectedConfiguration', { ...defaultState['selectedConfiguration'] });\n }\n\n store.onChange('action', async action => {\n if (!action) {\n resetSelectedConfiguration();\n }\n });\n\n return {\n ...store,\n resetSelectedConfiguration,\n };\n}\n","class LocalStorage {\n get(key) {\n return new Promise((res) => {\n const record = globalThis.window?.localStorage.getItem(key);\n if (!record) {\n res(null);\n }\n else {\n res(JSON.parse(record));\n }\n });\n }\n async remove(key) {\n globalThis.window?.localStorage.removeItem(key);\n return new Promise((res) => {\n res(null);\n });\n }\n set(key, value) {\n globalThis.window?.localStorage.setItem(key, JSON.stringify(value));\n return new Promise((res) => {\n res(null);\n });\n }\n}\nexport default LocalStorage;\n","import local from \"./localStorage\";\nconst PKCE_KEY = \"pkce\";\nconst GRANT_KEY = \"grant\";\nconst USER_KEY = \"user\";\n// Cross-runtime base64 helpers (browser and Node)\nconst toBase64 = (input) => {\n // Browser path: use TextEncoder + btoa\n if (typeof globalThis.btoa === \"function\" &&\n typeof TextEncoder !== \"undefined\") {\n const utf8Bytes = new TextEncoder().encode(input);\n let binary = \"\";\n for (let i = 0; i < utf8Bytes.length; i++) {\n binary += String.fromCharCode(utf8Bytes[i]);\n }\n return globalThis.btoa(binary);\n }\n // Node path: use global Buffer without importing\n if (typeof globalThis.Buffer !== \"undefined\") {\n return globalThis.Buffer.from(input, \"utf8\").toString(\"base64\");\n }\n throw new Error(\"Base64 encoding is not supported in this environment\");\n};\nconst fromBase64 = (input) => {\n // Browser path: use atob + TextDecoder\n if (typeof globalThis.atob === \"function\" &&\n typeof TextDecoder !== \"undefined\") {\n const binary = globalThis.atob(input);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return new TextDecoder().decode(bytes);\n }\n // Node path: use global Buffer without importing\n if (typeof globalThis.Buffer !== \"undefined\") {\n return globalThis.Buffer.from(input, \"base64\").toString(\"utf8\");\n }\n throw new Error(\"Base64 decoding is not supported in this environment\");\n};\nexport class Storage {\n Storage = new local();\n constructor(store) {\n if (store) {\n this.Storage = store;\n return;\n }\n }\n setPKCE(value) {\n const encoded = toBase64(value);\n this.Storage.set(PKCE_KEY, encoded);\n }\n async getPKCE() {\n try {\n const pkce = await this.Storage.get(PKCE_KEY);\n if (pkce) {\n return fromBase64(pkce);\n }\n }\n catch (error) {\n return null;\n }\n return null;\n }\n removePKCE() {\n this.Storage.remove(PKCE_KEY);\n }\n setGrant(resp, multiAccount = false) {\n const { grant_id } = resp;\n this.Storage.set(`${GRANT_KEY}${multiAccount ? \"-\" + grant_id : \"\"}`, resp);\n }\n removeGrant(id, multiAccount = false) {\n this.Storage.remove(`${GRANT_KEY}${multiAccount ? \"-\" + id : \"\"}`);\n }\n async getGrant(id, multiAccount = false) {\n const grant = await this.Storage.get(`${GRANT_KEY}${multiAccount ? \"-\" + id : \"\"}`);\n if (grant) {\n return grant;\n }\n return null;\n }\n // setUserToken is used to store the IDToken in storage\n async setUserToken(token) {\n const userTokens = await this.getUserTokens();\n // If userTokens exist, check if the token is already in the array\n if (userTokens) {\n const userToken = userTokens.find((t) => t.sub === token.sub);\n // If the token is not in the array, add it\n if (!userToken) {\n const newTokens = [...userTokens, token];\n this.Storage.set(USER_KEY, newTokens);\n }\n else {\n // If the token is in the array, update it\n const newUserTokens = userTokens.map((t) => {\n if (t.sub === token.sub) {\n t = token;\n }\n return t;\n });\n this.Storage.set(USER_KEY, newUserTokens);\n }\n }\n else {\n // If userTokens do not exist, create a new array with the token\n this.Storage.set(USER_KEY, [token]);\n }\n }\n // getUserToken is used to retrieve a specific IDToken from storage\n async getUserToken(id = \"\") {\n const tokens = await this.Storage.get(USER_KEY);\n if (tokens) {\n if (id === \"\") {\n // If no id is passed, return the first token\n return tokens[0];\n }\n // Find the token with the matching sub\n const userToken = tokens.find((token) => token.sub === id);\n return userToken;\n }\n return null;\n }\n // getUserTokens is used to retrieve all IDTokens from storage\n async getUserTokens() {\n const tokens = await this.Storage.get(USER_KEY);\n if (tokens) {\n return tokens;\n }\n return null;\n }\n // removeUserTokens is used to remove all IDTokens from storage\n removeUserTokens() {\n this.Storage.remove(USER_KEY);\n }\n // removeUserToken is used to remove a specific IDToken from storage\n async removeUserToken(id) {\n const userTokens = await this.getUserTokens();\n // Filter out the token with the matching sub\n const tokens = userTokens?.filter((token) => token.sub !== id);\n // If there are tokens left, store them\n this.Storage.set(USER_KEY, tokens);\n }\n async clearSession() {\n const tokens = await this.getUserTokens();\n tokens?.forEach((token) => {\n this.removeGrant(token.sub);\n });\n this.removePKCE();\n this.removeUserTokens();\n }\n}\n","class IndexedDBStorage {\n databaseName = \"identity-db\";\n storeName = \"identity\";\n get(key) {\n const self = this;\n return new Promise((resolve, reject) => {\n self.openDatabase().then(function (db) {\n const transaction = db.transaction(self.storeName, \"readwrite\");\n const objectStore = transaction.objectStore(self.storeName);\n const getRequest = objectStore.get(key);\n getRequest.onsuccess = () => {\n resolve(getRequest.result);\n };\n getRequest.onerror = () => {\n reject(getRequest.error);\n };\n transaction.oncomplete = () => {\n db.close();\n };\n });\n });\n }\n async remove(key) {\n const self = this;\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(this.databaseName);\n request.onupgradeneeded = function (event) {\n const db = event.target.result;\n db.createObjectStore(self.storeName);\n };\n request.onerror = () => {\n reject(request.error);\n };\n request.onsuccess = (event) => {\n const db = event.target.result;\n const transaction = db.transaction(this.storeName, \"readwrite\");\n const objectStore = transaction.objectStore(this.storeName);\n const deleteRequest = objectStore.delete(key);\n deleteRequest.onsuccess = () => {\n resolve(null);\n };\n deleteRequest.onerror = () => {\n reject(deleteRequest.error);\n };\n transaction.oncomplete = () => {\n db.close();\n };\n };\n });\n }\n set(key, value) {\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(this.databaseName);\n request.onerror = () => {\n reject(request.error);\n };\n request.onupgradeneeded = (event) => {\n const db = event.target.result;\n db.createObjectStore(this.storeName);\n };\n request.onsuccess = (event) => {\n const db = event.target.result;\n const transaction = db.transaction(this.storeName, \"readwrite\");\n const objectStore = transaction.objectStore(this.storeName);\n const setRequest = objectStore.put(value, key);\n setRequest.onsuccess = () => {\n resolve(value);\n };\n setRequest.onerror = () => {\n reject(setRequest.error);\n };\n transaction.oncomplete = () => {\n db.close();\n };\n };\n });\n }\n openDatabase() {\n const self = this;\n return new Promise(function (resolve, reject) {\n const request = indexedDB.open(self.databaseName, 2);\n request.onupgradeneeded = function (event) {\n const db = event.target.result;\n db.createObjectStore(self.storeName);\n };\n request.onsuccess = function (event) {\n resolve(event.target.result);\n };\n request.onerror = function (event) {\n reject(event.error);\n };\n });\n }\n}\nexport default IndexedDBStorage;\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || new Array(16);\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || rng)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || stringify(b);\n}\n\nexport default v1;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n var v;\n var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import stringify from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = [];\n\n for (var i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function (name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n var bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return stringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (var i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n\n for (var i = 0; i < length32; i += 8) {\n var x = input[i >> 5] >>> i % 32 & 0xff;\n var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (var i = 0; i < x.length; i += 16) {\n var olda = a;\n var oldb = b;\n var oldc = c;\n var oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n var length8 = input.length * 8;\n var output = new Uint32Array(getOutputLength(length8));\n\n for (var i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nexport default md5;","import v35 from './v35.js';\nimport md5 from './md5.js';\nvar v3 = v35('v3', 0x30, md5);\nexport default v3;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (var i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var _i = 0; _i < N; ++_i) {\n var arr = new Uint32Array(16);\n\n for (var j = 0; j < 16; ++j) {\n arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];\n }\n\n M[_i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var _i2 = 0; _i2 < N; ++_i2) {\n var W = new Uint32Array(80);\n\n for (var t = 0; t < 16; ++t) {\n W[t] = M[_i2][t];\n }\n\n for (var _t = 16; _t < 80; ++_t) {\n W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var _t2 = 0; _t2 < 80; ++_t2) {\n var s = Math.floor(_t2 / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nvar v5 = v35('v5', 0x50, sha1);\nexport default v5;","export default '00000000-0000-0000-0000-000000000000';","import validate from './validate.js';\n\nfunction version(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nexport default version;","export async function getBytes(stream, onChunk) {\r\n const reader = stream.getReader();\r\n let result;\r\n while (!(result = await reader.read()).done) {\r\n onChunk(result.value);\r\n }\r\n}\r\nexport function getLines(onLine) {\r\n let buffer;\r\n let position;\r\n let fieldLength;\r\n let discardTrailingNewline = false;\r\n return function onChunk(arr) {\r\n if (buffer === undefined) {\r\n buffer = arr;\r\n position = 0;\r\n fieldLength = -1;\r\n }\r\n else {\r\n buffer = concat(buffer, arr);\r\n }\r\n const bufLength = buffer.length;\r\n let lineStart = 0;\r\n while (position < bufLength) {\r\n if (discardTrailingNewline) {\r\n if (buffer[position] === 10) {\r\n lineStart = ++position;\r\n }\r\n discardTrailingNewline = false;\r\n }\r\n let lineEnd = -1;\r\n for (; position < bufLength && lineEnd === -1; ++position) {\r\n switch (buffer[position]) {\r\n case 58:\r\n if (fieldLength === -1) {\r\n fieldLength = position - lineStart;\r\n }\r\n break;\r\n case 13:\r\n discardTrailingNewline = true;\r\n case 10:\r\n lineEnd = position;\r\n break;\r\n }\r\n }\r\n if (lineEnd === -1) {\r\n break;\r\n }\r\n onLine(buffer.subarray(lineStart, lineEnd), fieldLength);\r\n lineStart = position;\r\n fieldLength = -1;\r\n }\r\n if (lineStart === bufLength) {\r\n buffer = undefined;\r\n }\r\n else if (lineStart !== 0) {\r\n buffer = buffer.subarray(lineStart);\r\n position -= lineStart;\r\n }\r\n };\r\n}\r\nexport function getMessages(onId, onRetry, onMessage) {\r\n let message = newMessage();\r\n const decoder = new TextDecoder();\r\n return function onLine(line, fieldLength) {\r\n if (line.length === 0) {\r\n onMessage === null || onMessage === void 0 ? void 0 : onMessage(message);\r\n message = newMessage();\r\n }\r\n else if (fieldLength > 0) {\r\n const field = decoder.decode(line.subarray(0, fieldLength));\r\n const valueOffset = fieldLength + (line[fieldLength + 1] === 32 ? 2 : 1);\r\n const value = decoder.decode(line.subarray(valueOffset));\r\n switch (field) {\r\n case 'data':\r\n message.data = message.data\r\n ? message.data + '\\n' + value\r\n : value;\r\n break;\r\n case 'event':\r\n message.event = value;\r\n break;\r\n case 'id':\r\n onId(message.id = value);\r\n break;\r\n case 'retry':\r\n const retry = parseInt(value, 10);\r\n if (!isNaN(retry)) {\r\n onRetry(message.retry = retry);\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n}\r\nfunction concat(a, b) {\r\n const res = new Uint8Array(a.length + b.length);\r\n res.set(a);\r\n res.set(b, a.length);\r\n return res;\r\n}\r\nfunction newMessage() {\r\n return {\r\n data: '',\r\n event: '',\r\n id: '',\r\n retry: undefined,\r\n };\r\n}\r\n//# sourceMappingURL=parse.js.map","var __rest = (this && this.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n};\r\nimport { getBytes, getLines, getMessages } from './parse';\r\nexport const EventStreamContentType = 'text/event-stream';\r\nconst DefaultRetryInterval = 1000;\r\nconst LastEventId = 'last-event-id';\r\nexport function fetchEventSource(input, _a) {\r\n var { signal: inputSignal, headers: inputHeaders, onopen: inputOnOpen, onmessage, onclose, onerror, openWhenHidden, fetch: inputFetch } = _a, rest = __rest(_a, [\"signal\", \"headers\", \"onopen\", \"onmessage\", \"onclose\", \"onerror\", \"openWhenHidden\", \"fetch\"]);\r\n return new Promise((resolve, reject) => {\r\n const headers = Object.assign({}, inputHeaders);\r\n if (!headers.accept) {\r\n headers.accept = EventStreamContentType;\r\n }\r\n let curRequestController;\r\n function onVisibilityChange() {\r\n curRequestController.abort();\r\n if (!document.hidden) {\r\n create();\r\n }\r\n }\r\n if (!openWhenHidden) {\r\n document.addEventListener('visibilitychange', onVisibilityChange);\r\n }\r\n let retryInterval = DefaultRetryInterval;\r\n let retryTimer = 0;\r\n function dispose() {\r\n document.removeEventListener('visibilitychange', onVisibilityChange);\r\n window.clearTimeout(retryTimer);\r\n curRequestController.abort();\r\n }\r\n inputSignal === null || inputSignal === void 0 ? void 0 : inputSignal.addEventListener('abort', () => {\r\n dispose();\r\n resolve();\r\n });\r\n const fetch = inputFetch !== null && inputFetch !== void 0 ? inputFetch : window.fetch;\r\n const onopen = inputOnOpen !== null && inputOnOpen !== void 0 ? inputOnOpen : defaultOnOpen;\r\n async function create() {\r\n var _a;\r\n curRequestController = new AbortController();\r\n try {\r\n const response = await fetch(input, Object.assign(Object.assign({}, rest), { headers, signal: curRequestController.signal }));\r\n await onopen(response);\r\n await getBytes(response.body, getLines(getMessages(id => {\r\n if (id) {\r\n headers[LastEventId] = id;\r\n }\r\n else {\r\n delete headers[LastEventId];\r\n }\r\n }, retry => {\r\n retryInterval = retry;\r\n }, onmessage)));\r\n onclose === null || onclose === void 0 ? void 0 : onclose();\r\n dispose();\r\n resolve();\r\n }\r\n catch (err) {\r\n if (!curRequestController.signal.aborted) {\r\n try {\r\n const interval = (_a = onerror === null || onerror === void 0 ? void 0 : onerror(err)) !== null && _a !== void 0 ? _a : retryInterval;\r\n window.clearTimeout(retryTimer);\r\n retryTimer = window.setTimeout(create, interval);\r\n }\r\n catch (innerErr) {\r\n dispose();\r\n reject(innerErr);\r\n }\r\n }\r\n }\r\n }\r\n create();\r\n });\r\n}\r\nfunction defaultOnOpen(response) {\r\n const contentType = response.headers.get('content-type');\r\n if (!(contentType === null || contentType === void 0 ? void 0 : contentType.startsWith(EventStreamContentType))) {\r\n throw new Error(`Expected content-type to be ${EventStreamContentType}, Actual: ${contentType}`);\r\n }\r\n}\r\n//# sourceMappingURL=fetch.js.map","export function Base64EncodeUrl(str) {\n return str.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n}\nexport function Base64DecodeUrl(str) {\n str = (str + \"===\").slice(0, str.length + (str.length % 4));\n return str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n}\nexport function getTimestamp() {\n return Math.floor(Date.now() / 1000);\n}\nexport async function sha256(message) {\n // encode as UTF-8\n const msgBuffer = new TextEncoder().encode(message);\n // hash the message\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", msgBuffer);\n // convert ArrayBuffer to Array\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n // convert bytes to hex string\n const hashHex = hashArray\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n return hashHex;\n}\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","import { Storage } from \"./client/store\";\nimport IndexedDBStorage from \"./client/indexedDB\";\nimport { v4 as uuid } from \"uuid\";\nimport { fetchEventSource, } from \"@microsoft/fetch-event-source\";\nimport { Base64EncodeUrl, getTimestamp, sha256 } from \"./helpers\";\nimport jwtDecode from \"jwt-decode\";\nexport class NylasSessions {\n clientId;\n redirectUri;\n accessType = \"online\";\n domain = \"http://api.nylas.com\";\n versioned = false;\n Storage;\n hosted = false;\n multiAccount = false;\n loginId = \"\";\n constructor(config) {\n this.clientId = config.clientId;\n this.redirectUri = config.redirectUri;\n if (config.domain) {\n this.domain = config.domain;\n const versionedPart = this.domain.substring(this.domain.length - 3);\n if (versionedPart.includes(\"/v\")) {\n this.versioned = true;\n }\n }\n if (config.multiAccount) {\n this.multiAccount = config.multiAccount;\n }\n if (config.sw) {\n const storage = new IndexedDBStorage();\n this.Storage = new Storage(storage);\n }\n else {\n this.Storage = new Storage();\n }\n if (config.accessType) {\n this.accessType = config.accessType;\n }\n if (config.loginId) {\n this.loginId = config.loginId;\n }\n if (config.hosted) {\n this.hosted = config.hosted;\n }\n if (config.disableInitCodeExchange !== true) {\n this.codeExchange(null);\n }\n // check();\n // registerServiceWorker();\n }\n // Validates access token\n async validateAccessToken(grant_id = \"\") {\n const grant = await this.Storage.getGrant(grant_id, this.multiAccount);\n if (!grant) {\n return false;\n }\n const { access_token } = grant;\n try {\n const response = await fetch(`${this.domain}/connect/tokeninfo?access_token=${access_token}`, {\n method: \"GET\",\n });\n const responseData = await response.json();\n if (!responseData.data) {\n return false;\n }\n return true;\n }\n catch (error) {\n return false;\n }\n }\n // Validates id token\n async validateIDToken(grant_id = \"\") {\n const grant = await this.Storage.getGrant(grant_id, this.multiAccount);\n if (!grant) {\n return false;\n }\n const { id_token } = grant;\n try {\n const response = await fetch(`${this.domain}/connect/tokeninfo?id_token=${id_token}`, {\n method: \"GET\",\n });\n if (response.status !== 200) {\n return false;\n }\n const responseData = await response.json();\n if (!responseData.data) {\n return false;\n }\n return true;\n }\n catch (error) {\n return false;\n }\n }\n // Gets domain of UAS\n getDomain() {\n return this.domain;\n }\n // Gets auth link\n async auth(config) {\n if (this.hosted &&\n (this.domain === globalThis.window?.location.origin ||\n (this.versioned &&\n this.domain.includes(globalThis.window?.location.origin)))) {\n await this.hostedSetCodeChallenge();\n }\n const url = await this.generateAuthURL(config);\n if (config.popup) {\n this.popUp(url);\n return;\n }\n return url;\n }\n // Generates auth URL\n async generateAuthURL(config) {\n const codeChallenge = await this.getCodeChallege();\n let url = `${this.domain}/connect/auth?client_id=${this.clientId}&redirect_uri=${this.redirectUri}&access_type=${this.accessType}&response_type=code`;\n if (codeChallenge) {\n url += `&code_challenge=${codeChallenge}&code_challenge_method=S256&options=rotate_refresh_token`;\n }\n if (config.provider) {\n url += `&provider=${config.provider}`;\n }\n if (config.loginHint) {\n url += `&login_hint=${config.loginHint}`;\n if (config.includeGrantScopes) {\n url += `&include_grant_scopes=${config.includeGrantScopes}`;\n }\n }\n if (config.scope) {\n url += `&scope=${config.scope.join(\" \")}`;\n }\n if (config.prompt) {\n url += `&prompt=${config.prompt}`;\n }\n if (config.metadata) {\n url += `&metadata=${config.metadata}`;\n }\n if (config.state || this.loginId) {\n url += `&state=${this.loginId ? this.loginId : config.state}`;\n }\n return url;\n }\n // Generates auth URL\n async generateReauthURL(grant_id, scopes) {\n if (!grant_id) {\n throw new Error(\"Grant ID is required\");\n }\n const userToken = await this.Storage.getUserToken(grant_id);\n const codeChallenge = await this.getCodeChallege();\n let url = `${this.domain}/connect/auth?client_id=${this.clientId}&redirect_uri=${this.redirectUri}&access_type=${this.accessType}&response_type=code`;\n if (codeChallenge) {\n url += `&code_challenge=${codeChallenge}&code_challenge_method=S256&options=rotate_refresh_token`;\n }\n if (userToken?.provider) {\n url += `&provider=${userToken.provider}`;\n }\n if (userToken?.email) {\n url += `&login_hint=${userToken.email}`;\n }\n if (scopes) {\n url += `&scope=${scopes.join(\" \")}`;\n }\n return url;\n }\n // Generates UUID code challenge\n async generateCodeChallenge() {\n const code_verifier = await this.Storage.getPKCE();\n if (code_verifier) {\n return;\n }\n const codeChallenge = uuid();\n this.Storage.setPKCE(codeChallenge);\n return;\n }\n // Gets code challenge from URL query params\n async hostedSetCodeChallenge() {\n if (!this.hosted) {\n throw console.error(\"Method only used with hosted flag enabled\");\n }\n const params = new URLSearchParams(globalThis.window?.location.search);\n const codeChallenge = params.get(\"code_challenge\");\n if (!codeChallenge) {\n const code_verifier = await this.Storage.getPKCE();\n if (code_verifier) {\n return;\n }\n console.warn(\"Code challenge is recomended\");\n return;\n }\n this.Storage.setPKCE(codeChallenge);\n }\n // Gets code challenge from store\n async getCodeChallege() {\n if (this.hosted &&\n (this.domain === globalThis.window?.location.origin ||\n (this.versioned &&\n this.domain.includes(globalThis.window?.location.origin)))) {\n const params = new URLSearchParams(globalThis.window?.location.search);\n const codeChallenge = params.get(\"code_challenge\");\n if (!codeChallenge) {\n console.warn(\"Code challenge is recomended\");\n return \"\";\n }\n return codeChallenge;\n }\n const code_verifier = await this.Storage.getPKCE();\n if (code_verifier) {\n const codeChallengeHashed = await sha256(code_verifier);\n let codeChallengeEncrypted = btoa(unescape(encodeURIComponent(codeChallengeHashed)));\n codeChallengeEncrypted = Base64EncodeUrl(codeChallengeEncrypted);\n return codeChallengeEncrypted;\n }\n return \"\";\n }\n // checks if user is logged in\n async isLoggedIn() {\n // if hosted identity isLoggedIn always returns false\n if (this.hosted &&\n (this.domain === globalThis.window?.location.origin ||\n (this.versioned &&\n this.domain.includes(globalThis.window?.location.origin)))) {\n return false;\n }\n const tokens = await this.Storage.getUserTokens();\n if (tokens && tokens.length > 0) {\n if (this.multiAccount) {\n await this.generateCodeChallenge();\n }\n return true;\n }\n await this.generateCodeChallenge();\n return false;\n }\n // Checks if user is multi account\n isMultiAccount() {\n return this.multiAccount;\n }\n // Logs user out\n async logout() {\n const profile = await this.getProfile();\n await this.Storage.clearSession();\n const payload = { detail: profile };\n window.dispatchEvent(new CustomEvent(\"onLogoutSuccess\", payload));\n }\n // Gets profile info from ID token\n async getProfile(grant_id = \"\") {\n let tok;\n if (grant_id) {\n tok = await this.Storage.getUserToken(grant_id);\n }\n else {\n tok = await this.Storage.getUserToken();\n }\n if (tok) {\n return tok;\n }\n return null;\n }\n // Gets profile info from ID tokens\n async getProfiles() {\n const tok = await this.Storage.getUserTokens();\n if (tok) {\n return tok;\n }\n return null;\n }\n // Remove a specific profile\n async removeProfile(id) {\n await this.Storage.removeUserToken(id);\n await this.Storage.removeGrant(id);\n return null;\n }\n // IMAP authentication\n async authIMAP(data) {\n const code_challenge = await this.getCodeChallege();\n const payload = {\n imap_username: data.imap_username,\n imap_password: data.imap_password,\n imap_host: data.imap_host,\n imap_port: data.imap_port,\n type: data.type,\n smtp_host: data.smtp_host,\n smtp_port: data.smtp_port,\n provider: data.provider,\n redirect_uri: this.redirectUri,\n state: data.state,\n public_application_id: this.clientId,\n access_type: this.accessType,\n };\n if (this.loginId) {\n payload.id = this.loginId;\n }\n if (data.smtp_username && data.smtp_password) {\n payload.smtp_username = data.smtp_username;\n payload.smtp_password = data.smtp_password;\n }\n if (code_challenge != \"\") {\n payload.code_challenge = code_challenge;\n payload.code_challenge_method = \"S256\";\n }\n const response = await fetch(`${this.domain}/connect/login/imap`, {\n method: \"POST\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n body: JSON.stringify(payload),\n });\n const responseData = await response.json();\n return responseData;\n }\n // EWS authentication\n async authEWS(data) {\n const code_challenge = await this.getCodeChallege();\n const payload = {\n ...data,\n provider: \"ews\",\n redirect_uri: this.redirectUri,\n public_application_id: this.clientId,\n access_type: this.accessType,\n };\n if (this.loginId) {\n payload.id = this.loginId;\n }\n if (code_challenge != \"\") {\n payload.code_challenge = code_challenge;\n payload.code_challenge_method = \"S256\";\n }\n const response = await fetch(`${this.domain}/connect/login/ews`, {\n method: \"POST\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n body: JSON.stringify(payload),\n });\n const responseData = await response.json();\n return responseData;\n }\n // Detects email\n async detectEmail(email) {\n const response = await fetch(`${this.versioned ? this.domain : this.domain + \"/connect\"}/providers/detect?client_id=${this.clientId}&email=${email}`, {\n method: \"POST\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n });\n const responseData = await response.json();\n return responseData;\n }\n // Gets app info from UAS\n async applicationInfo() {\n const response = await fetch(`${this.versioned ? this.domain : this.domain + \"/connect\"}/applications?client_id=${this.clientId}`, {\n method: \"GET\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n });\n const responseData = await response.json();\n return responseData.data;\n }\n // Gets providers form UAS\n async getAvailableProviders() {\n const response = await fetch(`${this.domain}/connect/providers/find?client_id=${this.clientId}`, {\n method: \"GET\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n });\n if (response) {\n const responseData = await response.json();\n const providers = responseData.data;\n return providers;\n }\n return null;\n }\n // EVENT HOOKS\n onLoginSuccess(callback) {\n window.addEventListener(\"onLoginSuccess\", (e) => callback(e));\n }\n onLogoutSuccess(callback) {\n window.addEventListener(\"onLogoutSuccess\", (e) => callback(e));\n }\n onLoginFail(callback) {\n window.addEventListener(\"onLoginFail\", (e) => callback(e));\n }\n onTokenRefreshSuccess(callback) {\n window.addEventListener(\"onTokenRefreshSuccess\", (e) => callback(e));\n }\n onTokenRefreshFail(callback) {\n window.addEventListener(\"onTokenRefreshFail\", (e) => callback(e));\n }\n onSessionExpired(callback) {\n window.addEventListener(\"onSessionExpired\", (e) => callback(e));\n }\n // Exchanges code for ID token and refresh and access tokens\n async codeExchange(search) {\n let params = new URLSearchParams(globalThis.window?.location.search);\n if (search) {\n params = new URLSearchParams(search);\n }\n const code = params.get(\"code\");\n const state = params.get(\"state\");\n const error = params.get(\"error\");\n const error_description = params.get(\"error_description\");\n const error_code = params.get(\"error_code\");\n if (error && error_description && error_code) {\n const payload = {\n detail: { error, error_description, error_code },\n };\n window.dispatchEvent(new CustomEvent(\"onLoginFail\", payload));\n window.history.pushState({}, document.title, globalThis.window?.location.pathname);\n return false;\n }\n if (!code) {\n console.warn(\"No code found\");\n return false;\n }\n // If popup window stop internal code exchange\n if (window.opener && window.name === \"uas-popup\") {\n console.warn(\"Popup window detected\");\n return false;\n }\n // Get PKCE code_challenge from local storage\n const code_verifier = await this.Storage.getPKCE();\n if (!code_verifier) {\n console.warn(\"No code verifier found\");\n return false;\n }\n // Prepare request\n try {\n const payload = {\n client_id: this.clientId,\n redirect_uri: this.redirectUri,\n code: code,\n grant_type: \"authorization_code\",\n code_verifier: code_verifier,\n };\n const response = await fetch(`${this.domain}/connect/token`, {\n method: \"POST\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n body: JSON.stringify(payload),\n });\n const responseData = await response.json();\n // Parse response\n // Store ID token\n if (responseData) {\n if (responseData.error) {\n const payload = { detail: responseData };\n window.dispatchEvent(new CustomEvent(\"onLoginFail\", payload));\n return true;\n }\n const exchangeResponse = await this.handleCodeExchangeResponse(responseData);\n if (!exchangeResponse.valid) {\n const payload = { detail: exchangeResponse.data };\n window.dispatchEvent(new CustomEvent(\"onLoginFail\", payload));\n return true;\n }\n else {\n if (state) {\n exchangeResponse.data.state = state;\n }\n const payload = { detail: exchangeResponse.data };\n window.dispatchEvent(new CustomEvent(\"onLoginSuccess\", payload));\n window.history.pushState({}, document.title, window.location.pathname);\n }\n }\n this.Storage.removePKCE();\n return true;\n // Remove PKCE code_challenge from local storage\n }\n catch (error) {\n const payload = { detail: error };\n window.dispatchEvent(new CustomEvent(\"onLoginFail\", payload));\n window.history.pushState({}, document.title, globalThis.window?.location.pathname);\n return false;\n }\n }\n // Token Exchange for session maintenece\n async tokenExchange(grant_id = \"\") {\n const grant = await this.Storage.getGrant(grant_id, this.multiAccount);\n if (!grant) {\n return false;\n }\n const refresh_token = grant.refresh_token;\n try {\n const payload = {\n client_id: this.clientId,\n redirect_uri: this.redirectUri,\n refresh_token,\n grant_type: \"refresh_token\",\n };\n const response = await fetch(`${this.domain}/connect/token`, {\n method: \"POST\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n body: JSON.stringify(payload),\n });\n const responseData = await response.json();\n // Parse response\n // Store ID token\n if (responseData) {\n if (responseData.error) {\n const payload = { detail: responseData };\n window.dispatchEvent(new CustomEvent(\"onTokenRefreshFail\", payload));\n return true;\n }\n const now = getTimestamp();\n responseData.expires_in = now + responseData.expires_in;\n this.Storage.setGrant(responseData, this.multiAccount);\n const isValidToken = await this.validateIDToken(grant_id);\n if (!isValidToken) {\n const payload = { detail: responseData };\n window.dispatchEvent(new CustomEvent(\"onTokenRefreshFail\", payload));\n return true;\n }\n const payload = { detail: responseData };\n window.dispatchEvent(new CustomEvent(\"onTokenRefreshSuccess\", payload));\n return true;\n }\n // Remove PKCE code_challenge from local storage\n this.Storage.removePKCE();\n }\n catch (error) {\n const payload = { detail: error };\n window.dispatchEvent(new CustomEvent(\"onTokenRefreshFail\", payload));\n return false;\n }\n }\n // Handles the response of code exchange\n async handleCodeExchangeResponse(responseData) {\n const isValid = true;\n if (responseData.error) {\n return {\n data: responseData,\n valid: false,\n };\n }\n const now = getTimestamp();\n responseData.expires_in = now + responseData.expires_in;\n this.Storage.setGrant(responseData, this.multiAccount);\n const user = jwtDecode(responseData.id_token);\n user.status = \"authenticated\";\n this.Storage.setUserToken(user);\n const isValidToken = await this.validateIDToken(user.sub);\n if (!isValidToken) {\n return {\n data: responseData,\n valid: false,\n };\n }\n return {\n data: responseData,\n valid: isValid,\n };\n }\n // Regulates POPUP behaivior\n async popUp(url) {\n const width = 500;\n const height = 600;\n const left = window.screenX + (window.outerWidth - width) / 2;\n const top = window.screenY + (window.outerHeight - height) / 2.5;\n const title = `uas-popup`;\n const popupURL = url;\n const externalPopup = window.open(popupURL, title, `width=${width},height=${height},left=${left},top=${top}`);\n if (!externalPopup) {\n return;\n }\n const timer = setInterval(async () => {\n if (externalPopup.closed) {\n const payload = {\n detail: { error_description: \"OAuth provider window closed\" },\n };\n window.dispatchEvent(new CustomEvent(\"onLoginFail\", payload));\n timer && clearInterval(timer);\n return;\n }\n try {\n const currentUrl = externalPopup.location.href.split(\"?\");\n if (!currentUrl[0]) {\n return;\n }\n const search = externalPopup.location.search;\n externalPopup.history.pushState({}, document.title, window.location.pathname);\n if (currentUrl[0] === this.redirectUri && currentUrl.length > 1) {\n const success = await this.codeExchange(search);\n externalPopup.close();\n if (success) {\n location.reload();\n }\n timer && clearInterval(timer);\n return;\n }\n }\n catch (error) {\n return;\n }\n }, 1000);\n }\n // Returns access token\n async getAccessToken(grant_id = \"\") {\n const now = getTimestamp();\n const grantResponse = await this.Storage.getGrant(grant_id, this.multiAccount);\n if (!grantResponse) {\n return null;\n }\n const { access_token, expires_in } = grantResponse;\n const token = access_token;\n if (token) {\n if (expires_in && expires_in > getTimestamp()) {\n const timeLeft = expires_in - now;\n // If more then 30 secounds remain return access token\n if (timeLeft > 30) {\n return token;\n }\n }\n }\n await this.tokenExchange(grant_id);\n const grant = await this.Storage.getGrant(grant_id, this.multiAccount);\n return grant.access_token;\n }\n async sse(url, request) {\n const headers = request.headers || {};\n const grant_id = headers[\"Grant-ID\"];\n let token = \"\";\n if (this.multiAccount) {\n if (!grant_id) {\n this.logout();\n throw new Error(\"Grant ID is required for multi account calls\");\n }\n token = await this.getAccessToken(grant_id);\n }\n else {\n token = await this.getAccessToken();\n }\n delete headers[\"Grant-ID\"];\n headers[\"Authorization\"] = `Bearer ${token}`;\n if (!headers[\"content-type\"]) {\n headers[\"content-type\"] = \"application/json\";\n }\n return fetchEventSource(`${this.domain}/${url}`, {\n ...request,\n headers,\n });\n }\n // Used to call Nylas API endpoints\n async fetch(url, request, parseJSON = true, domain) {\n let token = \"\";\n let profileCount = 1;\n if (this.multiAccount) {\n if (!request.grant_id) {\n this.logout();\n throw new Error(\"Grant ID is required for multi account calls\");\n }\n const profiles = await this.getProfiles();\n profileCount = profiles ? profiles.length : 1;\n token = await this.getAccessToken(request.grant_id);\n }\n else {\n token = await this.getAccessToken();\n }\n if (!token) {\n throw new Error(\"Access token not found\");\n }\n let headers = request.headers;\n if (!Headers.prototype.isPrototypeOf(headers)) {\n headers = new Headers({\n Authorization: `Bearer ${token}`,\n \"content-type\": \"application/json\",\n });\n }\n else {\n headers.append(\"Authorization\", `Bearer ${token}`);\n if (!headers.has(\"content-type\")) {\n headers.append(\"content-type\", \"application/json\");\n }\n }\n try {\n if (request?.body) {\n request.body = JSON.stringify(request?.body);\n }\n const response = await fetch(`${domain || this.domain}/${url}`, {\n ...request,\n headers,\n });\n if (!parseJSON) {\n return response;\n }\n const responseData = await response?.json();\n const isAuthenticated = await this.isAuthenticatedResponse(response.status, responseData);\n if (!isAuthenticated) {\n if (profileCount > 1) {\n const user = await this.getProfile(request.grant_id);\n if (user) {\n user.status = \"unauthorized\";\n await this.Storage.setUserToken(user);\n const payload = {\n detail: { user },\n };\n window.dispatchEvent(new CustomEvent(\"onSessionExpired\", payload));\n }\n }\n else {\n const user = await this.Storage.getUserToken();\n const payload = {\n detail: { user },\n };\n window.dispatchEvent(new CustomEvent(\"onSessionExpired\", payload));\n }\n this.logout();\n return;\n }\n return responseData;\n }\n catch (e) {\n throw e;\n }\n }\n async fetchRequest(path, method, body, parseJSON = true, domain, request) {\n const isLoggedIn = await this.isLoggedIn();\n const url = new URL(path, domain ?? this.domain);\n const headers = new Headers();\n headers.append(\"Accept\", \"application/json\");\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"User-Agent\", \"nylas-identity\");\n if (isLoggedIn) {\n const accessToken = await this.getAccessToken();\n headers.append(\"Authorization\", `Bearer ${accessToken}`);\n }\n const response = await fetch(url.toString(), {\n method: method || \"GET\",\n headers,\n mode: \"cors\",\n referrer: globalThis.window?.location.origin,\n body: body ? JSON.stringify(body) : undefined,\n ...(request || {}),\n });\n // If we don't want to parse the response as JSON, return the raw response\n if (!parseJSON) {\n return response.body;\n }\n const json = await response.json();\n return json;\n }\n // Checks if the response is not 401\n async isAuthenticatedResponse(status, responseData) {\n if (status == 401 &&\n responseData?.error?.type == \"token.unauthorized_access\") {\n return false;\n }\n return true;\n }\n addAPIKey(grant_id, email, key) {\n this.Storage.setUserToken({\n aud: \"https://api-staging.us.nylas.com/\",\n exp: 2000000000,\n email_verified: true,\n iat: getTimestamp(),\n iss: \"\",\n email,\n provider: \"virtual-calendar\",\n status: \"authenticated\",\n name: email,\n sub: grant_id,\n });\n this.Storage.setGrant({\n grant_id,\n access_token: key,\n expires_in: 2000000000,\n }, this.multiAccount);\n }\n}\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n\n 'use strict';\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n var ReactVersion = '18.2.0';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\n/**\n * Keeps track of the current dispatcher.\n */\nvar ReactCurrentDispatcher = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\n/**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\nvar ReactCurrentBatchConfig = {\n transition: null\n};\n\nvar ReactCurrentActQueue = {\n current: null,\n // Used to reproduce behavior of `batchedUpdates` in legacy mode.\n isBatchingLegacy: false,\n didScheduleLegacyUpdate: false\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\nvar ReactDebugCurrentFrame = {};\nvar currentExtraStackFrame = null;\nfunction setExtraStackFrame(stack) {\n {\n currentExtraStackFrame = stack;\n }\n}\n\n{\n ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {\n {\n currentExtraStackFrame = stack;\n }\n }; // Stack implementation injected by the current renderer.\n\n\n ReactDebugCurrentFrame.getCurrentStack = null;\n\n ReactDebugCurrentFrame.getStackAddendum = function () {\n var stack = ''; // Add an extra top frame while an element is being validated\n\n if (currentExtraStackFrame) {\n stack += currentExtraStackFrame;\n } // Delegate to the injected renderer-specific implementation\n\n\n var impl = ReactDebugCurrentFrame.getCurrentStack;\n\n if (impl) {\n stack += impl() || '';\n }\n\n return stack;\n };\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher,\n ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n ReactCurrentOwner: ReactCurrentOwner\n};\n\n{\n ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;\n ReactSharedInternals.ReactCurrentActQueue = ReactCurrentActQueue;\n}\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\n {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n printWarning('warn', format, args);\n }\n }\n}\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n var warningKey = componentName + \".\" + callerName;\n\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n\n error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n}\n/**\n * This is the abstract API for an update queue.\n */\n\n\nvar ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance, callback, callerName) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nvar assign = Object.assign;\n\nvar emptyObject = {};\n\n{\n Object.freeze(emptyObject);\n}\n/**\n * Base class helpers for the updating state of a component.\n */\n\n\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n // renderer.\n\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n\nComponent.prototype.setState = function (partialState, callback) {\n if (typeof partialState !== 'object' && typeof partialState !== 'function' && partialState != null) {\n throw new Error('setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.');\n }\n\n this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n\n\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n\n\n{\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n\n var defineDeprecationWarning = function (methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n\n return undefined;\n }\n });\n };\n\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n/**\n * Convenience component with default shallow equality check for sCU.\n */\n\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n var refObject = {\n current: null\n };\n\n {\n Object.seal(refObject);\n }\n\n return refObject;\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\n\nfunction createElement(type, config, children) {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n\n {\n warnIfStringRefCannotBeAutoConverted(config);\n }\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n\n props.children = childArray;\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n {\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n}\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\n\nfunction cloneElement(element, config, children) {\n if (element === null || element === undefined) {\n throw new Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\");\n }\n\n var propName; // Original props are copied\n\n var props = assign({}, element.props); // Reserved names are extracted\n\n var key = element.key;\n var ref = element.ref; // Self is preserved since the owner is preserved.\n\n var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n\n var source = element._source; // Owner will be preserved, unless ref is overridden\n\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n } // Remaining properties override existing props\n\n\n var defaultProps;\n\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = key.replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n return '$' + escapedString;\n}\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\n\nvar didWarnAboutMaps = false;\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction escapeUserProvidedKey(text) {\n return text.replace(userProvidedKeyEscapeRegex, '$&/');\n}\n/**\n * Generate a key string that identifies a element within a set.\n *\n * @param {*} element A element that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\n\n\nfunction getElementKey(element, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof element === 'object' && element !== null && element.key != null) {\n // Explicit key\n {\n checkKeyStringCoercion(element.key);\n }\n\n return escape('' + element.key);\n } // Implicit key determined by the index in the set\n\n\n return index.toString(36);\n}\n\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n var invokeCallback = false;\n\n if (children === null) {\n invokeCallback = true;\n } else {\n switch (type) {\n case 'string':\n case 'number':\n invokeCallback = true;\n break;\n\n case 'object':\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n\n }\n }\n\n if (invokeCallback) {\n var _child = children;\n var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows:\n\n var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n\n if (isArray(mappedChild)) {\n var escapedChildKey = '';\n\n if (childKey != null) {\n escapedChildKey = escapeUserProvidedKey(childKey) + '/';\n }\n\n mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n {\n // The `if` statement here prevents auto-disabling of the safe\n // coercion ESLint rule, so we must manually disable it below.\n // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n if (mappedChild.key && (!_child || _child.key !== mappedChild.key)) {\n checkKeyStringCoercion(mappedChild.key);\n }\n }\n\n mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n escapedPrefix + ( // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n mappedChild.key && (!_child || _child.key !== mappedChild.key) ? // $FlowFixMe Flow incorrectly thinks existing element's key can be a number\n // eslint-disable-next-line react-internal/safe-string-coercion\n escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);\n }\n\n array.push(mappedChild);\n }\n\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getElementKey(child, i);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n var iterableChildren = children;\n\n {\n // Warn about using Maps as children\n if (iteratorFn === iterableChildren.entries) {\n if (!didWarnAboutMaps) {\n warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n }\n\n didWarnAboutMaps = true;\n }\n }\n\n var iterator = iteratorFn.call(iterableChildren);\n var step;\n var ii = 0;\n\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getElementKey(child, ii++);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else if (type === 'object') {\n // eslint-disable-next-line react-internal/safe-string-coercion\n var childrenString = String(children);\n throw new Error(\"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \"). \" + 'If you meant to render a collection of children, use an array ' + 'instead.');\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n\n var result = [];\n var count = 0;\n mapIntoArray(children, result, '', '', function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\n\n\nfunction countChildren(children) {\n var n = 0;\n mapChildren(children, function () {\n n++; // Don't return anything\n });\n return n;\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n mapChildren(children, function () {\n forEachFunc.apply(this, arguments); // Don't return anything.\n }, forEachContext);\n}\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\n\n\nfunction toArray(children) {\n return mapChildren(children, function (child) {\n return child;\n }) || [];\n}\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\n\n\nfunction onlyChild(children) {\n if (!isValidElement(children)) {\n throw new Error('React.Children.only expected to receive a single React element child.');\n }\n\n return children;\n}\n\nfunction createContext(defaultValue) {\n // TODO: Second argument used to be an optional `calculateChangedBits`\n // function. Warn to reserve for future use?\n var context = {\n $$typeof: REACT_CONTEXT_TYPE,\n // As a workaround to support multiple concurrent renderers, we categorize\n // some renderers as primary and others as secondary. We only expect\n // there to be two concurrent renderers at most: React Native (primary) and\n // Fabric (secondary); React DOM (primary) and React ART (secondary).\n // Secondary renderers store their context values on separate fields.\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n // Used to track how many concurrent renderers this context currently\n // supports within in a single renderer. Such as parallel server rendering.\n _threadCount: 0,\n // These are circular\n Provider: null,\n Consumer: null,\n // Add these to use same hidden class in VM as ServerContext\n _defaultValue: null,\n _globalName: null\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n var hasWarnedAboutUsingNestedContextConsumers = false;\n var hasWarnedAboutUsingConsumerProvider = false;\n var hasWarnedAboutDisplayNameOnConsumer = false;\n\n {\n // A separate object, but proxies back to the original context object for\n // backwards compatibility. It has a different $$typeof, so we can properly\n // warn for the incorrect usage of Context as a Consumer.\n var Consumer = {\n $$typeof: REACT_CONTEXT_TYPE,\n _context: context\n }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n Object.defineProperties(Consumer, {\n Provider: {\n get: function () {\n if (!hasWarnedAboutUsingConsumerProvider) {\n hasWarnedAboutUsingConsumerProvider = true;\n\n error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n }\n\n return context.Provider;\n },\n set: function (_Provider) {\n context.Provider = _Provider;\n }\n },\n _currentValue: {\n get: function () {\n return context._currentValue;\n },\n set: function (_currentValue) {\n context._currentValue = _currentValue;\n }\n },\n _currentValue2: {\n get: function () {\n return context._currentValue2;\n },\n set: function (_currentValue2) {\n context._currentValue2 = _currentValue2;\n }\n },\n _threadCount: {\n get: function () {\n return context._threadCount;\n },\n set: function (_threadCount) {\n context._threadCount = _threadCount;\n }\n },\n Consumer: {\n get: function () {\n if (!hasWarnedAboutUsingNestedContextConsumers) {\n hasWarnedAboutUsingNestedContextConsumers = true;\n\n error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n\n return context.Consumer;\n }\n },\n displayName: {\n get: function () {\n return context.displayName;\n },\n set: function (displayName) {\n if (!hasWarnedAboutDisplayNameOnConsumer) {\n warn('Setting `displayName` on Context.Consumer has no effect. ' + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n\n hasWarnedAboutDisplayNameOnConsumer = true;\n }\n }\n }\n }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n context.Consumer = Consumer;\n }\n\n {\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n }\n\n return context;\n}\n\nvar Uninitialized = -1;\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\n\nfunction lazyInitializer(payload) {\n if (payload._status === Uninitialized) {\n var ctor = payload._result;\n var thenable = ctor(); // Transition to the next state.\n // This might throw either because it's missing or throws. If so, we treat it\n // as still uninitialized and try again next time. Which is the same as what\n // happens if the ctor or any wrappers processing the ctor throws. This might\n // end up fixing it if the resolution was a concurrency bug.\n\n thenable.then(function (moduleObject) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n // Transition to the next state.\n var resolved = payload;\n resolved._status = Resolved;\n resolved._result = moduleObject;\n }\n }, function (error) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n // Transition to the next state.\n var rejected = payload;\n rejected._status = Rejected;\n rejected._result = error;\n }\n });\n\n if (payload._status === Uninitialized) {\n // In case, we're still uninitialized, then we're waiting for the thenable\n // to resolve. Set it as pending in the meantime.\n var pending = payload;\n pending._status = Pending;\n pending._result = thenable;\n }\n }\n\n if (payload._status === Resolved) {\n var moduleObject = payload._result;\n\n {\n if (moduleObject === undefined) {\n error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\\n\\n\" + 'Did you accidentally put curly braces around the import?', moduleObject);\n }\n }\n\n {\n if (!('default' in moduleObject)) {\n error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\", moduleObject);\n }\n }\n\n return moduleObject.default;\n } else {\n throw payload._result;\n }\n}\n\nfunction lazy(ctor) {\n var payload = {\n // We use these fields to store the result.\n _status: Uninitialized,\n _result: ctor\n };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: payload,\n _init: lazyInitializer\n };\n\n {\n // In production, this would just set it on the object.\n var defaultProps;\n var propTypes; // $FlowFixMe\n\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function () {\n return defaultProps;\n },\n set: function (newDefaultProps) {\n error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n defaultProps = newDefaultProps; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'defaultProps', {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function () {\n return propTypes;\n },\n set: function (newPropTypes) {\n error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n propTypes = newPropTypes; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'propTypes', {\n enumerable: true\n });\n }\n }\n });\n }\n\n return lazyType;\n}\n\nfunction forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n } else if (typeof render !== 'function') {\n error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n } else {\n if (render.length !== 0 && render.length !== 2) {\n error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n }\n }\n\n if (render != null) {\n if (render.defaultProps != null || render.propTypes != null) {\n error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n }\n }\n }\n\n var elementType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name; // The inner component shouldn't inherit this display name in most cases,\n // because the component may be used elsewhere.\n // But it's nice for anonymous functions to inherit the name,\n // so that our component-stack generation logic will display their frames.\n // An anonymous function generally suggests a pattern like:\n // React.forwardRef((props, ref) => {...});\n // This kind of inner function is not used elsewhere so the side effect is okay.\n\n if (!render.name && !render.displayName) {\n render.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n }\n }\n\n var elementType = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name; // The inner component shouldn't inherit this display name in most cases,\n // because the component may be used elsewhere.\n // But it's nice for anonymous functions to inherit the name,\n // so that our component-stack generation logic will display their frames.\n // An anonymous function generally suggests a pattern like:\n // React.memo((props) => {...});\n // This kind of inner function is not used elsewhere so the side effect is okay.\n\n if (!type.name && !type.displayName) {\n type.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\nfunction resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher.current;\n\n {\n if (dispatcher === null) {\n error('Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for' + ' one of the following reasons:\\n' + '1. You might have mismatching versions of React and the renderer (such as React DOM)\\n' + '2. You might be breaking the Rules of Hooks\\n' + '3. You might have more than one copy of React in the same app\\n' + 'See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.');\n }\n } // Will result in a null access error if accessed outside render phase. We\n // intentionally don't throw our own error because this is in a hot path.\n // Also helps ensure this is inlined.\n\n\n return dispatcher;\n}\nfunction useContext(Context) {\n var dispatcher = resolveDispatcher();\n\n {\n // TODO: add a more generic warning for invalid values.\n if (Context._context !== undefined) {\n var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n // and nobody should be using this in existing code.\n\n if (realContext.Consumer === Context) {\n error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n } else if (realContext.Provider === Context) {\n error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n }\n }\n }\n\n return dispatcher.useContext(Context);\n}\nfunction useState(initialState) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useState(initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useReducer(reducer, initialArg, init);\n}\nfunction useRef(initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useRef(initialValue);\n}\nfunction useEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useEffect(create, deps);\n}\nfunction useInsertionEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useInsertionEffect(create, deps);\n}\nfunction useLayoutEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useLayoutEffect(create, deps);\n}\nfunction useCallback(callback, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, deps);\n}\nfunction useMemo(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, deps);\n}\nfunction useImperativeHandle(ref, create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useImperativeHandle(ref, create, deps);\n}\nfunction useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n}\nfunction useTransition() {\n var dispatcher = resolveDispatcher();\n return dispatcher.useTransition();\n}\nfunction useDeferredValue(value) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDeferredValue(value);\n}\nfunction useId() {\n var dispatcher = resolveDispatcher();\n return dispatcher.useId();\n}\nfunction useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher$1.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher$1.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n setExtraStackFrame(stack);\n } else {\n setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n\n return '';\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n {\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\nfunction createElementWithValidation(type, props, children) {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n {\n error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n }\n\n var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n}\nvar didWarnAboutDeprecatedCreateFactory = false;\nfunction createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n validatedFactory.type = type;\n\n {\n if (!didWarnAboutDeprecatedCreateFactory) {\n didWarnAboutDeprecatedCreateFactory = true;\n\n warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n } // Legacy hook: remove it\n\n\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n\n return validatedFactory;\n}\nfunction cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement.apply(this, arguments);\n\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n\n validatePropTypes(newElement);\n return newElement;\n}\n\nfunction startTransition(scope, options) {\n var prevTransition = ReactCurrentBatchConfig.transition;\n ReactCurrentBatchConfig.transition = {};\n var currentTransition = ReactCurrentBatchConfig.transition;\n\n {\n ReactCurrentBatchConfig.transition._updatedFibers = new Set();\n }\n\n try {\n scope();\n } finally {\n ReactCurrentBatchConfig.transition = prevTransition;\n\n {\n if (prevTransition === null && currentTransition._updatedFibers) {\n var updatedFibersCount = currentTransition._updatedFibers.size;\n\n if (updatedFibersCount > 10) {\n warn('Detected a large number of updates inside startTransition. ' + 'If this is due to a subscription please re-write it to use React provided hooks. ' + 'Otherwise concurrent mode guarantees are off the table.');\n }\n\n currentTransition._updatedFibers.clear();\n }\n }\n }\n}\n\nvar didWarnAboutMessageChannel = false;\nvar enqueueTaskImpl = null;\nfunction enqueueTask(task) {\n if (enqueueTaskImpl === null) {\n try {\n // read require off the module object to get around the bundlers.\n // we don't want them to detect a require and bundle a Node polyfill.\n var requireString = ('require' + Math.random()).slice(0, 7);\n var nodeRequire = module && module[requireString]; // assuming we're in node, let's try to get node's\n // version of setImmediate, bypassing fake timers if any.\n\n enqueueTaskImpl = nodeRequire.call(module, 'timers').setImmediate;\n } catch (_err) {\n // we're in a browser\n // we can't use regular timers because they may still be faked\n // so we try MessageChannel+postMessage instead\n enqueueTaskImpl = function (callback) {\n {\n if (didWarnAboutMessageChannel === false) {\n didWarnAboutMessageChannel = true;\n\n if (typeof MessageChannel === 'undefined') {\n error('This browser does not have a MessageChannel implementation, ' + 'so enqueuing tasks via await act(async () => ...) will fail. ' + 'Please file an issue at https://github.com/facebook/react/issues ' + 'if you encounter this warning.');\n }\n }\n }\n\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(undefined);\n };\n }\n }\n\n return enqueueTaskImpl(task);\n}\n\nvar actScopeDepth = 0;\nvar didWarnNoAwaitAct = false;\nfunction act(callback) {\n {\n // `act` calls can be nested, so we track the depth. This represents the\n // number of `act` scopes on the stack.\n var prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n\n if (ReactCurrentActQueue.current === null) {\n // This is the outermost `act` scope. Initialize the queue. The reconciler\n // will detect the queue and use it instead of Scheduler.\n ReactCurrentActQueue.current = [];\n }\n\n var prevIsBatchingLegacy = ReactCurrentActQueue.isBatchingLegacy;\n var result;\n\n try {\n // Used to reproduce behavior of `batchedUpdates` in legacy mode. Only\n // set to `true` while the given callback is executed, not for updates\n // triggered during an async event, because this is how the legacy\n // implementation of `act` behaved.\n ReactCurrentActQueue.isBatchingLegacy = true;\n result = callback(); // Replicate behavior of original `act` implementation in legacy mode,\n // which flushed updates immediately after the scope function exits, even\n // if it's an async function.\n\n if (!prevIsBatchingLegacy && ReactCurrentActQueue.didScheduleLegacyUpdate) {\n var queue = ReactCurrentActQueue.current;\n\n if (queue !== null) {\n ReactCurrentActQueue.didScheduleLegacyUpdate = false;\n flushActQueue(queue);\n }\n }\n } catch (error) {\n popActScope(prevActScopeDepth);\n throw error;\n } finally {\n ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy;\n }\n\n if (result !== null && typeof result === 'object' && typeof result.then === 'function') {\n var thenableResult = result; // The callback is an async function (i.e. returned a promise). Wait\n // for it to resolve before exiting the current scope.\n\n var wasAwaited = false;\n var thenable = {\n then: function (resolve, reject) {\n wasAwaited = true;\n thenableResult.then(function (returnValue) {\n popActScope(prevActScopeDepth);\n\n if (actScopeDepth === 0) {\n // We've exited the outermost act scope. Recursively flush the\n // queue until there's no remaining work.\n recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n } else {\n resolve(returnValue);\n }\n }, function (error) {\n // The callback threw an error.\n popActScope(prevActScopeDepth);\n reject(error);\n });\n }\n };\n\n {\n if (!didWarnNoAwaitAct && typeof Promise !== 'undefined') {\n // eslint-disable-next-line no-undef\n Promise.resolve().then(function () {}).then(function () {\n if (!wasAwaited) {\n didWarnNoAwaitAct = true;\n\n error('You called act(async () => ...) without await. ' + 'This could lead to unexpected testing behaviour, ' + 'interleaving multiple act calls and mixing their ' + 'scopes. ' + 'You should - await act(async () => ...);');\n }\n });\n }\n }\n\n return thenable;\n } else {\n var returnValue = result; // The callback is not an async function. Exit the current scope\n // immediately, without awaiting.\n\n popActScope(prevActScopeDepth);\n\n if (actScopeDepth === 0) {\n // Exiting the outermost act scope. Flush the queue.\n var _queue = ReactCurrentActQueue.current;\n\n if (_queue !== null) {\n flushActQueue(_queue);\n ReactCurrentActQueue.current = null;\n } // Return a thenable. If the user awaits it, we'll flush again in\n // case additional work was scheduled by a microtask.\n\n\n var _thenable = {\n then: function (resolve, reject) {\n // Confirm we haven't re-entered another `act` scope, in case\n // the user does something weird like await the thenable\n // multiple times.\n if (ReactCurrentActQueue.current === null) {\n // Recursively flush the queue until there's no remaining work.\n ReactCurrentActQueue.current = [];\n recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n } else {\n resolve(returnValue);\n }\n }\n };\n return _thenable;\n } else {\n // Since we're inside a nested `act` scope, the returned thenable\n // immediately resolves. The outer scope will flush the queue.\n var _thenable2 = {\n then: function (resolve, reject) {\n resolve(returnValue);\n }\n };\n return _thenable2;\n }\n }\n }\n}\n\nfunction popActScope(prevActScopeDepth) {\n {\n if (prevActScopeDepth !== actScopeDepth - 1) {\n error('You seem to have overlapping act() calls, this is not supported. ' + 'Be sure to await previous act() calls before making a new one. ');\n }\n\n actScopeDepth = prevActScopeDepth;\n }\n}\n\nfunction recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n {\n var queue = ReactCurrentActQueue.current;\n\n if (queue !== null) {\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n if (queue.length === 0) {\n // No additional work was scheduled. Finish.\n ReactCurrentActQueue.current = null;\n resolve(returnValue);\n } else {\n // Keep flushing work until there's none left.\n recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n }\n });\n } catch (error) {\n reject(error);\n }\n } else {\n resolve(returnValue);\n }\n }\n}\n\nvar isFlushing = false;\n\nfunction flushActQueue(queue) {\n {\n if (!isFlushing) {\n // Prevent re-entrance.\n isFlushing = true;\n var i = 0;\n\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n\n do {\n callback = callback(true);\n } while (callback !== null);\n }\n\n queue.length = 0;\n } catch (error) {\n // If something throws, leave the remaining callbacks on the queue.\n queue = queue.slice(i + 1);\n throw error;\n } finally {\n isFlushing = false;\n }\n }\n }\n}\n\nvar createElement$1 = createElementWithValidation ;\nvar cloneElement$1 = cloneElementWithValidation ;\nvar createFactory = createFactoryWithValidation ;\nvar Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n};\n\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\nexports.cloneElement = cloneElement$1;\nexports.createContext = createContext;\nexports.createElement = createElement$1;\nexports.createFactory = createFactory;\nexports.createRef = createRef;\nexports.forwardRef = forwardRef;\nexports.isValidElement = isValidElement;\nexports.lazy = lazy;\nexports.memo = memo;\nexports.startTransition = startTransition;\nexports.unstable_act = act;\nexports.useCallback = useCallback;\nexports.useContext = useContext;\nexports.useDebugValue = useDebugValue;\nexports.useDeferredValue = useDeferredValue;\nexports.useEffect = useEffect;\nexports.useId = useId;\nexports.useImperativeHandle = useImperativeHandle;\nexports.useInsertionEffect = useInsertionEffect;\nexports.useLayoutEffect = useLayoutEffect;\nexports.useMemo = useMemo;\nexports.useReducer = useReducer;\nexports.useRef = useRef;\nexports.useState = useState;\nexports.useSyncExternalStore = useSyncExternalStore;\nexports.useTransition = useTransition;\nexports.version = ReactVersion;\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n}\n \n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import { useState, useEffect } from \"react\";\nexport function useNylasSessions(identity) {\n const [isLoggedIn, setIsLoggedIn] = useState(false);\n useEffect(() => {\n const cb = async () => {\n const is = await identity.isLoggedIn();\n if (is) {\n setIsLoggedIn(true);\n }\n else {\n setIsLoggedIn(false);\n }\n };\n cb();\n identity.onLoginSuccess(() => {\n setIsLoggedIn(true);\n });\n identity.onLogoutSuccess(() => {\n setIsLoggedIn(false);\n });\n });\n return {\n isLoggedIn,\n };\n}\n","import { h } from '@stencil/core';\n\nexport type LoginRequiredProps = {\n authenticationUrl: (provider?: string) => Promise<string>;\n};\n\nexport const LoginRequired = ({ authenticationUrl }: LoginRequiredProps) => (\n <div class={'login-required'} part=\"nse__login-required login-component\">\n <div class={'card'} part=\"nse__login-required-card\">\n <p part=\"nse__login-required-text\">Log into your account to use the Scheduler Editor.</p>\n\n <button\n class=\"google-button\"\n part=\"nse__login-required-google-button\"\n onClick={async event => {\n event.preventDefault();\n const authUrl = await authenticationUrl('google');\n if (authUrl) {\n window.location.href = authUrl;\n } else {\n console.error(`[nylas-scheduler-editor] Unable to get authentication URL.`);\n }\n }}\n >\n <span class=\"icon\">\n <google-logo-icon width=\"15\" height=\"15\" />\n </span>\n Continue with Google\n </button>\n\n <button\n class=\"microsoft-button\"\n part=\"nse__login-required-microsoft-button\"\n onClick={async event => {\n event.preventDefault();\n const authUrl = await authenticationUrl('microsoft');\n if (authUrl) {\n window.location.href = authUrl;\n } else {\n console.error(`[nylas-scheduler-editor] Unable to get authentication URL.`);\n }\n }}\n >\n <span class=\"icon\">\n <microsoft-logo-icon width=\"15\" height=\"15\" />\n </span>\n Continue with Microsoft\n </button>\n\n <button\n class=\"other-provider-button\"\n part=\"nse__login-required-other-provider-button\"\n onClick={async event => {\n event.preventDefault();\n const authUrl = await authenticationUrl();\n if (authUrl) {\n window.location.href = authUrl;\n } else {\n console.error(`[nylas-scheduler-editor] Unable to get authentication URL.`);\n }\n }}\n >\n View all providers <chevron-icon width=\"17\" height=\"17\" />\n </button>\n\n <small class=\"disclaimer-text\" part=\"nse__login-required-disclaimer-text\">\n * You will be redirected to authenticate your account.\n </small>\n </div>\n </div>\n);\n","import { Fragment, h } from '@stencil/core';\nimport { Configuration } from '@nylas/core';\nimport { CONFIGURATION_EVENT_TYPE } from '@/common/constants';\n\ntype RecursivePartial<T> = {\n [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object | undefined ? RecursivePartial<T[P]> : T[P];\n};\n\n/**\n * The props for the Express Flow component.\n */\nexport type ExpressFlowProps = {\n currentUser: any;\n calendars: any[];\n selectedConfiguration: RecursivePartial<Configuration>;\n selectedEventType: CONFIGURATION_EVENT_TYPE;\n};\n\n/**\n * The Express Flow component.\n */\nexport default function ExpressFlow({ currentUser, calendars, selectedEventType }: ExpressFlowProps) {\n const defaultCalendarOption = calendars?.find(c => c.is_primary) || calendars?.[0];\n switch (selectedEventType) {\n case CONFIGURATION_EVENT_TYPE.one_on_one:\n case CONFIGURATION_EVENT_TYPE.max_availability:\n case CONFIGURATION_EVENT_TYPE.max_fairness: {\n return (\n <Fragment>\n <nylas-event-info>\n <div slot=\"inputs\">\n <nylas-event-title />\n <nylas-event-duration />\n <nylas-event-location userProvider={currentUser.provider} />\n </div>\n </nylas-event-info>\n <nylas-booking-calendar-picker\n exportparts=\"nbcp, nbcp__header, nbcp__dropdown, nbcp__dropdown-button, nbcp__dropdown-content\"\n expressFlow={true}\n calendars={calendars}\n currentUser={currentUser}\n defaultBookingCalendar={defaultCalendarOption?.id}\n />\n <nylas-custom-event-slug name=\"custom-event-slug\" exportparts=\"nces, nces__body, nces__header, nces__drawer-toggle--container, nces__input-textfield\" />\n </Fragment>\n );\n }\n case CONFIGURATION_EVENT_TYPE.collective: {\n return (\n <Fragment>\n <nylas-event-info>\n <div slot=\"inputs\">\n <nylas-event-title />\n <nylas-event-duration />\n <nylas-event-location userProvider={currentUser.provider} />\n </div>\n </nylas-event-info>\n <nylas-booking-calendar-picker\n exportparts=\"nbcp, nbcp__header, nbcp__dropdown, nbcp__dropdown-button, nbcp__dropdown-content\"\n expressFlow={true}\n calendars={calendars}\n currentUser={currentUser}\n defaultBookingCalendar={defaultCalendarOption?.id}\n />\n <nylas-custom-event-slug name=\"custom-event-slug\" exportparts=\"nces, nces__body, nces__header, nces__drawer-toggle--container, nces__input-textfield\" />\n <nylas-additional-participants\n name=\"participants\"\n eventParticipants={[{ name: currentUser?.name || currentUser?.email, email: 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 </Fragment>\n );\n }\n case CONFIGURATION_EVENT_TYPE.group: {\n return (\n <Fragment>\n <nylas-event-info>\n <div slot=\"inputs\">\n <nylas-event-title noTemplates={true} />\n <nylas-event-description noTemplates={true} hideAutoPopulateButton={true} />\n <nylas-event-location userProvider={currentUser.provider} />\n <nylas-event-timeslot name=\"event-timeslot\" />\n <nylas-event-capacity />\n </div>\n </nylas-event-info>\n <nylas-booking-calendar-picker\n exportparts=\"nbcp, nbcp__header, nbcp__dropdown, nbcp__dropdown-button, nbcp__dropdown-content\"\n expressFlow={true}\n calendars={calendars}\n currentUser={currentUser}\n defaultBookingCalendar={defaultCalendarOption?.id}\n />\n <nylas-additional-participants\n name=\"participants\"\n eventParticipants={[{ name: currentUser?.name || currentUser?.email, email: 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 <nylas-page-name requirePageName={true} pageName=\"Group events page\" />\n <nylas-custom-event-slug name=\"custom-event-slug\" exportparts=\"nces, nces__body, nces__header, nces__drawer-toggle--container, nces__input-textfield\" />\n </Fragment>\n );\n }\n }\n}\n","@use '../../../common/styles/variables' as *;\n@use '../../../common/mixins/buttons' as *;\n\n:host {\n display: flex;\n flex-direction: column;\n overflow: visible;\n border-radius: var(--nylas-border-radius-2x);\n width: fit-content;\n background: var(--nylas-base-0);\n position: relative;\n box-shadow: 0px 0px 6px -2px rgba(0, 0, 0, 0.05),\n 0px 5px 15px -3px rgba(0, 0, 0, 0.1);\n @include default-css-variables;\n\n nylas-notification {\n position: absolute;\n top: 0;\n right: 0;\n }\n\n @media #{$mobile} {\n width: -moz-available;\n /* WebKit-based browsers will ignore this. */\n width: -webkit-fill-available;\n /* Mozilla-based browsers will ignore this. */\n width: fill-available;\n min-width: 325px;\n }\n}\n\ndiv.scheduler-editor-content {\n height: 800px;\n @media #{$mobile} {\n height: auto;\n }\n slot[name=\"login-required\"] {\n height: inherit;\n }\n}\n\ndiv.scheduler-editor-content--group {\n height: 800px;\n\n @media #{$mobile} {\n height: auto;\n }\n}\n\ndiv.scheduler-editor-header {\n display: grid;\n grid-template-columns: 1fr auto auto;\n align-items: center;\n justify-content: space-between;\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-base-200);\n color: var(--nylas-base-900);\n min-width: 924px;\n\n @media #{$mobile} {\n width: auto;\n min-width: calc(325px - 1rem);\n }\n\n h1.scheduler-editor-title {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin: 0;\n font-size: 18px;\n line-height: 24px;\n font-weight: 600;\n }\n\n button {\n @include invisible-button;\n color: var(--nylas-base-900);\n }\n\n div.language {\n select-dropdown::part(sd_dropdown-button) {\n border: none;\n padding: 4px;\n margin-right: 8px;\n\n &:hover {\n outline: none;\n color: var(--nylas-primary);\n }\n }\n\n select-dropdown::part(sd_dropdown-content) {\n min-width: 132px;\n }\n\n @media #{$mobile} {\n select-dropdown::part(sd_dropdown-content) {\n width: -webkit-fill-available;\n width: fill-available;\n width: -moz-available;\n }\n }\n }\n}\n\nnylas-select-event-type {\n height: inherit;\n width: calc(924px + 2rem); // 1rem padding on each side\n\n @media #{$mobile} {\n width: auto;\n }\n}\n\nnylas-editor-tabs,\nnylas-editor-tabs-group {\n width: auto;\n height: inherit;\n\n .row {\n display: flex;\n gap: 1rem;\n }\n\n .composable {\n height: inherit;\n overflow: auto;\n }\n\n nylas-event-info,\n nylas-event-limits {\n div[slot='inputs'] {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n }\n }\n}\n\n.card {\n display: flex;\n flex-direction: column;\n padding: 2rem;\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n border-radius: 5px;\n color: var(--nylas-base-900);\n max-width: fit-content;\n\n align-self: center;\n}\n\n.login-required {\n height: inherit;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 2rem 1rem;\n background-color: var(--nylas-base-25);\n border-radius: var(--nylas-border-radius-2x);\n\n p {\n margin: 0 0 1rem;\n }\n\n .microsoft-button,\n .google-button {\n @include button;\n display: flex;\n margin-bottom: 1rem;\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n border-radius: 5px;\n justify-content: center;\n gap: 0.5rem;\n align-items: center;\n color: var(--nylas-base-900);\n\n &:hover {\n background-color: var(--nylas-base-25);\n }\n }\n\n .other-provider-button {\n @include button;\n display: flex;\n border: 0;\n background-color: var(--nylas-base-0);\n height: 48px;\n margin-bottom: 1rem;\n font-size: 0.95rem;\n justify-content: center;\n gap: 0.25rem;\n align-items: center;\n color: var(--nylas-base-900);\n\n svg {\n transform: rotate(180deg);\n }\n\n &:hover {\n background-color: var(--nylas-base-25);\n }\n }\n\n .disclaimer-text {\n font-size: 0.75rem;\n color: var(--nylas-base-600);\n align-self: center;\n }\n\n @media #{$mobile} {\n height: auto;\n }\n}\n\n.list-configurations {\n padding: 2rem;\n height: inherit;\n background: var(--nylas-base-25);\n border-radius: var(--nylas-border-radius-2x);\n\n nylas-list-configurations {\n height: inherit;\n display: flex;\n flex-direction: column;\n }\n\n @media #{$mobile} {\n height: auto;\n padding: 2rem 1rem;\n }\n}","import { NylasBaseProvider } from '@/common/abstract-provider';\nimport type { SchedulerEditorEventOverride } from '@/common/component-types';\nimport { AuthArgs, NylasIdentityRequestWrapper, User, type NylasApiRequest } from '@/common/nylas-api-request';\nimport { RegisteredComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { CreateNylasSchedulerConfigStore, NylasSchedulerConfigStoreState, NylasSchedulerConfigStoreType } from '@/stores/scheduler-config-store';\nimport { debug } from '@/utils/utils';\nimport { Config, NylasSessions } from '@nylas/identity';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { LoginRequired } from './LoginRequired';\nimport ExpressFlow from './ExpressFlow';\nimport { AdditionalParticipant, GroupConfiguration, EnableEventTypes, ThemeConfig } from '@nylas/core';\nimport { Tab } from '../nylas-editor-tabs/tab-contents';\nimport i18next from '@/utils/i18n';\nimport { CONFIGURATION_EVENT_TYPE, EXPERIMENTAL_FEATURES, LANGUAGE_CODE, LANGUAGE_MAP, Locale } from '@/common/constants';\n\n/**\n * The `nylas-scheduler-editor` component is a form that allows users to configure the settings for the Nylas Scheduler.\n *\n * @slot login-required - This slot is used to display a message when the user is not logged in.\n * @slot custom-page-style-inputs - This slot is used in \"app\" mode to pass a custom page style form to the nylas-page-styling component.\n *\n * @part nse__header - The header of the scheduler editor.\n * @part nse__title - The title of the scheduler editor.\n * @part nse__close-button - The close button of the scheduler editor. Use this part to hide the close button.\n * @part nse__content - The content of the scheduler editor. Use this part to adjust the height of the editor.\n * @part nse__list-configurations - The list of configurations. Use this part to adjust the height of the list.\n * @part nse__login-required - The login required component.\n * @part nse__login-required-card - The card of the login required component.\n * @part nse__login-required-text - The text of the login required component.\n * @part nse__login-required-google-button - The Google button of the login required component.\n * @part nse__login-required-microsoft-button - The Microsoft button of the login required component.\n * @part nse__login-required-other-provider-button - The other provider button of the login required component.\n * @part nse__login-required-disclaimer-text - The icon of the login required component.\n */\n@Component({\n tag: 'nylas-scheduler-editor',\n styleUrl: 'nylas-scheduler-editor.scss',\n shadow: true,\n})\nexport class NylasSchedulerEditor {\n /**\n * Stores to be used by the provider.\n */\n private stores?: {\n schedulerConfig: NylasSchedulerConfigStoreType;\n };\n\n /**\n * This is a base provide that defines the common methods and properties\n * that all providers should have.\n *\n * Because stencil does not support abstract classes, we have to use a\n * property to store the base provider instance.\n */\n private baseProvider?: NylasBaseProvider<Exclude<typeof this.stores, undefined>>;\n\n /**\n * The Nylas Scheduler Config Connector instance.\n * The brains of the provider. It manages data fetching and state synchronization.\n */\n private nylasSchedulerConfigConnector?: NylasSchedulerConfigConnector;\n\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasSchedulerEditorElement;\n\n /***\n * The configuration id to use for the scheduler editor.\n * If provided, then the scheduler editor will try and fetch the configuration\n * with the provided id. If found, it will automatically load the editor\n * with the configuration settings for editing.\n */\n @Prop({ mutable: true }) configurationId?: string;\n\n /**\n * The Nylas Api Request instance.\n * Used to make requests to the Nylas API.\n */\n @Prop({ mutable: true }) nylasApiRequest?: NylasApiRequest;\n\n /**\n * The Nylas Sessions configuration.\n * Used to configure the Nylas Sessions instance.\n */\n @Prop() nylasSessionsConfig?: Config;\n\n /**\n * The default authentication arguments to use when authenticating a user.\n */\n @Prop() defaultAuthArgs?: AuthArgs[];\n\n /**\n * This provides a way to override the default event handlers.\n */\n @Prop() eventOverrides: SchedulerEditorEventOverride = {};\n\n /**\n * The scheduler preview link used when the user clicks the preview button.\n * If `requiresSlug` is true, you can use the placeholder `{slug}` to insert the slug in the link for Nylas hosted scheduling pages.\n * Additionally, you can use the placeholder `{config.id}` to insert the configuration ID anywhere in the link.\n * For example: `https://book.nylas.com/us/<YOUR_NYLAS_APP_CLIENT_ID>/{slug}`.\n * `us` denotes the region. Replace it with the appropriate region of your application.\n * Replace `<YOUR_NYLAS_APP_CLIENT_ID>` with your Nylas app client ID.\n * Note: Nylas hosted scheduling pages are only available for public configurations.\n */\n @Prop({ attribute: 'scheduler-preview-link' }) schedulerPreviewLink: string = '';\n\n /**\n * The default scheduler config store state.\n * Used to set the initial state of the scheduler config store.\n * This state can be used to pass defaults to newly created configurations.\n */\n @Prop({ attribute: 'default-scheduler-config-store-state' }) readonly defaultSchedulerConfigState?: Partial<NylasSchedulerConfigStoreState>;\n\n /**\n * This is used to set the mode for the scheduler config.\n * The mode can be 'app' or 'composable'.\n * The default mode is 'app'.\n */\n @Prop({ attribute: 'mode' }) readonly mode: 'app' | 'composable' = 'app';\n\n /**\n * This prop is used to populate the additional participants and\n * their availability in the scheduler editor.\n */\n @Prop({ attribute: 'additional-participants' }) additionalParticipants?: AdditionalParticipant[];\n\n /**\n * This optional prop is used to hide tabs in the editor. Available tabs are:\n * eventInfo, availability, participants, bookingOptions, bookingForm\n */\n @Prop({ attribute: 'hide-editor-tabs' }) hideEditorTabs?: Tab[] = [];\n\n /**\n * This prop will be used to populate the conference provider options in the editor.\n * The key is the provider name ('zoom') and the value is the grant id.\n * We currently support same provider ('google', 'microsoft') for all participants and 'zoom' for cross-provider conferencing.\n */\n @Prop({ attribute: 'conference-providers' }) conferenceProviders?: Record<string, string>;\n\n /**\n * Indicates if a slug is required for the configuration.\n * When set to true, the user must enter a slug when creating or editing a configuration.\n * The slug is used for hosted pages. If using Nylas hosted scheduling pages, the `schedulerPreviewLink` prop can be set to redirect to a public configuration as follows:\n * `https://book.nylas.com/us/<YOUR_NYLAS_APP_CLIENT_ID>/{slug}`.\n * `us` denotes the region. Replace it with the appropriate region of your application.\n * Replace `<YOUR_NYLAS_APP_CLIENT_ID>` with your Nylas app client ID. The `{slug}` placeholder is replaced with the appropriate slug when the scheduler preview button is clicked.\n * Note: Nylas hosted scheduling pages are only available for public configurations.\n */\n @Prop({ attribute: 'requires-slug' }) requiresSlug: boolean = false;\n\n /**\n * Indicates if the user feedback feature is enabled.\n * By default, this is set to true. When enabled, the user feedback\n * feature will be available in the edit mode.\n * To disable the user feedback feature, set this prop to false.\n */\n @Prop() readonly enableUserFeedback?: boolean = true;\n\n /**\n * This prop will allow to set a default language for the Nylas scheduling page.\n */\n @Prop() readonly defaultLanguage?: LANGUAGE_CODE;\n\n /**\n * This prop will allow to override the default localization strings for each language.\n * Nylas scheduling page currently support the following language codes: en, es, fr, de, sv, zh, ja, nl.\n */\n @Prop() readonly localization?: Partial<Record<LANGUAGE_CODE, Locale>>;\n\n /**\n * This prop will allow to show / hide the option to manage nylas branding in the email template.\n * By default, this is set to true. When enabled, the option to show/hide nylas branding will be shown in the email template.\n * To disable the option to show/hide nylas branding, set this prop to false.\n */\n @Prop() readonly nylasBranding?: boolean = true;\n\n /**\n * This prop is to opt in to experimental features.\n * Ex: { 'group_events': true }\n */\n @Prop() readonly experimentalFeatures?: Record<EXPERIMENTAL_FEATURES, boolean>;\n\n /**\n * Controls which event types are enabled in the Scheduler.\n *\n * - By default, all event types are enabled and users will see a selection screen when creating a new event.\n * - You can disable specific event types by setting them to `false`.\n * - At least one event type must remain enabled at all times.\n * - If only one event type is enabled, the event type selection screen will be skipped.\n */\n @Prop() readonly enableEventTypes?: EnableEventTypes = {\n one_on_one: true,\n collective: true,\n max_fairness: true,\n max_availability: true,\n group: true,\n };\n\n /**\n * Theme config, used to automatically generate a theme with color palette and\n * CSS variables to customize the look and feel of the Nylas Scheduler.\n */\n @Prop() readonly themeConfig?: ThemeConfig;\n /**\n * This event is fired when the provider is initialized.\n * By default, this event handles determining if the user is logged in or not.\n * In addition, it fetches the provided configuration if a valid configuration id is provided.\n */\n @Event({ cancelable: true }) readonly init!: EventEmitter<HTMLNylasSchedulerEditorElement>;\n\n /**\n * This event is fired when the the NylasAuth isAuthenticated state changes\n * to true.\n */\n @Event({ cancelable: true }) readonly loggedIn!: EventEmitter<HTMLNylasSchedulerEditorElement>;\n\n /**\n * This event is fired when the the NylasAuth isAuthenticated state changes\n * to false.\n */\n @Event({ cancelable: true }) readonly loggedOut!: EventEmitter<HTMLNylasSchedulerEditorElement>;\n\n /**\n * This event is fired when the close button on scheduler config is clicked.\n */\n @Event({ cancelable: true }) readonly schedulerConfigCloseClicked!: EventEmitter<HTMLNylasSchedulerEditorElement>;\n\n /**\n * Automatically register components that have the `@RegisterComponent` decorator.\n * If this is set to false, you will need to manually register components using the\n * `registerComponent` method.\n * @default true\n */\n @State() automaticComponentRegistration: boolean = true;\n\n /**\n * This state will track the current selected language of the scheduler page.\n */\n @State() selectedLanguage: LANGUAGE_CODE = this.defaultLanguage || LANGUAGE_CODE.en;\n\n /**\n * This state will track the current language version of the state.\n * This is used to force the component to re-render when the localization prop is updated.\n */\n @State() langVersion: number = 0;\n\n /**\n * The version of the Nylas Scheduler.\n */\n @State() version: string = process.env.PACKAGE_VERSION ? process.env.PACKAGE_VERSION : 'unknown';\n\n connectedCallback() {\n debug(`[nylas-scheduler-editor] connectedCallback`);\n }\n\n async componentWillLoad() {\n debug(`[nylas-scheduler-editor] componentWillLoad`);\n const filteredAdditionalParticipants = this.additionalParticipants?.filter(participant => {\n const filteredCalendars = participant.calendars?.length > 0 ? participant.calendars.filter(calendar => calendar.id && calendar.name) : [];\n if (participant.name && participant.email && filteredCalendars.length > 0) {\n return {\n name: participant.name,\n email: participant.email,\n calendars: filteredCalendars,\n };\n }\n });\n this.stores = {\n schedulerConfig: CreateNylasSchedulerConfigStore({\n ...this.defaultSchedulerConfigState,\n additionalParticipants: filteredAdditionalParticipants,\n conferenceProviders: this.conferenceProviders,\n requiresSlug: this.requiresSlug,\n selectedLanguage: this.defaultLanguage || LANGUAGE_CODE.en,\n nylasBranding: this.nylasBranding,\n experimentalFeatures: this.experimentalFeatures,\n enableEventTypes: this.enableEventTypes,\n themeConfig: this.themeConfig,\n }),\n };\n\n if (!this.nylasApiRequest && this.nylasSessionsConfig) {\n const nylasSession = new NylasSessions(this.nylasSessionsConfig);\n\n // We must check if the user is logged in before continuing\n // otherwise, a PCKE code will not be generated and the user\n // will not be able to log in.\n await nylasSession.isLoggedIn();\n\n // Watch for login events so that we can automatically update the state\n nylasSession.onLoginSuccess(async () => {\n const currentUser = await this.nylasSchedulerConfigConnector?.schedulerConfig?.currentUser();\n if (currentUser) {\n const loggedInEvent = this.loggedIn.emit(this.host);\n if ('loggedIn' in this.eventOverrides) {\n await this.eventOverrides.loggedIn(loggedInEvent, this.nylasSchedulerConfigConnector);\n }\n if (!loggedInEvent.defaultPrevented) {\n await this.loggedInHandler(currentUser);\n }\n }\n });\n\n // Watch for logout events so that we can automatically update the state\n nylasSession.onLoginFail(async () => {\n this.stores?.schedulerConfig?.set('currentUser', null);\n const loggedOutEvent = this.loggedOut.emit(this.host);\n if ('loggedOut' in this.eventOverrides) {\n await this.eventOverrides.loggedOut(loggedOutEvent, this.nylasSchedulerConfigConnector);\n if (loggedOutEvent.defaultPrevented) {\n return;\n }\n }\n });\n\n this.nylasApiRequest = new NylasIdentityRequestWrapper(nylasSession);\n }\n\n if (this.nylasApiRequest && this.defaultAuthArgs) {\n this.nylasApiRequest.setDefaultAuthArgs(this.defaultAuthArgs);\n }\n\n this.baseProvider = new NylasBaseProvider(this.host, this.stores, this.automaticComponentRegistration, this.eventOverrides);\n\n const nylasSchedulerConfigStore = this.baseProvider.getStore('schedulerConfig');\n this.nylasSchedulerConfigConnector = new NylasSchedulerConfigConnector({\n nylasApiRequest: this.nylasApiRequest,\n nylasSchedulerConfigStore: nylasSchedulerConfigStore,\n });\n\n const initEvent = this.init.emit(this.host);\n if ('init' in this.eventOverrides) {\n await this.eventOverrides.init(initEvent, this.nylasSchedulerConfigConnector);\n }\n\n if (!initEvent.defaultPrevented) {\n const currentUser = await this.nylasSchedulerConfigConnector?.schedulerConfig?.currentUser();\n if (currentUser) {\n const loggedInEvent = this.loggedIn.emit(this.host);\n if ('loggedIn' in this.eventOverrides) {\n await this.eventOverrides.loggedIn(loggedInEvent, this.nylasSchedulerConfigConnector);\n }\n if (!loggedInEvent.defaultPrevented) {\n await this.loggedInHandler(currentUser);\n }\n } else {\n this.stores?.schedulerConfig?.set('currentUser', null);\n const loggedOutEvent = this.loggedOut.emit(this.host);\n if ('loggedOut' in this.eventOverrides) {\n await this.eventOverrides.loggedOut(loggedOutEvent, this.nylasSchedulerConfigConnector);\n if (loggedOutEvent.defaultPrevented) {\n return;\n }\n }\n }\n }\n\n // Watch for store changes\n this.stores?.schedulerConfig?.onChange('selectedConfiguration', async config => {\n if (config && config.id) {\n this.configurationId = config.id;\n }\n });\n\n this.baseProvider?.componentWillLoad(this.nylasSchedulerConfigConnector);\n // Override theme\n this.applyThemeConfig(this.themeConfig);\n }\n\n async componentDidLoad() {\n debug(`[nylas-scheduler-editor] componentDidLoad`);\n await this.baseProvider?.componentDidLoad();\n this.updateLocalization(this.localization);\n this.version = process.env.PACKAGE_VERSION ? process.env.PACKAGE_VERSION : 'unknown';\n }\n\n async componentDisconnected() {\n await this.baseProvider?.componentDisconnected();\n }\n\n /**\n * Watch for changes to the configuration id and automatically fetch the configuration\n * when the configuration id changes. If the configuration id is cleared, then the\n * configuration is cleared as well.\n * @param newConfigurationId The new configuration id\n */\n @Watch('configurationId')\n async configurationIdChanged(newConfigurationId: string) {\n if (newConfigurationId) {\n await this.nylasSchedulerConfigConnector?.schedulerConfig?.getConfigurationById(newConfigurationId);\n this.stores?.schedulerConfig?.set('action', 'edit');\n } else {\n // Clear the configuration\n this.stores?.schedulerConfig?.set('selectedConfiguration', {});\n this.stores?.schedulerConfig?.set('action', null);\n }\n }\n\n @Watch('localization')\n updateLocalization(newVal?: Partial<Record<LANGUAGE_CODE, Locale>>) {\n if (!newVal) {\n return;\n }\n\n Object.keys(newVal).forEach(lang => {\n if (!(lang in LANGUAGE_CODE)) {\n return;\n }\n i18next.addResourceBundle(\n lang,\n 'translation',\n newVal[lang],\n false, // Merge with existing translations\n true, // Replace the existing translations with the same key\n );\n });\n this.langVersion++;\n }\n\n @Watch('nylasBranding')\n updateNylasBranding(newVal: boolean) {\n this.stores?.schedulerConfig?.set('nylasBranding', newVal);\n }\n\n @Watch('experimentalFeatures')\n updateExperimentalFeatures(newVal: Record<EXPERIMENTAL_FEATURES, boolean>) {\n this.stores?.schedulerConfig?.set('experimentalFeatures', newVal);\n }\n\n @Watch('enableEventTypes')\n updateEnableEventTypes(newVal: EnableEventTypes) {\n this.stores?.schedulerConfig?.set('enableEventTypes', newVal);\n }\n\n @Watch('themeConfig')\n themeConfigChanged(newVal?: ThemeConfig) {\n // Set the theme config in the store, hosted page will use this to apply/re-apply the theme\n this.baseProvider?.getStore('schedulerConfig')?.set('themeConfig', newVal);\n this.applyThemeConfig(newVal);\n }\n\n /**\n * This method is used to apply the theme config to the host element.\n * @param themeConfig The theme config to apply.\n */\n private 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 /**\n * This method is used to get the NylasSchedulerConfigStore instance.\n * You can use this instance to update or get the state of the store.\n * @returns Promise<NylasSchedulerConfigStoreType | undefined>\n */\n @Method()\n async store(): Promise<NylasSchedulerConfigStoreType | undefined> {\n return this.stores?.schedulerConfig;\n }\n\n /**\n * This method is used to get the NylasSchedulerConfigConnector instance.\n * You can use this instance to make requests to the Nylas API.\n * @returns Promise<NylasSchedulerConfigConnector | undefined>\n */\n @Method()\n async schedulerConnector(): Promise<NylasSchedulerConfigConnector | undefined> {\n return this.nylasSchedulerConfigConnector;\n }\n\n /**\n * This is a custom event handler that is used to register a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to register\n * @returns Promise<void>\n */\n @Listen('registerComponent')\n async registerComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.registerComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to unregister a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to unregister\n * @returns Promise<void>\n */\n @Listen('unregisterComponent')\n async unregisterComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.unregisterComponent(event.detail);\n }\n\n @Listen('nylasFormDropdownChanged')\n nylasFormDropdownChangedHandler(\n event: CustomEvent<{\n value: string;\n name: string;\n }>,\n ) {\n const { name, value } = event.detail;\n if (name === 'language') {\n this.selectedLanguage = LANGUAGE_CODE[value as LANGUAGE_CODE];\n i18next.changeLanguage(this.selectedLanguage);\n this.stores?.schedulerConfig?.set('selectedLanguage', this.selectedLanguage);\n }\n }\n\n /**\n * Upon login, set the current user and fetch the configuration and calendars.\n * @param currentUser The current user that is logged in\n */\n private async loggedInHandler(currentUser: User) {\n this.stores?.schedulerConfig?.set('currentUser', currentUser);\n\n if (!this.nylasSchedulerConfigConnector) {\n return;\n }\n\n await this.nylasSchedulerConfigConnector.schedulerConfig?.getCalendars();\n\n if (this.configurationId) {\n const data = await this.nylasSchedulerConfigConnector.schedulerConfig?.getConfigurationById(this.configurationId);\n if (data && data[0]?.id) {\n this.stores?.schedulerConfig?.set('action', 'edit');\n }\n }\n }\n\n /**\n * This is a custom event handler that is used to update the state of the provider.\n */\n private handleSchedulerConfigCloseClicked = (_event: Event) => {\n const event = this.schedulerConfigCloseClicked.emit(this.host);\n if ('schedulerConfigCloseClicked' in this.eventOverrides) {\n this.eventOverrides.schedulerConfigCloseClicked(event, this.nylasSchedulerConfigConnector);\n }\n\n if (!event.defaultPrevented) {\n localStorage.removeItem('grant');\n localStorage.removeItem('user');\n window.location.reload();\n }\n };\n\n /**\n * This method is used to get the authentication URL for a provider.\n * @param provider The provider to get the authentication URL for (e.g. google, microsoft, etc.)\n * @returns Promise<string> The authentication URL to redirect the user for the provider\n */\n private authenticationUrl = async (provider?: string) => {\n if (!this.nylasApiRequest) {\n console.error(`[nylas-scheduler-editor] Nylas API Request is not initialized.`);\n return '';\n }\n const url = await this.nylasApiRequest.authenticationUrl({ provider });\n\n return url || '';\n };\n\n render() {\n const hasSlot = this.host.querySelector('[slot=\"custom-page-style-inputs\"]');\n const selectedConfigId = this.stores?.schedulerConfig?.state.selectedConfiguration?.id;\n const languageOptions = Object.keys(LANGUAGE_MAP).map(key => ({\n label: LANGUAGE_MAP[key],\n value: key,\n }));\n const isGroupType =\n this.stores?.schedulerConfig?.state.selectedEventType === CONFIGURATION_EVENT_TYPE.group ||\n (this.stores?.schedulerConfig?.state.selectedConfiguration as GroupConfiguration)?.type === CONFIGURATION_EVENT_TYPE.group;\n\n return (\n <Host>\n <div class=\"scheduler-editor-header\" part=\"nse__header\">\n <h1 class=\"scheduler-editor-title\" part=\"nse__title\">\n <calendar-icon width=\"18\" height=\"18\" />\n {i18next.t('schedulerEditorTitle')}\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{this.version}</span>\n </tooltip-component>\n </h1>\n <div\n class={{\n language: true,\n }}\n part=\"nse__language\"\n >\n <select-dropdown\n name=\"language\"\n searchPlaceholder={i18next.t('search')}\n options={languageOptions}\n withChevron={false}\n themeConfig={this.themeConfig}\n defaultSelectedOption={languageOptions.find(lang => lang.value == this.selectedLanguage)}\n exportparts=\"sd_dropdown: nse__language-dropdown, sd_dropdown-button: nse__language-drop-button, sd_dropdown-content: nse__language-drop-content, sd_dropdown_label: nse__language-drop-label\"\n >\n <span slot=\"select-icon\">\n <translate-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n <button class=\"scheduler-editor-close\" title=\"logout\" onClick={e => this.handleSchedulerConfigCloseClicked(e)} part=\"nse__close-button\">\n <close-icon width=\"18\" height=\"18\" />\n </button>\n </div>\n <div\n class={{\n 'scheduler-editor-content': true,\n 'scheduler-editor-content--group': isGroupType,\n }}\n part=\"nse__content\"\n >\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === null && (\n <div class=\"list-configurations\" part=\"nse__list-configurations\">\n <nylas-list-configurations exportparts=\"nlc__create-new-cta, actions__dropdown, actions__dropdown-button, actions__dropdown-content, actions-Copy, actions-Preview, actions-Delete\"></nylas-list-configurations>\n </div>\n )}\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'create-select' && <nylas-select-event-type></nylas-select-event-type>}\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'create' && isGroupType && (\n // If the mode is 'app', then render the editor tabs in a composable mode with children for creating a new configuration (Express flow).\n <nylas-editor-tabs-group mode=\"composable\">\n <ExpressFlow\n selectedEventType={this.stores?.schedulerConfig?.state?.selectedEventType || CONFIGURATION_EVENT_TYPE.one_on_one}\n currentUser={this.stores?.schedulerConfig?.state.currentUser}\n calendars={this.stores?.schedulerConfig?.state?.calendars}\n selectedConfiguration={this.stores?.schedulerConfig?.state?.selectedConfiguration}\n />\n </nylas-editor-tabs-group>\n )}\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'create' && !isGroupType && (\n // If the mode is 'app', then render the editor tabs in a composable mode with children for creating a new configuration (Express flow).\n <nylas-editor-tabs mode=\"composable\">\n <ExpressFlow\n selectedEventType={this.stores?.schedulerConfig?.state?.selectedEventType || CONFIGURATION_EVENT_TYPE.one_on_one}\n currentUser={this.stores?.schedulerConfig?.state.currentUser}\n calendars={this.stores?.schedulerConfig?.state?.calendars}\n selectedConfiguration={this.stores?.schedulerConfig?.state?.selectedConfiguration}\n />\n </nylas-editor-tabs>\n )}\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'edit' && isGroupType && (\n <nylas-editor-tabs-group key={selectedConfigId} mode={this.mode}>\n {this.mode === 'composable' && <slot />}\n {this.mode === 'app' && hasSlot && (\n <div style={{ display: 'none' }} slot=\"custom-page-style-inputs\" key={selectedConfigId}>\n <slot name=\"custom-page-style-inputs\" />\n </div>\n )}\n </nylas-editor-tabs-group>\n )}\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'edit' && !isGroupType && (\n <nylas-editor-tabs key={selectedConfigId} mode={this.mode}>\n {this.mode === 'composable' && <slot />}\n {this.mode === 'app' && hasSlot && (\n <div style={{ display: 'none' }} slot=\"custom-page-style-inputs\" key={selectedConfigId}>\n <slot name=\"custom-page-style-inputs\" />\n </div>\n )}\n </nylas-editor-tabs>\n )}\n {!this.stores?.schedulerConfig?.state.currentUser && (\n <slot name=\"login-required\">\n <LoginRequired authenticationUrl={this.authenticationUrl} />\n </slot>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"names":["isNylasErrorResponse","local","URL","this","uuid","jwtDecode","reactModule","require$$0","require$$1","useState","useEffect","i18next"],"mappings":"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","x_google_ignoreList":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,23,25,26,27]}
|
|
1
|
+
{"version":3,"file":"nylas-scheduler-editor.entry.esm.js","sources":["src/connector/shared/api/scheduler-config.ts","src/connector/nylas-scheduler-config-connector/index.ts","src/stores/scheduler-config-store.ts","../nylas-identity/esm/client/localStorage.js","../nylas-identity/esm/client/store.js","../nylas-identity/esm/client/indexedDB.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/rng.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/regex.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/validate.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/stringify.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v1.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/parse.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v35.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/md5.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v3.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v4.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/sha1.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v5.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/nil.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/version.js","../../node_modules/.pnpm/@microsoft+fetch-event-source@2.0.1/node_modules/@microsoft/fetch-event-source/lib/esm/parse.js","../../node_modules/.pnpm/@microsoft+fetch-event-source@2.0.1/node_modules/@microsoft/fetch-event-source/lib/esm/fetch.js","../nylas-identity/esm/helpers/index.js","../../node_modules/.pnpm/jwt-decode@3.1.2/node_modules/jwt-decode/build/jwt-decode.esm.js","../nylas-identity/esm/app.js","../../node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react.production.min.js","../../node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react.development.js","../../node_modules/.pnpm/react@18.2.0/node_modules/react/index.js","../nylas-identity/esm/helpers/hooks.js","src/components/scheduler-editor/nylas-scheduler-editor/LoginRequired.tsx","src/components/scheduler-editor/nylas-scheduler-editor/ExpressFlow.tsx","src/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.scss?tag=nylas-scheduler-editor&encapsulation=shadow","src/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.tsx"],"sourcesContent":["import { NylasApiRequest } from '../../../common/nylas-api-request';\nimport { NylasSchedulerConfigStoreType } from '@/stores/scheduler-config-store';\nimport { dataResponse, getCalendarRange } from '@/utils/utils';\nimport {\n Calendar,\n Configuration,\n EventDetails,\n GroupConfiguration,\n GroupEvent,\n GroupEventAPIData,\n ImportGroupEventDetails,\n ImportGroupEventResponse,\n NylasResponse,\n RecurrenceDeleteOption,\n RecurrenceUpdateOption,\n isNylasErrorResponse,\n} from '@nylas/core';\nimport dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\ntype NylasSchedulerConfigAPIConnectorOptions = {\n nylasApiRequest?: NylasApiRequest;\n nylasSchedulerConfigStore: NylasSchedulerConfigStoreType;\n};\n\ntype GroupEventsCache = {\n data: GroupEventAPIData[];\n timestamp: number;\n};\n\n/**\n * Nylas Scheduler Config API Connector\n * This class is responsible for making API requests to the Nylas API for Scheduler Configurations.\n */\nexport class NylasSchedulerConfigAPIConnector {\n private nylasApiRequest?: NylasApiRequest;\n private nylasSchedulerConfigStore: NylasSchedulerConfigStoreType;\n private groupEventsCache: Map<string, GroupEventsCache> = new Map();\n private readonly CACHE_DURATION = 1 * 60 * 1000; //1 minute in milliseconds\n\n constructor({ nylasApiRequest, nylasSchedulerConfigStore }: NylasSchedulerConfigAPIConnectorOptions) {\n this.nylasApiRequest = nylasApiRequest;\n this.nylasSchedulerConfigStore = nylasSchedulerConfigStore;\n }\n\n /**\n * Get the current user.\n * @returns The current user or null if the request is not initialized.\n */\n public async currentUser() {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return null;\n }\n\n return this.nylasApiRequest.currentUser();\n }\n\n /**\n * Get the current user's calendars.\n * @returns The current user's calendars or an error if the request is not initialized.\n */\n public async getCalendars() {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error fetching calendars: Nylas API Request is not initialized',\n });\n }\n\n const allCalendars: Calendar[] = [];\n let cursor: string | null = null;\n const limit = 50;\n\n do {\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Calendar[]>>({\n method: 'GET',\n path: `calendars?limit=${limit}${cursor ? `&page_token=${cursor}` : ''}`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error fetching calendars: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error fetching calendars: ' + response.error?.message,\n });\n }\n\n // Add the current page of calendars to our collection\n allCalendars.push(...response.data);\n\n // Update cursor for next iteration\n cursor = response.next_cursor || null;\n } while (cursor);\n\n // Set all calendars as the current calendars\n this.nylasSchedulerConfigStore.state.calendars = allCalendars;\n\n return dataResponse(allCalendars);\n }\n\n /**\n * Get a configuration by its ID.\n * @param configurationId The ID of the configuration to fetch.\n */\n public async getConfigurationById(configurationId: string, forceFetch: boolean = false) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error fetching configuration: Nylas API Request is not initialized',\n });\n }\n\n // If the configuration is already in the store, return it\n if (!forceFetch) {\n const existingConfig = this.nylasSchedulerConfigStore.state.configurations.find(c => c.id === configurationId);\n if (existingConfig) {\n this.nylasSchedulerConfigStore.state.selectedConfiguration = existingConfig;\n return dataResponse(existingConfig);\n }\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Configuration>>({\n method: 'GET',\n path: `scheduling/configurations/${configurationId}`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error fetching configuration: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error fetching configuration: ' + response.error?.message,\n });\n }\n\n // Set the new configuration as the current configuration\n this.nylasSchedulerConfigStore.state.selectedConfiguration = response.data;\n\n // If the configuration was updated, update the list of configurations\n // If it doesn't exist, add it to the list\n if (this.nylasSchedulerConfigStore.state.configurations.find(c => c.id === configurationId)) {\n this.nylasSchedulerConfigStore.state.configurations = this.nylasSchedulerConfigStore.state.configurations.map(c => (c.id === configurationId ? response.data : c));\n } else {\n this.nylasSchedulerConfigStore.state.configurations = [...this.nylasSchedulerConfigStore.state.configurations, response.data];\n }\n\n return dataResponse(response.data);\n }\n\n /**\n * Get all configurations.\n * @returns The list of configurations or an error if the request is not initialized.\n */\n public async getConfigurations(cursor?: string) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error fetching configurations: Nylas API Request is not initialized',\n });\n }\n const limit = 50;\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Configuration[]>>({\n method: 'GET',\n path: `scheduling/configurations?limit=${limit}${cursor ? `&page_token=${cursor}` : ''}`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error fetching configurations: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error fetching configurations: ' + response.error?.message,\n });\n }\n\n // Set the configurations in the store\n this.nylasSchedulerConfigStore.state.configurations = response.data;\n this.nylasSchedulerConfigStore.state.listConfigurationsNextCursor = response.next_cursor || null;\n return dataResponse(response.data);\n }\n\n /**\n * Get master event by its ID.\n */\n public async getMasterEventById(masterEventId: string) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error fetching master event: Nylas API Request is not initialized',\n });\n }\n\n const selectedGroupEvent = this.nylasSchedulerConfigStore.state.selectedGroupEvent;\n const calendar_id = selectedGroupEvent?.event?.calendar_id;\n if (!calendar_id) {\n console.warn('Calendar ID is not present');\n return dataResponse(null, {\n message: 'Error fetching master event: Calendar ID is not present',\n });\n }\n const queryParamsObject = new URLSearchParams();\n queryParamsObject.append('calendar_id', calendar_id);\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<EventDetails>>({\n method: 'GET',\n path: `events/${masterEventId}?${queryParamsObject.toString()}`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error fetching master event: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error fetching master event: ' + response.error?.message,\n });\n }\n\n const masterGroupEvents = this.nylasSchedulerConfigStore.state.masterGroupEvents;\n // Set the new master event as the current master event\n if (masterGroupEvents[masterEventId]) {\n this.nylasSchedulerConfigStore.state.masterGroupEvents[masterEventId] = response.data;\n } else {\n this.nylasSchedulerConfigStore.state.masterGroupEvents = { ...masterGroupEvents, [masterEventId]: response.data };\n }\n\n return dataResponse(response.data);\n }\n\n /**\n * Create a new configuration.\n * @param configuration The configuration to create.\n * @returns The new configuration or an error if the request is not initialized.\n */\n public async createConfiguration(configuration: Omit<Partial<Configuration>, 'id'>) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error creating configuration: Nylas API Request is not initialized',\n });\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Configuration>>({\n method: 'POST',\n path: `scheduling/configurations`,\n body: configuration,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error creating configuration: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error creating configuration: ' + response.error?.message,\n });\n }\n\n // Set the new configuration as the current configuration\n this.nylasSchedulerConfigStore.state.selectedConfiguration = response.data;\n\n // Add the new configuration to the list of configurations\n this.nylasSchedulerConfigStore.state.configurations = [...this.nylasSchedulerConfigStore.state.configurations, response.data];\n\n return dataResponse(response.data);\n }\n\n /**\n * Update an existing configuration.\n * @param configuration The configuration to update.\n * @returns The updated configuration or an error if the request is not initialized.\n */\n public async updateConfiguration(configuration: Partial<Configuration>) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error updating configuration: Nylas API Request is not initialized',\n });\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Configuration>>({\n method: 'PUT',\n path: `scheduling/configurations/${configuration.id}`,\n body: configuration,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error updating configuration: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error updating configuration: ' + response.error?.message,\n });\n }\n\n // Set the new configuration as the current configuration\n this.nylasSchedulerConfigStore.state.selectedConfiguration = response.data;\n\n // If the configuration was updated, update the list of configurations\n // If it doesn't exist, add it to the list\n if (this.nylasSchedulerConfigStore.state.configurations.find(c => c.id === configuration.id)) {\n this.nylasSchedulerConfigStore.state.configurations = this.nylasSchedulerConfigStore.state.configurations.map(c => (c.id === configuration.id ? response.data : c));\n } else {\n this.nylasSchedulerConfigStore.state.configurations = [...this.nylasSchedulerConfigStore.state.configurations, response.data];\n }\n\n return dataResponse(response.data);\n }\n\n /**\n * Delete a configuration by its ID.\n * @param configurationId The ID of the configuration to delete.\n * @returns The deleted configuration or an error if the request is not initialized.\n */\n public async deleteConfiguration(configurationId: string) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error deleting configuration: Nylas API Request is not initialized',\n });\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Configuration>>({\n method: 'DELETE',\n path: `scheduling/configurations/${configurationId}`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error deleting configuration: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error deleting configuration: ' + response.error?.message,\n });\n }\n\n // Remove the configuration from the list\n this.nylasSchedulerConfigStore.state.configurations = this.nylasSchedulerConfigStore.state.configurations.filter(c => c.id !== configurationId);\n\n // If the deleted configuration was the current configuration, reset it\n if (this.nylasSchedulerConfigStore.state.selectedConfiguration?.id === configurationId) {\n this.nylasSchedulerConfigStore.resetSelectedConfiguration();\n }\n\n return dataResponse(response.data);\n }\n\n /**\n * Create a group event.\n * @param eventDetails The group event to create.\n * @returns The group event or an error if the request is not initialized.\n */\n public async createGroupEvent(eventDetails: Omit<Partial<GroupEvent>, 'id'>, configurationId: string) {\n this.nylasSchedulerConfigStore.state.isLoading = true;\n\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error creating group event: Nylas API Request is not initialized',\n });\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<GroupEventAPIData>>({\n method: 'POST',\n path: `scheduling/configurations/${configurationId}/group-events`,\n body: eventDetails,\n });\n\n if (error) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error creating group event: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error creating group event: ' + response.error?.message,\n });\n }\n\n // Set the new configuration as the current configuration\n this.nylasSchedulerConfigStore.state.selectedGroupEvent = response.data;\n\n // Get the list of group events\n await this.getGroupEvents(configurationId, this.nylasSchedulerConfigStore.state.selectedConfiguration as Configuration | GroupConfiguration);\n\n this.nylasSchedulerConfigStore.state.isLoading = false;\n\n return dataResponse(response.data);\n }\n\n /**\n * Get a list of group events for a configuration.\n */\n public async getGroupEvents(configurationId: string, selectedConfiguration: Configuration | GroupConfiguration) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error fetching group events: Nylas API Request is not initialized',\n });\n }\n\n const queryParamsObject = new URLSearchParams();\n queryParamsObject.append('show_all', 'true');\n\n const calendarViewDateRange = this.nylasSchedulerConfigStore.state.calendarViewDateRange;\n let startTime: string;\n let endTime: string;\n\n if (calendarViewDateRange) {\n startTime = calendarViewDateRange.start_time;\n endTime = calendarViewDateRange.end_time;\n } else {\n const range = getCalendarRange(new Date().toISOString(), 'week');\n startTime = range.startTime.toString();\n endTime = range.endTime.toString();\n }\n\n // Create a cache key from the time range\n const cacheKey = `${configurationId}-${startTime}-${endTime}`;\n const cachedData = this.groupEventsCache.get(cacheKey);\n\n // Check if we have valid cached data\n if (cachedData && Date.now() - cachedData.timestamp < this.CACHE_DURATION) {\n this.nylasSchedulerConfigStore.state.groupEvents = cachedData.data;\n return dataResponse(cachedData.data);\n }\n\n queryParamsObject.append('start_time', startTime);\n queryParamsObject.append('end_time', endTime);\n\n const calendar_id = (selectedConfiguration as GroupConfiguration)?.group_booking?.calendar_id;\n if (calendar_id) {\n queryParamsObject.append('calendar_id', calendar_id);\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<GroupEventAPIData[]>>({\n method: 'GET',\n path: `scheduling/configurations/${configurationId}/group-events?${queryParamsObject.toString()}`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error fetching group events: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error fetching group events: ' + response.error?.message,\n });\n }\n\n // Update cache with new data\n this.groupEventsCache.set(cacheKey, {\n data: response.data,\n timestamp: Date.now(),\n });\n\n // Clean up expired cache entries\n this.cleanupExpiredCache();\n\n // Set the group events in the store\n this.nylasSchedulerConfigStore.state.groupEvents = response.data;\n\n return dataResponse(response.data);\n }\n\n /**\n * Clean up expired cache entries\n */\n private cleanupExpiredCache() {\n const now = Date.now();\n for (const [key, value] of this.groupEventsCache.entries()) {\n if (now - value.timestamp > this.CACHE_DURATION) {\n this.groupEventsCache.delete(key);\n }\n }\n }\n\n /**\n * Update a group event.\n */\n public async updateGroupEventById(groupEventDetails: Partial<GroupEvent>, configurationId: string) {\n this.nylasSchedulerConfigStore.state.isLoading = true;\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error updating group event: Nylas API Request is not initialized',\n });\n }\n const groupEventId = groupEventDetails.id;\n delete groupEventDetails.id;\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<GroupEventAPIData>>({\n method: 'PATCH',\n path: `scheduling/configurations/${configurationId}/group-events/${groupEventId}`,\n body: groupEventDetails,\n });\n\n if (error) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error updating group event: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error updating group event: ' + response.error?.message,\n });\n }\n\n // Set the new group event as the current group event\n this.nylasSchedulerConfigStore.state.selectedGroupEvent = response.data;\n\n // If the group event was updated, update the list of group events\n await this.getGroupEvents(configurationId, this.nylasSchedulerConfigStore.state.selectedConfiguration as Configuration | GroupConfiguration);\n\n this.nylasSchedulerConfigStore.state.isLoading = false;\n\n return dataResponse(response.data);\n }\n /**\n * Updates a group event based on recurrence logic.\n */\n public async updateGroupEvent(groupEventDetails: GroupEvent, chosenOption: RecurrenceUpdateOption, configurationId: string) {\n this.nylasSchedulerConfigStore.state.isLoading = true;\n const selectedGroupEvent = this.nylasSchedulerConfigStore.state.selectedGroupEvent;\n const masterEventId = selectedGroupEvent?.event?.master_event_id;\n const selectedGroupEventId = selectedGroupEvent?.event?.id;\n const selectedGroupEventStartTime = selectedGroupEvent?.event?.when?.start_time;\n const rruleString = selectedGroupEvent?.group_event_info?.rrule?.[0];\n const rruleStringWithoutUntil = rruleString\n ? rruleString\n .split(';')\n .filter(s => !s.startsWith('UNTIL'))\n .join(';')\n : '';\n const until = selectedGroupEventStartTime\n ? dayjs(selectedGroupEventStartTime * 1000)\n .subtract(1, 'minute')\n .format('YYYYMMDDTHHmmss[Z]')\n : '';\n if (chosenOption === 'this') {\n // Update only the current event (sub-event)\n return this.updateGroupEventById(\n {\n ...groupEventDetails,\n id: selectedGroupEventId,\n recurrence: masterEventId ? undefined : groupEventDetails.recurrence,\n },\n configurationId,\n );\n } else if (chosenOption === 'future' && masterEventId) {\n // 1️⃣ Create a new recurrence event with the same recurrence as before\n const newRecurrenceEvent = await this.createGroupEvent(groupEventDetails, configurationId);\n // 2️⃣ Update master event with UNTIL\n const updatedMasterEvent = {\n location: selectedGroupEvent?.event?.location,\n conferencing: selectedGroupEvent?.event?.conferencing,\n title: selectedGroupEvent?.event?.title,\n description: selectedGroupEvent?.event?.description,\n capacity: selectedGroupEvent?.group_event_info?.capacity,\n calendar_id: selectedGroupEvent?.event?.calendar_id,\n recurrence: rruleStringWithoutUntil ? [rruleStringWithoutUntil + ';UNTIL=' + until] : [`RRULE:FREQ=DAILY;UNTIL=${until}`],\n };\n await this.updateGroupEventById(\n {\n ...updatedMasterEvent,\n id: masterEventId,\n },\n configurationId,\n );\n return [updatedMasterEvent, newRecurrenceEvent];\n } else if (chosenOption === 'all') {\n // Update the master event\n // Check if the when is different\n const groupEventDetailsWhen = groupEventDetails?.when;\n const selectedGroupEventWhen = selectedGroupEvent?.event?.when;\n const masterEvent = this.nylasSchedulerConfigStore.state.masterGroupEvents?.[masterEventId as string];\n let when = masterEvent?.when;\n\n if (groupEventDetailsWhen?.start_time !== selectedGroupEventWhen?.start_time) {\n when = {\n ...when,\n start_time: groupEventDetailsWhen?.start_time || when?.start_time,\n };\n }\n if (groupEventDetailsWhen?.end_time !== selectedGroupEventWhen?.end_time) {\n when = {\n ...when,\n end_time: groupEventDetailsWhen?.end_time || when?.end_time,\n };\n }\n if (groupEventDetailsWhen?.start_timezone !== selectedGroupEventWhen?.start_timezone) {\n when = {\n ...when,\n start_timezone: groupEventDetailsWhen?.start_timezone || when?.start_timezone,\n };\n }\n if (groupEventDetailsWhen?.end_timezone !== selectedGroupEventWhen?.end_timezone) {\n when = {\n ...when,\n end_timezone: groupEventDetailsWhen?.end_timezone || when?.end_timezone,\n };\n }\n\n return this.updateGroupEventById(\n {\n ...groupEventDetails,\n when: when,\n id: masterEventId,\n },\n configurationId,\n );\n }\n\n this.nylasSchedulerConfigStore.state.isLoading = false;\n throw new Error('Invalid option');\n }\n\n /**\n * Delete a group event.\n */\n public async deleteGroupEvent(_groupEventDetails: GroupEvent, chosenOption: RecurrenceDeleteOption, configurationId: string) {\n this.nylasSchedulerConfigStore.state.isLoading = true;\n const selectedGroupEvent = this.nylasSchedulerConfigStore.state.selectedGroupEvent;\n const masterEventId = selectedGroupEvent?.event?.master_event_id;\n const selectedGroupEventId = selectedGroupEvent?.event?.id;\n const selectedGroupEventStartTime = selectedGroupEvent?.event?.when?.start_time;\n const rruleString = selectedGroupEvent?.group_event_info?.rrule?.[0];\n const rruleStringWithoutUntil = rruleString\n ? rruleString\n .split(';')\n .filter(s => !s.startsWith('UNTIL'))\n .join(';')\n : '';\n const until = selectedGroupEventStartTime ? dayjs(selectedGroupEventStartTime * 1000).format('YYYYMMDDTHHmmss[Z]') : '';\n const updatedMasterEvent = {\n location: selectedGroupEvent?.event?.location,\n conferencing: selectedGroupEvent?.event?.conferencing,\n title: selectedGroupEvent?.event?.title,\n description: selectedGroupEvent?.event?.description,\n capacity: selectedGroupEvent?.group_event_info?.capacity,\n calendar_id: selectedGroupEvent?.event?.calendar_id,\n recurrence: rruleStringWithoutUntil ? [rruleStringWithoutUntil + ';UNTIL=' + until] : [`RRULE:UNTIL=${until}`],\n };\n\n if (chosenOption === 'this' && selectedGroupEventId) {\n // Delete only the current event (sub-event)\n return this.deleteGroupEventById(selectedGroupEventId, configurationId);\n } else if (chosenOption === 'future' && masterEventId && selectedGroupEventId) {\n // Delete current event\n await this.deleteGroupEventById(selectedGroupEventId, configurationId);\n // Update master event with UNTIL\n return await this.updateGroupEventById(\n {\n ...updatedMasterEvent,\n id: masterEventId,\n },\n configurationId,\n );\n } else if (chosenOption === 'all' && masterEventId) {\n // Delete all events\n return this.deleteGroupEventById(masterEventId, configurationId);\n }\n\n this.nylasSchedulerConfigStore.state.isLoading = false;\n throw new Error('Invalid option');\n }\n\n /**\n * Delete a group event by its ID.\n */\n public async deleteGroupEventById(groupEventId: string, configurationId: string) {\n this.nylasSchedulerConfigStore.state.isLoading = true;\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error deleting group event: Nylas API Request is not initialized',\n });\n }\n\n const queryParamsObject = new URLSearchParams();\n const calendar_id = (this.nylasSchedulerConfigStore.state.selectedConfiguration as GroupConfiguration)?.group_booking?.calendar_id;\n if (calendar_id) {\n queryParamsObject.append('calendar_id', calendar_id);\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<GroupEventAPIData>>({\n method: 'DELETE',\n path: `scheduling/configurations/${configurationId}/group-events/${groupEventId}?calendar_id=${calendar_id}`,\n });\n\n if (error) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error deleting group event: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error deleting group event: ' + response.error?.message,\n });\n }\n\n // If the group event was delete, update the list of group events\n await this.getGroupEvents(configurationId, this.nylasSchedulerConfigStore.state.selectedConfiguration as Configuration | GroupConfiguration);\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(response.data);\n }\n\n /**\n * Import a group event.\n */\n public async importGroupEvent(groupEventDetails: ImportGroupEventDetails[], configurationId: string) {\n this.nylasSchedulerConfigStore.state.isLoading = true;\n\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error importing group event: Nylas API Request is not initialized',\n });\n }\n\n const queryParamsObject = new URLSearchParams();\n const calendar_id = (this.nylasSchedulerConfigStore.state.selectedConfiguration as GroupConfiguration)?.group_booking?.calendar_id;\n if (calendar_id) {\n queryParamsObject.append('calendar_id', calendar_id);\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<ImportGroupEventResponse>>({\n method: 'POST',\n path: `scheduling/configurations/${configurationId}/import-group-events?${queryParamsObject.toString()}`,\n body: groupEventDetails,\n });\n\n if (error) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error importing group event: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n this.nylasSchedulerConfigStore.state.isLoading = false;\n return dataResponse(null, {\n message: 'Error importing group event: ' + response.error?.message,\n });\n }\n\n // Update the list of group events\n if (response.data?.imported_events?.length > 0) {\n await this.getGroupEvents(configurationId, this.nylasSchedulerConfigStore.state.selectedConfiguration as Configuration | GroupConfiguration);\n }\n\n this.nylasSchedulerConfigStore.state.isLoading = false;\n\n return dataResponse(response.data);\n }\n}\n","import { NylasApiRequest } from '@/common/nylas-api-request';\nimport { NylasSchedulerConfigStoreType } from '../../stores/scheduler-config-store';\nimport { debug } from '@/utils/utils';\nimport { NylasSchedulerConfigAPIConnector } from '../shared/api/scheduler-config';\n\ntype NylasSchedulerConfigConnectorOptions = {\n nylasSchedulerConfigStore: NylasSchedulerConfigStoreType;\n nylasApiRequest?: NylasApiRequest;\n};\n\nexport class NylasSchedulerConfigConnector {\n public nylasApiRequest?: NylasApiRequest;\n public nylasSchedulerConfigStore: NylasSchedulerConfigStoreType;\n\n private _schedulerConfigConnector: NylasSchedulerConfigAPIConnector | undefined;\n\n constructor({ nylasApiRequest, nylasSchedulerConfigStore }: NylasSchedulerConfigConnectorOptions) {\n this.nylasApiRequest = nylasApiRequest;\n this.nylasSchedulerConfigStore = nylasSchedulerConfigStore;\n }\n\n public init() {\n debug('NylasSchedulerConfigConnector init');\n }\n\n public get schedulerConfigStore() {\n return this.nylasSchedulerConfigStore;\n }\n\n public get schedulerConfig() {\n if (this._schedulerConfigConnector) {\n return this._schedulerConfigConnector;\n }\n\n this._schedulerConfigConnector = new NylasSchedulerConfigAPIConnector({\n nylasApiRequest: this.nylasApiRequest,\n nylasSchedulerConfigStore: this.nylasSchedulerConfigStore,\n });\n return this._schedulerConfigConnector;\n }\n\n public resetStores() {\n debug('NylasSchedulerConfigConnector resetStores');\n this.nylasSchedulerConfigStore.reset();\n }\n\n public async logout() {\n debug('NylasSchedulerConfigConnector logout');\n this.resetStores();\n }\n}\n\nexport type PublicMethods<T> = {\n [K in keyof T]: T[K] extends Function ? (string extends K ? never : K) : never;\n}[keyof T];\n\nexport type NylasSchedulerConfigConnectorPublicMethods = PublicMethods<NylasSchedulerConfigConnector>;\n","import { AdditionalParticipant, Calendar, Configuration, EventDetails, GroupConfiguration, GroupEventAPIData, EnableEventTypes, ThemeConfig } from '@nylas/core';\nimport { ObservableMap, createStore } from '@stencil/store';\nimport { User } from '../common/nylas-api-request';\nimport { CONFIGURATION_EVENT_TYPE, EXPERIMENTAL_FEATURES } from '@/common/constants';\n\ntype RecursivePartial<T> = {\n [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object | undefined ? RecursivePartial<T[P]> : T[P];\n};\n\nexport interface NylasSchedulerConfigStoreState {\n /**\n * The selected configuration.\n * This is the configuration that is currently selected, use it to populate default values for new configurations.\n */\n selectedConfiguration: RecursivePartial<Configuration> | RecursivePartial<GroupConfiguration>;\n /**\n * The list of configurations.\n * This is the list of configurations that the user has created.\n */\n configurations: Configuration[];\n /**\n * The list of calendars.\n * This is the list of calendars that the user has access to.\n */\n calendars: Calendar[];\n /**\n * The current user.\n * This is the user that is currently logged in.\n */\n currentUser: User | null;\n /**\n * The current action.\n * This is the current action that the user is performing.\n */\n action: 'create' | 'create-select' | 'edit' | null;\n /**\n * The additional participants.\n */\n additionalParticipants: AdditionalParticipant[];\n /**\n * The next cursor for list configurations.\n */\n listConfigurationsNextCursor: string | null;\n /**\n * The conference providers.\n */\n conferenceProviders?: Record<'microsoft' | 'zoom' | 'google', string>;\n /**\n * The flag to determine if the slug is required\n */\n requiresSlug: boolean;\n /**\n * The selected language.\n */\n selectedLanguage?: string;\n /**\n * The flag to show or hide the option to manage nylas branding in the email template.\n */\n nylasBranding?: boolean;\n /**\n * The experimental features.\n */\n experimentalFeatures?: Record<EXPERIMENTAL_FEATURES, boolean>;\n /**\n * Controls which event types are enabled in the Scheduler.\n *\n * - By default, all event types are enabled and users will see a selection screen when creating a new event.\n * - You can disable specific event types by setting them to `false`.\n * - At least one event type must remain enabled at all times.\n * - If only one event type is enabled, the event type selection screen will be skipped.\n */\n enableEventTypes?: EnableEventTypes;\n /**\n * The selected event type for creating a new configuration.\n */\n selectedEventType?: CONFIGURATION_EVENT_TYPE;\n /**\n * The group events of the selected configuration.\n */\n groupEvents: GroupEventAPIData[];\n /**\n * The selected group event being edited.\n */\n selectedGroupEvent?: GroupEventAPIData;\n /**\n * The url params with the date and time range for the current view in the scheduler editor calendar.\n */\n calendarViewDateRange?: {\n start_time: string;\n end_time: string;\n };\n /**\n * The list of master group events.\n */\n masterGroupEvents: Record<string, EventDetails>;\n /**\n * The flag to determine if the form is loading.\n */\n isLoading: boolean;\n /**\n * The theme config.\n */\n themeConfig?: ThemeConfig;\n}\n\nexport type NylasSchedulerConfigStoreType = ReturnType<typeof CreateNylasSchedulerConfigStore>;\n\nexport type CreateNylasSchedulerConfigStoreReturnType = ObservableMap<NylasSchedulerConfigStoreState> & {\n /**\n * Reset the selected configuration to the default state.\n * This is used to reset the selected configuration to the default state instead of setting it to an empty object.\n */\n resetSelectedConfiguration: () => void;\n};\n\nexport function CreateNylasSchedulerConfigStore(defaultState: Partial<NylasSchedulerConfigStoreState> = {}): CreateNylasSchedulerConfigStoreReturnType {\n const defaultSchedulerConfigState: NylasSchedulerConfigStoreState = {\n selectedConfiguration: {},\n configurations: [],\n groupEvents: [],\n listConfigurationsNextCursor: null,\n calendars: [],\n currentUser: null,\n action: null,\n additionalParticipants: [],\n requiresSlug: false,\n masterGroupEvents: {},\n isLoading: false,\n ...defaultState,\n };\n const store = createStore<NylasSchedulerConfigStoreState>(defaultSchedulerConfigState);\n\n /**\n * Reset the selected configuration to the default state.\n * This is used to reset the selected configuration to the default state instead of setting it to an empty object.\n */\n function resetSelectedConfiguration() {\n store.set('selectedConfiguration', { ...defaultState['selectedConfiguration'] });\n }\n\n store.onChange('action', async action => {\n if (!action) {\n resetSelectedConfiguration();\n }\n });\n\n return {\n ...store,\n resetSelectedConfiguration,\n };\n}\n","class LocalStorage {\n get(key) {\n return new Promise((res) => {\n const record = globalThis.window?.localStorage.getItem(key);\n if (!record) {\n res(null);\n }\n else {\n res(JSON.parse(record));\n }\n });\n }\n async remove(key) {\n globalThis.window?.localStorage.removeItem(key);\n return new Promise((res) => {\n res(null);\n });\n }\n set(key, value) {\n globalThis.window?.localStorage.setItem(key, JSON.stringify(value));\n return new Promise((res) => {\n res(null);\n });\n }\n}\nexport default LocalStorage;\n","import local from \"./localStorage\";\nconst PKCE_KEY = \"pkce\";\nconst GRANT_KEY = \"grant\";\nconst USER_KEY = \"user\";\n// Cross-runtime base64 helpers (browser and Node)\nconst toBase64 = (input) => {\n // Browser path: use TextEncoder + btoa\n if (typeof globalThis.btoa === \"function\" &&\n typeof TextEncoder !== \"undefined\") {\n const utf8Bytes = new TextEncoder().encode(input);\n let binary = \"\";\n for (let i = 0; i < utf8Bytes.length; i++) {\n binary += String.fromCharCode(utf8Bytes[i]);\n }\n return globalThis.btoa(binary);\n }\n // Node path: use global Buffer without importing\n if (typeof globalThis.Buffer !== \"undefined\") {\n return globalThis.Buffer.from(input, \"utf8\").toString(\"base64\");\n }\n throw new Error(\"Base64 encoding is not supported in this environment\");\n};\nconst fromBase64 = (input) => {\n // Browser path: use atob + TextDecoder\n if (typeof globalThis.atob === \"function\" &&\n typeof TextDecoder !== \"undefined\") {\n const binary = globalThis.atob(input);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return new TextDecoder().decode(bytes);\n }\n // Node path: use global Buffer without importing\n if (typeof globalThis.Buffer !== \"undefined\") {\n return globalThis.Buffer.from(input, \"base64\").toString(\"utf8\");\n }\n throw new Error(\"Base64 decoding is not supported in this environment\");\n};\nexport class Storage {\n Storage = new local();\n constructor(store) {\n if (store) {\n this.Storage = store;\n return;\n }\n }\n setPKCE(value) {\n const encoded = toBase64(value);\n this.Storage.set(PKCE_KEY, encoded);\n }\n async getPKCE() {\n try {\n const pkce = await this.Storage.get(PKCE_KEY);\n if (pkce) {\n return fromBase64(pkce);\n }\n }\n catch (error) {\n return null;\n }\n return null;\n }\n removePKCE() {\n this.Storage.remove(PKCE_KEY);\n }\n setGrant(resp, multiAccount = false) {\n const { grant_id } = resp;\n this.Storage.set(`${GRANT_KEY}${multiAccount ? \"-\" + grant_id : \"\"}`, resp);\n }\n removeGrant(id, multiAccount = false) {\n this.Storage.remove(`${GRANT_KEY}${multiAccount ? \"-\" + id : \"\"}`);\n }\n async getGrant(id, multiAccount = false) {\n const grant = await this.Storage.get(`${GRANT_KEY}${multiAccount ? \"-\" + id : \"\"}`);\n if (grant) {\n return grant;\n }\n return null;\n }\n // setUserToken is used to store the IDToken in storage\n async setUserToken(token) {\n const userTokens = await this.getUserTokens();\n // If userTokens exist, check if the token is already in the array\n if (userTokens) {\n const userToken = userTokens.find((t) => t.sub === token.sub);\n // If the token is not in the array, add it\n if (!userToken) {\n const newTokens = [...userTokens, token];\n this.Storage.set(USER_KEY, newTokens);\n }\n else {\n // If the token is in the array, update it\n const newUserTokens = userTokens.map((t) => {\n if (t.sub === token.sub) {\n t = token;\n }\n return t;\n });\n this.Storage.set(USER_KEY, newUserTokens);\n }\n }\n else {\n // If userTokens do not exist, create a new array with the token\n this.Storage.set(USER_KEY, [token]);\n }\n }\n // getUserToken is used to retrieve a specific IDToken from storage\n async getUserToken(id = \"\") {\n const tokens = await this.Storage.get(USER_KEY);\n if (tokens) {\n if (id === \"\") {\n // If no id is passed, return the first token\n return tokens[0];\n }\n // Find the token with the matching sub\n const userToken = tokens.find((token) => token.sub === id);\n return userToken;\n }\n return null;\n }\n // getUserTokens is used to retrieve all IDTokens from storage\n async getUserTokens() {\n const tokens = await this.Storage.get(USER_KEY);\n if (tokens) {\n return tokens;\n }\n return null;\n }\n // removeUserTokens is used to remove all IDTokens from storage\n removeUserTokens() {\n this.Storage.remove(USER_KEY);\n }\n // removeUserToken is used to remove a specific IDToken from storage\n async removeUserToken(id) {\n const userTokens = await this.getUserTokens();\n // Filter out the token with the matching sub\n const tokens = userTokens?.filter((token) => token.sub !== id);\n // If there are tokens left, store them\n this.Storage.set(USER_KEY, tokens);\n }\n async clearSession() {\n const tokens = await this.getUserTokens();\n tokens?.forEach((token) => {\n this.removeGrant(token.sub);\n });\n this.removePKCE();\n this.removeUserTokens();\n }\n}\n","class IndexedDBStorage {\n databaseName = \"identity-db\";\n storeName = \"identity\";\n get(key) {\n const self = this;\n return new Promise((resolve, reject) => {\n self.openDatabase().then(function (db) {\n const transaction = db.transaction(self.storeName, \"readwrite\");\n const objectStore = transaction.objectStore(self.storeName);\n const getRequest = objectStore.get(key);\n getRequest.onsuccess = () => {\n resolve(getRequest.result);\n };\n getRequest.onerror = () => {\n reject(getRequest.error);\n };\n transaction.oncomplete = () => {\n db.close();\n };\n });\n });\n }\n async remove(key) {\n const self = this;\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(this.databaseName);\n request.onupgradeneeded = function (event) {\n const db = event.target.result;\n db.createObjectStore(self.storeName);\n };\n request.onerror = () => {\n reject(request.error);\n };\n request.onsuccess = (event) => {\n const db = event.target.result;\n const transaction = db.transaction(this.storeName, \"readwrite\");\n const objectStore = transaction.objectStore(this.storeName);\n const deleteRequest = objectStore.delete(key);\n deleteRequest.onsuccess = () => {\n resolve(null);\n };\n deleteRequest.onerror = () => {\n reject(deleteRequest.error);\n };\n transaction.oncomplete = () => {\n db.close();\n };\n };\n });\n }\n set(key, value) {\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(this.databaseName);\n request.onerror = () => {\n reject(request.error);\n };\n request.onupgradeneeded = (event) => {\n const db = event.target.result;\n db.createObjectStore(this.storeName);\n };\n request.onsuccess = (event) => {\n const db = event.target.result;\n const transaction = db.transaction(this.storeName, \"readwrite\");\n const objectStore = transaction.objectStore(this.storeName);\n const setRequest = objectStore.put(value, key);\n setRequest.onsuccess = () => {\n resolve(value);\n };\n setRequest.onerror = () => {\n reject(setRequest.error);\n };\n transaction.oncomplete = () => {\n db.close();\n };\n };\n });\n }\n openDatabase() {\n const self = this;\n return new Promise(function (resolve, reject) {\n const request = indexedDB.open(self.databaseName, 2);\n request.onupgradeneeded = function (event) {\n const db = event.target.result;\n db.createObjectStore(self.storeName);\n };\n request.onsuccess = function (event) {\n resolve(event.target.result);\n };\n request.onerror = function (event) {\n reject(event.error);\n };\n });\n }\n}\nexport default IndexedDBStorage;\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || new Array(16);\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || rng)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || stringify(b);\n}\n\nexport default v1;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n var v;\n var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import stringify from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = [];\n\n for (var i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function (name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n var bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return stringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (var i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n\n for (var i = 0; i < length32; i += 8) {\n var x = input[i >> 5] >>> i % 32 & 0xff;\n var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (var i = 0; i < x.length; i += 16) {\n var olda = a;\n var oldb = b;\n var oldc = c;\n var oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n var length8 = input.length * 8;\n var output = new Uint32Array(getOutputLength(length8));\n\n for (var i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nexport default md5;","import v35 from './v35.js';\nimport md5 from './md5.js';\nvar v3 = v35('v3', 0x30, md5);\nexport default v3;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (var i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var _i = 0; _i < N; ++_i) {\n var arr = new Uint32Array(16);\n\n for (var j = 0; j < 16; ++j) {\n arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];\n }\n\n M[_i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var _i2 = 0; _i2 < N; ++_i2) {\n var W = new Uint32Array(80);\n\n for (var t = 0; t < 16; ++t) {\n W[t] = M[_i2][t];\n }\n\n for (var _t = 16; _t < 80; ++_t) {\n W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var _t2 = 0; _t2 < 80; ++_t2) {\n var s = Math.floor(_t2 / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nvar v5 = v35('v5', 0x50, sha1);\nexport default v5;","export default '00000000-0000-0000-0000-000000000000';","import validate from './validate.js';\n\nfunction version(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nexport default version;","export async function getBytes(stream, onChunk) {\r\n const reader = stream.getReader();\r\n let result;\r\n while (!(result = await reader.read()).done) {\r\n onChunk(result.value);\r\n }\r\n}\r\nexport function getLines(onLine) {\r\n let buffer;\r\n let position;\r\n let fieldLength;\r\n let discardTrailingNewline = false;\r\n return function onChunk(arr) {\r\n if (buffer === undefined) {\r\n buffer = arr;\r\n position = 0;\r\n fieldLength = -1;\r\n }\r\n else {\r\n buffer = concat(buffer, arr);\r\n }\r\n const bufLength = buffer.length;\r\n let lineStart = 0;\r\n while (position < bufLength) {\r\n if (discardTrailingNewline) {\r\n if (buffer[position] === 10) {\r\n lineStart = ++position;\r\n }\r\n discardTrailingNewline = false;\r\n }\r\n let lineEnd = -1;\r\n for (; position < bufLength && lineEnd === -1; ++position) {\r\n switch (buffer[position]) {\r\n case 58:\r\n if (fieldLength === -1) {\r\n fieldLength = position - lineStart;\r\n }\r\n break;\r\n case 13:\r\n discardTrailingNewline = true;\r\n case 10:\r\n lineEnd = position;\r\n break;\r\n }\r\n }\r\n if (lineEnd === -1) {\r\n break;\r\n }\r\n onLine(buffer.subarray(lineStart, lineEnd), fieldLength);\r\n lineStart = position;\r\n fieldLength = -1;\r\n }\r\n if (lineStart === bufLength) {\r\n buffer = undefined;\r\n }\r\n else if (lineStart !== 0) {\r\n buffer = buffer.subarray(lineStart);\r\n position -= lineStart;\r\n }\r\n };\r\n}\r\nexport function getMessages(onId, onRetry, onMessage) {\r\n let message = newMessage();\r\n const decoder = new TextDecoder();\r\n return function onLine(line, fieldLength) {\r\n if (line.length === 0) {\r\n onMessage === null || onMessage === void 0 ? void 0 : onMessage(message);\r\n message = newMessage();\r\n }\r\n else if (fieldLength > 0) {\r\n const field = decoder.decode(line.subarray(0, fieldLength));\r\n const valueOffset = fieldLength + (line[fieldLength + 1] === 32 ? 2 : 1);\r\n const value = decoder.decode(line.subarray(valueOffset));\r\n switch (field) {\r\n case 'data':\r\n message.data = message.data\r\n ? message.data + '\\n' + value\r\n : value;\r\n break;\r\n case 'event':\r\n message.event = value;\r\n break;\r\n case 'id':\r\n onId(message.id = value);\r\n break;\r\n case 'retry':\r\n const retry = parseInt(value, 10);\r\n if (!isNaN(retry)) {\r\n onRetry(message.retry = retry);\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n}\r\nfunction concat(a, b) {\r\n const res = new Uint8Array(a.length + b.length);\r\n res.set(a);\r\n res.set(b, a.length);\r\n return res;\r\n}\r\nfunction newMessage() {\r\n return {\r\n data: '',\r\n event: '',\r\n id: '',\r\n retry: undefined,\r\n };\r\n}\r\n//# sourceMappingURL=parse.js.map","var __rest = (this && this.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n};\r\nimport { getBytes, getLines, getMessages } from './parse';\r\nexport const EventStreamContentType = 'text/event-stream';\r\nconst DefaultRetryInterval = 1000;\r\nconst LastEventId = 'last-event-id';\r\nexport function fetchEventSource(input, _a) {\r\n var { signal: inputSignal, headers: inputHeaders, onopen: inputOnOpen, onmessage, onclose, onerror, openWhenHidden, fetch: inputFetch } = _a, rest = __rest(_a, [\"signal\", \"headers\", \"onopen\", \"onmessage\", \"onclose\", \"onerror\", \"openWhenHidden\", \"fetch\"]);\r\n return new Promise((resolve, reject) => {\r\n const headers = Object.assign({}, inputHeaders);\r\n if (!headers.accept) {\r\n headers.accept = EventStreamContentType;\r\n }\r\n let curRequestController;\r\n function onVisibilityChange() {\r\n curRequestController.abort();\r\n if (!document.hidden) {\r\n create();\r\n }\r\n }\r\n if (!openWhenHidden) {\r\n document.addEventListener('visibilitychange', onVisibilityChange);\r\n }\r\n let retryInterval = DefaultRetryInterval;\r\n let retryTimer = 0;\r\n function dispose() {\r\n document.removeEventListener('visibilitychange', onVisibilityChange);\r\n window.clearTimeout(retryTimer);\r\n curRequestController.abort();\r\n }\r\n inputSignal === null || inputSignal === void 0 ? void 0 : inputSignal.addEventListener('abort', () => {\r\n dispose();\r\n resolve();\r\n });\r\n const fetch = inputFetch !== null && inputFetch !== void 0 ? inputFetch : window.fetch;\r\n const onopen = inputOnOpen !== null && inputOnOpen !== void 0 ? inputOnOpen : defaultOnOpen;\r\n async function create() {\r\n var _a;\r\n curRequestController = new AbortController();\r\n try {\r\n const response = await fetch(input, Object.assign(Object.assign({}, rest), { headers, signal: curRequestController.signal }));\r\n await onopen(response);\r\n await getBytes(response.body, getLines(getMessages(id => {\r\n if (id) {\r\n headers[LastEventId] = id;\r\n }\r\n else {\r\n delete headers[LastEventId];\r\n }\r\n }, retry => {\r\n retryInterval = retry;\r\n }, onmessage)));\r\n onclose === null || onclose === void 0 ? void 0 : onclose();\r\n dispose();\r\n resolve();\r\n }\r\n catch (err) {\r\n if (!curRequestController.signal.aborted) {\r\n try {\r\n const interval = (_a = onerror === null || onerror === void 0 ? void 0 : onerror(err)) !== null && _a !== void 0 ? _a : retryInterval;\r\n window.clearTimeout(retryTimer);\r\n retryTimer = window.setTimeout(create, interval);\r\n }\r\n catch (innerErr) {\r\n dispose();\r\n reject(innerErr);\r\n }\r\n }\r\n }\r\n }\r\n create();\r\n });\r\n}\r\nfunction defaultOnOpen(response) {\r\n const contentType = response.headers.get('content-type');\r\n if (!(contentType === null || contentType === void 0 ? void 0 : contentType.startsWith(EventStreamContentType))) {\r\n throw new Error(`Expected content-type to be ${EventStreamContentType}, Actual: ${contentType}`);\r\n }\r\n}\r\n//# sourceMappingURL=fetch.js.map","export function Base64EncodeUrl(str) {\n return str.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n}\nexport function Base64DecodeUrl(str) {\n str = (str + \"===\").slice(0, str.length + (str.length % 4));\n return str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n}\nexport function getTimestamp() {\n return Math.floor(Date.now() / 1000);\n}\nexport async function sha256(message) {\n // encode as UTF-8\n const msgBuffer = new TextEncoder().encode(message);\n // hash the message\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", msgBuffer);\n // convert ArrayBuffer to Array\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n // convert bytes to hex string\n const hashHex = hashArray\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n return hashHex;\n}\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","import { Storage } from \"./client/store\";\nimport IndexedDBStorage from \"./client/indexedDB\";\nimport { v4 as uuid } from \"uuid\";\nimport { fetchEventSource, } from \"@microsoft/fetch-event-source\";\nimport { Base64EncodeUrl, getTimestamp, sha256 } from \"./helpers\";\nimport jwtDecode from \"jwt-decode\";\nexport class NylasSessions {\n clientId;\n redirectUri;\n accessType = \"online\";\n domain = \"http://api.nylas.com\";\n versioned = false;\n Storage;\n hosted = false;\n multiAccount = false;\n loginId = \"\";\n constructor(config) {\n this.clientId = config.clientId;\n this.redirectUri = config.redirectUri;\n if (config.domain) {\n this.domain = config.domain;\n const versionedPart = this.domain.substring(this.domain.length - 3);\n if (versionedPart.includes(\"/v\")) {\n this.versioned = true;\n }\n }\n if (config.multiAccount) {\n this.multiAccount = config.multiAccount;\n }\n if (config.sw) {\n const storage = new IndexedDBStorage();\n this.Storage = new Storage(storage);\n }\n else {\n this.Storage = new Storage();\n }\n if (config.accessType) {\n this.accessType = config.accessType;\n }\n if (config.loginId) {\n this.loginId = config.loginId;\n }\n if (config.hosted) {\n this.hosted = config.hosted;\n }\n if (config.disableInitCodeExchange !== true) {\n this.codeExchange(null);\n }\n // check();\n // registerServiceWorker();\n }\n // Validates access token\n async validateAccessToken(grant_id = \"\") {\n const grant = await this.Storage.getGrant(grant_id, this.multiAccount);\n if (!grant) {\n return false;\n }\n const { access_token } = grant;\n try {\n const response = await fetch(`${this.domain}/connect/tokeninfo?access_token=${access_token}`, {\n method: \"GET\",\n });\n const responseData = await response.json();\n if (!responseData.data) {\n return false;\n }\n return true;\n }\n catch (error) {\n return false;\n }\n }\n // Validates id token\n async validateIDToken(grant_id = \"\") {\n const grant = await this.Storage.getGrant(grant_id, this.multiAccount);\n if (!grant) {\n return false;\n }\n const { id_token } = grant;\n try {\n const response = await fetch(`${this.domain}/connect/tokeninfo?id_token=${id_token}`, {\n method: \"GET\",\n });\n if (response.status !== 200) {\n return false;\n }\n const responseData = await response.json();\n if (!responseData.data) {\n return false;\n }\n return true;\n }\n catch (error) {\n return false;\n }\n }\n // Gets domain of UAS\n getDomain() {\n return this.domain;\n }\n // Gets auth link\n async auth(config) {\n if (this.hosted &&\n (this.domain === globalThis.window?.location.origin ||\n (this.versioned &&\n this.domain.includes(globalThis.window?.location.origin)))) {\n await this.hostedSetCodeChallenge();\n }\n const url = await this.generateAuthURL(config);\n if (config.popup) {\n this.popUp(url);\n return;\n }\n return url;\n }\n // Generates auth URL\n async generateAuthURL(config) {\n const codeChallenge = await this.getCodeChallege();\n let url = `${this.domain}/connect/auth?client_id=${this.clientId}&redirect_uri=${this.redirectUri}&access_type=${this.accessType}&response_type=code`;\n if (codeChallenge) {\n url += `&code_challenge=${codeChallenge}&code_challenge_method=S256&options=rotate_refresh_token`;\n }\n if (config.provider) {\n url += `&provider=${config.provider}`;\n }\n if (config.loginHint) {\n url += `&login_hint=${config.loginHint}`;\n if (config.includeGrantScopes) {\n url += `&include_grant_scopes=${config.includeGrantScopes}`;\n }\n }\n if (config.scope) {\n url += `&scope=${config.scope.join(\" \")}`;\n }\n if (config.prompt) {\n url += `&prompt=${config.prompt}`;\n }\n if (config.metadata) {\n url += `&metadata=${config.metadata}`;\n }\n if (config.state || this.loginId) {\n url += `&state=${this.loginId ? this.loginId : config.state}`;\n }\n return url;\n }\n // Generates auth URL\n async generateReauthURL(grant_id, scopes) {\n if (!grant_id) {\n throw new Error(\"Grant ID is required\");\n }\n const userToken = await this.Storage.getUserToken(grant_id);\n const codeChallenge = await this.getCodeChallege();\n let url = `${this.domain}/connect/auth?client_id=${this.clientId}&redirect_uri=${this.redirectUri}&access_type=${this.accessType}&response_type=code`;\n if (codeChallenge) {\n url += `&code_challenge=${codeChallenge}&code_challenge_method=S256&options=rotate_refresh_token`;\n }\n if (userToken?.provider) {\n url += `&provider=${userToken.provider}`;\n }\n if (userToken?.email) {\n url += `&login_hint=${userToken.email}`;\n }\n if (scopes) {\n url += `&scope=${scopes.join(\" \")}`;\n }\n return url;\n }\n // Generates UUID code challenge\n async generateCodeChallenge() {\n const code_verifier = await this.Storage.getPKCE();\n if (code_verifier) {\n return;\n }\n const codeChallenge = uuid();\n this.Storage.setPKCE(codeChallenge);\n return;\n }\n // Gets code challenge from URL query params\n async hostedSetCodeChallenge() {\n if (!this.hosted) {\n throw console.error(\"Method only used with hosted flag enabled\");\n }\n const params = new URLSearchParams(globalThis.window?.location.search);\n const codeChallenge = params.get(\"code_challenge\");\n if (!codeChallenge) {\n const code_verifier = await this.Storage.getPKCE();\n if (code_verifier) {\n return;\n }\n console.warn(\"Code challenge is recomended\");\n return;\n }\n this.Storage.setPKCE(codeChallenge);\n }\n // Gets code challenge from store\n async getCodeChallege() {\n if (this.hosted &&\n (this.domain === globalThis.window?.location.origin ||\n (this.versioned &&\n this.domain.includes(globalThis.window?.location.origin)))) {\n const params = new URLSearchParams(globalThis.window?.location.search);\n const codeChallenge = params.get(\"code_challenge\");\n if (!codeChallenge) {\n console.warn(\"Code challenge is recomended\");\n return \"\";\n }\n return codeChallenge;\n }\n const code_verifier = await this.Storage.getPKCE();\n if (code_verifier) {\n const codeChallengeHashed = await sha256(code_verifier);\n let codeChallengeEncrypted = btoa(unescape(encodeURIComponent(codeChallengeHashed)));\n codeChallengeEncrypted = Base64EncodeUrl(codeChallengeEncrypted);\n return codeChallengeEncrypted;\n }\n return \"\";\n }\n // checks if user is logged in\n async isLoggedIn() {\n // if hosted identity isLoggedIn always returns false\n if (this.hosted &&\n (this.domain === globalThis.window?.location.origin ||\n (this.versioned &&\n this.domain.includes(globalThis.window?.location.origin)))) {\n return false;\n }\n const tokens = await this.Storage.getUserTokens();\n if (tokens && tokens.length > 0) {\n if (this.multiAccount) {\n await this.generateCodeChallenge();\n }\n return true;\n }\n await this.generateCodeChallenge();\n return false;\n }\n // Checks if user is multi account\n isMultiAccount() {\n return this.multiAccount;\n }\n // Logs user out\n async logout() {\n const profile = await this.getProfile();\n await this.Storage.clearSession();\n const payload = { detail: profile };\n window.dispatchEvent(new CustomEvent(\"onLogoutSuccess\", payload));\n }\n // Gets profile info from ID token\n async getProfile(grant_id = \"\") {\n let tok;\n if (grant_id) {\n tok = await this.Storage.getUserToken(grant_id);\n }\n else {\n tok = await this.Storage.getUserToken();\n }\n if (tok) {\n return tok;\n }\n return null;\n }\n // Gets profile info from ID tokens\n async getProfiles() {\n const tok = await this.Storage.getUserTokens();\n if (tok) {\n return tok;\n }\n return null;\n }\n // Remove a specific profile\n async removeProfile(id) {\n await this.Storage.removeUserToken(id);\n await this.Storage.removeGrant(id);\n return null;\n }\n // IMAP authentication\n async authIMAP(data) {\n const code_challenge = await this.getCodeChallege();\n const payload = {\n imap_username: data.imap_username,\n imap_password: data.imap_password,\n imap_host: data.imap_host,\n imap_port: data.imap_port,\n type: data.type,\n smtp_host: data.smtp_host,\n smtp_port: data.smtp_port,\n provider: data.provider,\n redirect_uri: this.redirectUri,\n state: data.state,\n public_application_id: this.clientId,\n access_type: this.accessType,\n };\n if (this.loginId) {\n payload.id = this.loginId;\n }\n if (data.smtp_username && data.smtp_password) {\n payload.smtp_username = data.smtp_username;\n payload.smtp_password = data.smtp_password;\n }\n if (code_challenge != \"\") {\n payload.code_challenge = code_challenge;\n payload.code_challenge_method = \"S256\";\n }\n const response = await fetch(`${this.domain}/connect/login/imap`, {\n method: \"POST\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n body: JSON.stringify(payload),\n });\n const responseData = await response.json();\n return responseData;\n }\n // EWS authentication\n async authEWS(data) {\n const code_challenge = await this.getCodeChallege();\n const payload = {\n ...data,\n provider: \"ews\",\n redirect_uri: this.redirectUri,\n public_application_id: this.clientId,\n access_type: this.accessType,\n };\n if (this.loginId) {\n payload.id = this.loginId;\n }\n if (code_challenge != \"\") {\n payload.code_challenge = code_challenge;\n payload.code_challenge_method = \"S256\";\n }\n const response = await fetch(`${this.domain}/connect/login/ews`, {\n method: \"POST\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n body: JSON.stringify(payload),\n });\n const responseData = await response.json();\n return responseData;\n }\n // Detects email\n async detectEmail(email) {\n const response = await fetch(`${this.versioned ? this.domain : this.domain + \"/connect\"}/providers/detect?client_id=${this.clientId}&email=${email}`, {\n method: \"POST\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n });\n const responseData = await response.json();\n return responseData;\n }\n // Gets app info from UAS\n async applicationInfo() {\n const response = await fetch(`${this.versioned ? this.domain : this.domain + \"/connect\"}/applications?client_id=${this.clientId}`, {\n method: \"GET\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n });\n const responseData = await response.json();\n return responseData.data;\n }\n // Gets providers form UAS\n async getAvailableProviders() {\n const response = await fetch(`${this.domain}/connect/providers/find?client_id=${this.clientId}`, {\n method: \"GET\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n });\n if (response) {\n const responseData = await response.json();\n const providers = responseData.data;\n return providers;\n }\n return null;\n }\n // EVENT HOOKS\n onLoginSuccess(callback) {\n window.addEventListener(\"onLoginSuccess\", (e) => callback(e));\n }\n onLogoutSuccess(callback) {\n window.addEventListener(\"onLogoutSuccess\", (e) => callback(e));\n }\n onLoginFail(callback) {\n window.addEventListener(\"onLoginFail\", (e) => callback(e));\n }\n onTokenRefreshSuccess(callback) {\n window.addEventListener(\"onTokenRefreshSuccess\", (e) => callback(e));\n }\n onTokenRefreshFail(callback) {\n window.addEventListener(\"onTokenRefreshFail\", (e) => callback(e));\n }\n onSessionExpired(callback) {\n window.addEventListener(\"onSessionExpired\", (e) => callback(e));\n }\n // Exchanges code for ID token and refresh and access tokens\n async codeExchange(search) {\n let params = new URLSearchParams(globalThis.window?.location.search);\n if (search) {\n params = new URLSearchParams(search);\n }\n const code = params.get(\"code\");\n const state = params.get(\"state\");\n const error = params.get(\"error\");\n const error_description = params.get(\"error_description\");\n const error_code = params.get(\"error_code\");\n if (error && error_description && error_code) {\n const payload = {\n detail: { error, error_description, error_code },\n };\n window.dispatchEvent(new CustomEvent(\"onLoginFail\", payload));\n window.history.pushState({}, document.title, globalThis.window?.location.pathname);\n return false;\n }\n if (!code) {\n console.warn(\"No code found\");\n return false;\n }\n // If popup window stop internal code exchange\n if (window.opener && window.name === \"uas-popup\") {\n console.warn(\"Popup window detected\");\n return false;\n }\n // Get PKCE code_challenge from local storage\n const code_verifier = await this.Storage.getPKCE();\n if (!code_verifier) {\n console.warn(\"No code verifier found\");\n return false;\n }\n // Prepare request\n try {\n const payload = {\n client_id: this.clientId,\n redirect_uri: this.redirectUri,\n code: code,\n grant_type: \"authorization_code\",\n code_verifier: code_verifier,\n };\n const response = await fetch(`${this.domain}/connect/token`, {\n method: \"POST\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n body: JSON.stringify(payload),\n });\n const responseData = await response.json();\n // Parse response\n // Store ID token\n if (responseData) {\n if (responseData.error) {\n const payload = { detail: responseData };\n window.dispatchEvent(new CustomEvent(\"onLoginFail\", payload));\n return true;\n }\n const exchangeResponse = await this.handleCodeExchangeResponse(responseData);\n if (!exchangeResponse.valid) {\n const payload = { detail: exchangeResponse.data };\n window.dispatchEvent(new CustomEvent(\"onLoginFail\", payload));\n return true;\n }\n else {\n if (state) {\n exchangeResponse.data.state = state;\n }\n const payload = { detail: exchangeResponse.data };\n window.dispatchEvent(new CustomEvent(\"onLoginSuccess\", payload));\n window.history.pushState({}, document.title, window.location.pathname);\n }\n }\n this.Storage.removePKCE();\n return true;\n // Remove PKCE code_challenge from local storage\n }\n catch (error) {\n const payload = { detail: error };\n window.dispatchEvent(new CustomEvent(\"onLoginFail\", payload));\n window.history.pushState({}, document.title, globalThis.window?.location.pathname);\n return false;\n }\n }\n // Token Exchange for session maintenece\n async tokenExchange(grant_id = \"\") {\n const grant = await this.Storage.getGrant(grant_id, this.multiAccount);\n if (!grant) {\n return false;\n }\n const refresh_token = grant.refresh_token;\n try {\n const payload = {\n client_id: this.clientId,\n redirect_uri: this.redirectUri,\n refresh_token,\n grant_type: \"refresh_token\",\n };\n const response = await fetch(`${this.domain}/connect/token`, {\n method: \"POST\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n body: JSON.stringify(payload),\n });\n const responseData = await response.json();\n // Parse response\n // Store ID token\n if (responseData) {\n if (responseData.error) {\n const payload = { detail: responseData };\n window.dispatchEvent(new CustomEvent(\"onTokenRefreshFail\", payload));\n return true;\n }\n const now = getTimestamp();\n responseData.expires_in = now + responseData.expires_in;\n this.Storage.setGrant(responseData, this.multiAccount);\n const isValidToken = await this.validateIDToken(grant_id);\n if (!isValidToken) {\n const payload = { detail: responseData };\n window.dispatchEvent(new CustomEvent(\"onTokenRefreshFail\", payload));\n return true;\n }\n const payload = { detail: responseData };\n window.dispatchEvent(new CustomEvent(\"onTokenRefreshSuccess\", payload));\n return true;\n }\n // Remove PKCE code_challenge from local storage\n this.Storage.removePKCE();\n }\n catch (error) {\n const payload = { detail: error };\n window.dispatchEvent(new CustomEvent(\"onTokenRefreshFail\", payload));\n return false;\n }\n }\n // Handles the response of code exchange\n async handleCodeExchangeResponse(responseData) {\n const isValid = true;\n if (responseData.error) {\n return {\n data: responseData,\n valid: false,\n };\n }\n const now = getTimestamp();\n responseData.expires_in = now + responseData.expires_in;\n this.Storage.setGrant(responseData, this.multiAccount);\n const user = jwtDecode(responseData.id_token);\n user.status = \"authenticated\";\n this.Storage.setUserToken(user);\n const isValidToken = await this.validateIDToken(user.sub);\n if (!isValidToken) {\n return {\n data: responseData,\n valid: false,\n };\n }\n return {\n data: responseData,\n valid: isValid,\n };\n }\n // Regulates POPUP behaivior\n async popUp(url) {\n const width = 500;\n const height = 600;\n const left = window.screenX + (window.outerWidth - width) / 2;\n const top = window.screenY + (window.outerHeight - height) / 2.5;\n const title = `uas-popup`;\n const popupURL = url;\n const externalPopup = window.open(popupURL, title, `width=${width},height=${height},left=${left},top=${top}`);\n if (!externalPopup) {\n return;\n }\n const timer = setInterval(async () => {\n if (externalPopup.closed) {\n const payload = {\n detail: { error_description: \"OAuth provider window closed\" },\n };\n window.dispatchEvent(new CustomEvent(\"onLoginFail\", payload));\n timer && clearInterval(timer);\n return;\n }\n try {\n const currentUrl = externalPopup.location.href.split(\"?\");\n if (!currentUrl[0]) {\n return;\n }\n const search = externalPopup.location.search;\n externalPopup.history.pushState({}, document.title, window.location.pathname);\n if (currentUrl[0] === this.redirectUri && currentUrl.length > 1) {\n const success = await this.codeExchange(search);\n externalPopup.close();\n if (success) {\n location.reload();\n }\n timer && clearInterval(timer);\n return;\n }\n }\n catch (error) {\n return;\n }\n }, 1000);\n }\n // Returns access token\n async getAccessToken(grant_id = \"\") {\n const now = getTimestamp();\n const grantResponse = await this.Storage.getGrant(grant_id, this.multiAccount);\n if (!grantResponse) {\n return null;\n }\n const { access_token, expires_in } = grantResponse;\n const token = access_token;\n if (token) {\n if (expires_in && expires_in > getTimestamp()) {\n const timeLeft = expires_in - now;\n // If more then 30 secounds remain return access token\n if (timeLeft > 30) {\n return token;\n }\n }\n }\n await this.tokenExchange(grant_id);\n const grant = await this.Storage.getGrant(grant_id, this.multiAccount);\n return grant.access_token;\n }\n async sse(url, request) {\n const headers = request.headers || {};\n const grant_id = headers[\"Grant-ID\"];\n let token = \"\";\n if (this.multiAccount) {\n if (!grant_id) {\n this.logout();\n throw new Error(\"Grant ID is required for multi account calls\");\n }\n token = await this.getAccessToken(grant_id);\n }\n else {\n token = await this.getAccessToken();\n }\n delete headers[\"Grant-ID\"];\n headers[\"Authorization\"] = `Bearer ${token}`;\n if (!headers[\"content-type\"]) {\n headers[\"content-type\"] = \"application/json\";\n }\n return fetchEventSource(`${this.domain}/${url}`, {\n ...request,\n headers,\n });\n }\n // Used to call Nylas API endpoints\n async fetch(url, request, parseJSON = true, domain) {\n let token = \"\";\n let profileCount = 1;\n if (this.multiAccount) {\n if (!request.grant_id) {\n this.logout();\n throw new Error(\"Grant ID is required for multi account calls\");\n }\n const profiles = await this.getProfiles();\n profileCount = profiles ? profiles.length : 1;\n token = await this.getAccessToken(request.grant_id);\n }\n else {\n token = await this.getAccessToken();\n }\n if (!token) {\n throw new Error(\"Access token not found\");\n }\n let headers = request.headers;\n if (!Headers.prototype.isPrototypeOf(headers)) {\n headers = new Headers({\n Authorization: `Bearer ${token}`,\n \"content-type\": \"application/json\",\n });\n }\n else {\n headers.append(\"Authorization\", `Bearer ${token}`);\n if (!headers.has(\"content-type\")) {\n headers.append(\"content-type\", \"application/json\");\n }\n }\n try {\n if (request?.body) {\n request.body = JSON.stringify(request?.body);\n }\n const response = await fetch(`${domain || this.domain}/${url}`, {\n ...request,\n headers,\n });\n if (!parseJSON) {\n return response;\n }\n const responseData = await response?.json();\n const isAuthenticated = await this.isAuthenticatedResponse(response.status, responseData);\n if (!isAuthenticated) {\n if (profileCount > 1) {\n const user = await this.getProfile(request.grant_id);\n if (user) {\n user.status = \"unauthorized\";\n await this.Storage.setUserToken(user);\n const payload = {\n detail: { user },\n };\n window.dispatchEvent(new CustomEvent(\"onSessionExpired\", payload));\n }\n }\n else {\n const user = await this.Storage.getUserToken();\n const payload = {\n detail: { user },\n };\n window.dispatchEvent(new CustomEvent(\"onSessionExpired\", payload));\n }\n this.logout();\n return;\n }\n return responseData;\n }\n catch (e) {\n throw e;\n }\n }\n async fetchRequest(path, method, body, parseJSON = true, domain, request) {\n const isLoggedIn = await this.isLoggedIn();\n const url = new URL(path, domain ?? this.domain);\n const headers = new Headers();\n headers.append(\"Accept\", \"application/json\");\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"User-Agent\", \"nylas-identity\");\n if (isLoggedIn) {\n const accessToken = await this.getAccessToken();\n headers.append(\"Authorization\", `Bearer ${accessToken}`);\n }\n const response = await fetch(url.toString(), {\n method: method || \"GET\",\n headers,\n mode: \"cors\",\n referrer: globalThis.window?.location.origin,\n body: body ? JSON.stringify(body) : undefined,\n ...(request || {}),\n });\n // If we don't want to parse the response as JSON, return the raw response\n if (!parseJSON) {\n return response.body;\n }\n const json = await response.json();\n return json;\n }\n // Checks if the response is not 401\n async isAuthenticatedResponse(status, responseData) {\n if (status == 401 &&\n responseData?.error?.type == \"token.unauthorized_access\") {\n return false;\n }\n return true;\n }\n addAPIKey(grant_id, email, key) {\n this.Storage.setUserToken({\n aud: \"https://api-staging.us.nylas.com/\",\n exp: 2000000000,\n email_verified: true,\n iat: getTimestamp(),\n iss: \"\",\n email,\n provider: \"virtual-calendar\",\n status: \"authenticated\",\n name: email,\n sub: grant_id,\n });\n this.Storage.setGrant({\n grant_id,\n access_token: key,\n expires_in: 2000000000,\n }, this.multiAccount);\n }\n}\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n\n 'use strict';\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n var ReactVersion = '18.2.0';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\n/**\n * Keeps track of the current dispatcher.\n */\nvar ReactCurrentDispatcher = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\n/**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\nvar ReactCurrentBatchConfig = {\n transition: null\n};\n\nvar ReactCurrentActQueue = {\n current: null,\n // Used to reproduce behavior of `batchedUpdates` in legacy mode.\n isBatchingLegacy: false,\n didScheduleLegacyUpdate: false\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\nvar ReactDebugCurrentFrame = {};\nvar currentExtraStackFrame = null;\nfunction setExtraStackFrame(stack) {\n {\n currentExtraStackFrame = stack;\n }\n}\n\n{\n ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {\n {\n currentExtraStackFrame = stack;\n }\n }; // Stack implementation injected by the current renderer.\n\n\n ReactDebugCurrentFrame.getCurrentStack = null;\n\n ReactDebugCurrentFrame.getStackAddendum = function () {\n var stack = ''; // Add an extra top frame while an element is being validated\n\n if (currentExtraStackFrame) {\n stack += currentExtraStackFrame;\n } // Delegate to the injected renderer-specific implementation\n\n\n var impl = ReactDebugCurrentFrame.getCurrentStack;\n\n if (impl) {\n stack += impl() || '';\n }\n\n return stack;\n };\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher,\n ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n ReactCurrentOwner: ReactCurrentOwner\n};\n\n{\n ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;\n ReactSharedInternals.ReactCurrentActQueue = ReactCurrentActQueue;\n}\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\n {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n printWarning('warn', format, args);\n }\n }\n}\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n var warningKey = componentName + \".\" + callerName;\n\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n\n error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n}\n/**\n * This is the abstract API for an update queue.\n */\n\n\nvar ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance, callback, callerName) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nvar assign = Object.assign;\n\nvar emptyObject = {};\n\n{\n Object.freeze(emptyObject);\n}\n/**\n * Base class helpers for the updating state of a component.\n */\n\n\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n // renderer.\n\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n\nComponent.prototype.setState = function (partialState, callback) {\n if (typeof partialState !== 'object' && typeof partialState !== 'function' && partialState != null) {\n throw new Error('setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.');\n }\n\n this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n\n\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n\n\n{\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n\n var defineDeprecationWarning = function (methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n\n return undefined;\n }\n });\n };\n\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n/**\n * Convenience component with default shallow equality check for sCU.\n */\n\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n var refObject = {\n current: null\n };\n\n {\n Object.seal(refObject);\n }\n\n return refObject;\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\n\nfunction createElement(type, config, children) {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n\n {\n warnIfStringRefCannotBeAutoConverted(config);\n }\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n\n props.children = childArray;\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n {\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n}\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\n\nfunction cloneElement(element, config, children) {\n if (element === null || element === undefined) {\n throw new Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\");\n }\n\n var propName; // Original props are copied\n\n var props = assign({}, element.props); // Reserved names are extracted\n\n var key = element.key;\n var ref = element.ref; // Self is preserved since the owner is preserved.\n\n var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n\n var source = element._source; // Owner will be preserved, unless ref is overridden\n\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n } // Remaining properties override existing props\n\n\n var defaultProps;\n\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = key.replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n return '$' + escapedString;\n}\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\n\nvar didWarnAboutMaps = false;\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction escapeUserProvidedKey(text) {\n return text.replace(userProvidedKeyEscapeRegex, '$&/');\n}\n/**\n * Generate a key string that identifies a element within a set.\n *\n * @param {*} element A element that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\n\n\nfunction getElementKey(element, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof element === 'object' && element !== null && element.key != null) {\n // Explicit key\n {\n checkKeyStringCoercion(element.key);\n }\n\n return escape('' + element.key);\n } // Implicit key determined by the index in the set\n\n\n return index.toString(36);\n}\n\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n var invokeCallback = false;\n\n if (children === null) {\n invokeCallback = true;\n } else {\n switch (type) {\n case 'string':\n case 'number':\n invokeCallback = true;\n break;\n\n case 'object':\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n\n }\n }\n\n if (invokeCallback) {\n var _child = children;\n var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows:\n\n var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n\n if (isArray(mappedChild)) {\n var escapedChildKey = '';\n\n if (childKey != null) {\n escapedChildKey = escapeUserProvidedKey(childKey) + '/';\n }\n\n mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n {\n // The `if` statement here prevents auto-disabling of the safe\n // coercion ESLint rule, so we must manually disable it below.\n // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n if (mappedChild.key && (!_child || _child.key !== mappedChild.key)) {\n checkKeyStringCoercion(mappedChild.key);\n }\n }\n\n mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n escapedPrefix + ( // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n mappedChild.key && (!_child || _child.key !== mappedChild.key) ? // $FlowFixMe Flow incorrectly thinks existing element's key can be a number\n // eslint-disable-next-line react-internal/safe-string-coercion\n escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);\n }\n\n array.push(mappedChild);\n }\n\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getElementKey(child, i);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n var iterableChildren = children;\n\n {\n // Warn about using Maps as children\n if (iteratorFn === iterableChildren.entries) {\n if (!didWarnAboutMaps) {\n warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n }\n\n didWarnAboutMaps = true;\n }\n }\n\n var iterator = iteratorFn.call(iterableChildren);\n var step;\n var ii = 0;\n\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getElementKey(child, ii++);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else if (type === 'object') {\n // eslint-disable-next-line react-internal/safe-string-coercion\n var childrenString = String(children);\n throw new Error(\"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \"). \" + 'If you meant to render a collection of children, use an array ' + 'instead.');\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n\n var result = [];\n var count = 0;\n mapIntoArray(children, result, '', '', function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\n\n\nfunction countChildren(children) {\n var n = 0;\n mapChildren(children, function () {\n n++; // Don't return anything\n });\n return n;\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n mapChildren(children, function () {\n forEachFunc.apply(this, arguments); // Don't return anything.\n }, forEachContext);\n}\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\n\n\nfunction toArray(children) {\n return mapChildren(children, function (child) {\n return child;\n }) || [];\n}\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\n\n\nfunction onlyChild(children) {\n if (!isValidElement(children)) {\n throw new Error('React.Children.only expected to receive a single React element child.');\n }\n\n return children;\n}\n\nfunction createContext(defaultValue) {\n // TODO: Second argument used to be an optional `calculateChangedBits`\n // function. Warn to reserve for future use?\n var context = {\n $$typeof: REACT_CONTEXT_TYPE,\n // As a workaround to support multiple concurrent renderers, we categorize\n // some renderers as primary and others as secondary. We only expect\n // there to be two concurrent renderers at most: React Native (primary) and\n // Fabric (secondary); React DOM (primary) and React ART (secondary).\n // Secondary renderers store their context values on separate fields.\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n // Used to track how many concurrent renderers this context currently\n // supports within in a single renderer. Such as parallel server rendering.\n _threadCount: 0,\n // These are circular\n Provider: null,\n Consumer: null,\n // Add these to use same hidden class in VM as ServerContext\n _defaultValue: null,\n _globalName: null\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n var hasWarnedAboutUsingNestedContextConsumers = false;\n var hasWarnedAboutUsingConsumerProvider = false;\n var hasWarnedAboutDisplayNameOnConsumer = false;\n\n {\n // A separate object, but proxies back to the original context object for\n // backwards compatibility. It has a different $$typeof, so we can properly\n // warn for the incorrect usage of Context as a Consumer.\n var Consumer = {\n $$typeof: REACT_CONTEXT_TYPE,\n _context: context\n }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n Object.defineProperties(Consumer, {\n Provider: {\n get: function () {\n if (!hasWarnedAboutUsingConsumerProvider) {\n hasWarnedAboutUsingConsumerProvider = true;\n\n error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n }\n\n return context.Provider;\n },\n set: function (_Provider) {\n context.Provider = _Provider;\n }\n },\n _currentValue: {\n get: function () {\n return context._currentValue;\n },\n set: function (_currentValue) {\n context._currentValue = _currentValue;\n }\n },\n _currentValue2: {\n get: function () {\n return context._currentValue2;\n },\n set: function (_currentValue2) {\n context._currentValue2 = _currentValue2;\n }\n },\n _threadCount: {\n get: function () {\n return context._threadCount;\n },\n set: function (_threadCount) {\n context._threadCount = _threadCount;\n }\n },\n Consumer: {\n get: function () {\n if (!hasWarnedAboutUsingNestedContextConsumers) {\n hasWarnedAboutUsingNestedContextConsumers = true;\n\n error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n\n return context.Consumer;\n }\n },\n displayName: {\n get: function () {\n return context.displayName;\n },\n set: function (displayName) {\n if (!hasWarnedAboutDisplayNameOnConsumer) {\n warn('Setting `displayName` on Context.Consumer has no effect. ' + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n\n hasWarnedAboutDisplayNameOnConsumer = true;\n }\n }\n }\n }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n context.Consumer = Consumer;\n }\n\n {\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n }\n\n return context;\n}\n\nvar Uninitialized = -1;\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\n\nfunction lazyInitializer(payload) {\n if (payload._status === Uninitialized) {\n var ctor = payload._result;\n var thenable = ctor(); // Transition to the next state.\n // This might throw either because it's missing or throws. If so, we treat it\n // as still uninitialized and try again next time. Which is the same as what\n // happens if the ctor or any wrappers processing the ctor throws. This might\n // end up fixing it if the resolution was a concurrency bug.\n\n thenable.then(function (moduleObject) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n // Transition to the next state.\n var resolved = payload;\n resolved._status = Resolved;\n resolved._result = moduleObject;\n }\n }, function (error) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n // Transition to the next state.\n var rejected = payload;\n rejected._status = Rejected;\n rejected._result = error;\n }\n });\n\n if (payload._status === Uninitialized) {\n // In case, we're still uninitialized, then we're waiting for the thenable\n // to resolve. Set it as pending in the meantime.\n var pending = payload;\n pending._status = Pending;\n pending._result = thenable;\n }\n }\n\n if (payload._status === Resolved) {\n var moduleObject = payload._result;\n\n {\n if (moduleObject === undefined) {\n error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\\n\\n\" + 'Did you accidentally put curly braces around the import?', moduleObject);\n }\n }\n\n {\n if (!('default' in moduleObject)) {\n error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\", moduleObject);\n }\n }\n\n return moduleObject.default;\n } else {\n throw payload._result;\n }\n}\n\nfunction lazy(ctor) {\n var payload = {\n // We use these fields to store the result.\n _status: Uninitialized,\n _result: ctor\n };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: payload,\n _init: lazyInitializer\n };\n\n {\n // In production, this would just set it on the object.\n var defaultProps;\n var propTypes; // $FlowFixMe\n\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function () {\n return defaultProps;\n },\n set: function (newDefaultProps) {\n error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n defaultProps = newDefaultProps; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'defaultProps', {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function () {\n return propTypes;\n },\n set: function (newPropTypes) {\n error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n propTypes = newPropTypes; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'propTypes', {\n enumerable: true\n });\n }\n }\n });\n }\n\n return lazyType;\n}\n\nfunction forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n } else if (typeof render !== 'function') {\n error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n } else {\n if (render.length !== 0 && render.length !== 2) {\n error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n }\n }\n\n if (render != null) {\n if (render.defaultProps != null || render.propTypes != null) {\n error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n }\n }\n }\n\n var elementType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name; // The inner component shouldn't inherit this display name in most cases,\n // because the component may be used elsewhere.\n // But it's nice for anonymous functions to inherit the name,\n // so that our component-stack generation logic will display their frames.\n // An anonymous function generally suggests a pattern like:\n // React.forwardRef((props, ref) => {...});\n // This kind of inner function is not used elsewhere so the side effect is okay.\n\n if (!render.name && !render.displayName) {\n render.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n }\n }\n\n var elementType = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name; // The inner component shouldn't inherit this display name in most cases,\n // because the component may be used elsewhere.\n // But it's nice for anonymous functions to inherit the name,\n // so that our component-stack generation logic will display their frames.\n // An anonymous function generally suggests a pattern like:\n // React.memo((props) => {...});\n // This kind of inner function is not used elsewhere so the side effect is okay.\n\n if (!type.name && !type.displayName) {\n type.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\nfunction resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher.current;\n\n {\n if (dispatcher === null) {\n error('Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for' + ' one of the following reasons:\\n' + '1. You might have mismatching versions of React and the renderer (such as React DOM)\\n' + '2. You might be breaking the Rules of Hooks\\n' + '3. You might have more than one copy of React in the same app\\n' + 'See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.');\n }\n } // Will result in a null access error if accessed outside render phase. We\n // intentionally don't throw our own error because this is in a hot path.\n // Also helps ensure this is inlined.\n\n\n return dispatcher;\n}\nfunction useContext(Context) {\n var dispatcher = resolveDispatcher();\n\n {\n // TODO: add a more generic warning for invalid values.\n if (Context._context !== undefined) {\n var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n // and nobody should be using this in existing code.\n\n if (realContext.Consumer === Context) {\n error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n } else if (realContext.Provider === Context) {\n error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n }\n }\n }\n\n return dispatcher.useContext(Context);\n}\nfunction useState(initialState) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useState(initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useReducer(reducer, initialArg, init);\n}\nfunction useRef(initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useRef(initialValue);\n}\nfunction useEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useEffect(create, deps);\n}\nfunction useInsertionEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useInsertionEffect(create, deps);\n}\nfunction useLayoutEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useLayoutEffect(create, deps);\n}\nfunction useCallback(callback, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, deps);\n}\nfunction useMemo(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, deps);\n}\nfunction useImperativeHandle(ref, create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useImperativeHandle(ref, create, deps);\n}\nfunction useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n}\nfunction useTransition() {\n var dispatcher = resolveDispatcher();\n return dispatcher.useTransition();\n}\nfunction useDeferredValue(value) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDeferredValue(value);\n}\nfunction useId() {\n var dispatcher = resolveDispatcher();\n return dispatcher.useId();\n}\nfunction useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher$1.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher$1.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n setExtraStackFrame(stack);\n } else {\n setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n\n return '';\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n {\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\nfunction createElementWithValidation(type, props, children) {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n {\n error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n }\n\n var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n}\nvar didWarnAboutDeprecatedCreateFactory = false;\nfunction createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n validatedFactory.type = type;\n\n {\n if (!didWarnAboutDeprecatedCreateFactory) {\n didWarnAboutDeprecatedCreateFactory = true;\n\n warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n } // Legacy hook: remove it\n\n\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n\n return validatedFactory;\n}\nfunction cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement.apply(this, arguments);\n\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n\n validatePropTypes(newElement);\n return newElement;\n}\n\nfunction startTransition(scope, options) {\n var prevTransition = ReactCurrentBatchConfig.transition;\n ReactCurrentBatchConfig.transition = {};\n var currentTransition = ReactCurrentBatchConfig.transition;\n\n {\n ReactCurrentBatchConfig.transition._updatedFibers = new Set();\n }\n\n try {\n scope();\n } finally {\n ReactCurrentBatchConfig.transition = prevTransition;\n\n {\n if (prevTransition === null && currentTransition._updatedFibers) {\n var updatedFibersCount = currentTransition._updatedFibers.size;\n\n if (updatedFibersCount > 10) {\n warn('Detected a large number of updates inside startTransition. ' + 'If this is due to a subscription please re-write it to use React provided hooks. ' + 'Otherwise concurrent mode guarantees are off the table.');\n }\n\n currentTransition._updatedFibers.clear();\n }\n }\n }\n}\n\nvar didWarnAboutMessageChannel = false;\nvar enqueueTaskImpl = null;\nfunction enqueueTask(task) {\n if (enqueueTaskImpl === null) {\n try {\n // read require off the module object to get around the bundlers.\n // we don't want them to detect a require and bundle a Node polyfill.\n var requireString = ('require' + Math.random()).slice(0, 7);\n var nodeRequire = module && module[requireString]; // assuming we're in node, let's try to get node's\n // version of setImmediate, bypassing fake timers if any.\n\n enqueueTaskImpl = nodeRequire.call(module, 'timers').setImmediate;\n } catch (_err) {\n // we're in a browser\n // we can't use regular timers because they may still be faked\n // so we try MessageChannel+postMessage instead\n enqueueTaskImpl = function (callback) {\n {\n if (didWarnAboutMessageChannel === false) {\n didWarnAboutMessageChannel = true;\n\n if (typeof MessageChannel === 'undefined') {\n error('This browser does not have a MessageChannel implementation, ' + 'so enqueuing tasks via await act(async () => ...) will fail. ' + 'Please file an issue at https://github.com/facebook/react/issues ' + 'if you encounter this warning.');\n }\n }\n }\n\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(undefined);\n };\n }\n }\n\n return enqueueTaskImpl(task);\n}\n\nvar actScopeDepth = 0;\nvar didWarnNoAwaitAct = false;\nfunction act(callback) {\n {\n // `act` calls can be nested, so we track the depth. This represents the\n // number of `act` scopes on the stack.\n var prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n\n if (ReactCurrentActQueue.current === null) {\n // This is the outermost `act` scope. Initialize the queue. The reconciler\n // will detect the queue and use it instead of Scheduler.\n ReactCurrentActQueue.current = [];\n }\n\n var prevIsBatchingLegacy = ReactCurrentActQueue.isBatchingLegacy;\n var result;\n\n try {\n // Used to reproduce behavior of `batchedUpdates` in legacy mode. Only\n // set to `true` while the given callback is executed, not for updates\n // triggered during an async event, because this is how the legacy\n // implementation of `act` behaved.\n ReactCurrentActQueue.isBatchingLegacy = true;\n result = callback(); // Replicate behavior of original `act` implementation in legacy mode,\n // which flushed updates immediately after the scope function exits, even\n // if it's an async function.\n\n if (!prevIsBatchingLegacy && ReactCurrentActQueue.didScheduleLegacyUpdate) {\n var queue = ReactCurrentActQueue.current;\n\n if (queue !== null) {\n ReactCurrentActQueue.didScheduleLegacyUpdate = false;\n flushActQueue(queue);\n }\n }\n } catch (error) {\n popActScope(prevActScopeDepth);\n throw error;\n } finally {\n ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy;\n }\n\n if (result !== null && typeof result === 'object' && typeof result.then === 'function') {\n var thenableResult = result; // The callback is an async function (i.e. returned a promise). Wait\n // for it to resolve before exiting the current scope.\n\n var wasAwaited = false;\n var thenable = {\n then: function (resolve, reject) {\n wasAwaited = true;\n thenableResult.then(function (returnValue) {\n popActScope(prevActScopeDepth);\n\n if (actScopeDepth === 0) {\n // We've exited the outermost act scope. Recursively flush the\n // queue until there's no remaining work.\n recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n } else {\n resolve(returnValue);\n }\n }, function (error) {\n // The callback threw an error.\n popActScope(prevActScopeDepth);\n reject(error);\n });\n }\n };\n\n {\n if (!didWarnNoAwaitAct && typeof Promise !== 'undefined') {\n // eslint-disable-next-line no-undef\n Promise.resolve().then(function () {}).then(function () {\n if (!wasAwaited) {\n didWarnNoAwaitAct = true;\n\n error('You called act(async () => ...) without await. ' + 'This could lead to unexpected testing behaviour, ' + 'interleaving multiple act calls and mixing their ' + 'scopes. ' + 'You should - await act(async () => ...);');\n }\n });\n }\n }\n\n return thenable;\n } else {\n var returnValue = result; // The callback is not an async function. Exit the current scope\n // immediately, without awaiting.\n\n popActScope(prevActScopeDepth);\n\n if (actScopeDepth === 0) {\n // Exiting the outermost act scope. Flush the queue.\n var _queue = ReactCurrentActQueue.current;\n\n if (_queue !== null) {\n flushActQueue(_queue);\n ReactCurrentActQueue.current = null;\n } // Return a thenable. If the user awaits it, we'll flush again in\n // case additional work was scheduled by a microtask.\n\n\n var _thenable = {\n then: function (resolve, reject) {\n // Confirm we haven't re-entered another `act` scope, in case\n // the user does something weird like await the thenable\n // multiple times.\n if (ReactCurrentActQueue.current === null) {\n // Recursively flush the queue until there's no remaining work.\n ReactCurrentActQueue.current = [];\n recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n } else {\n resolve(returnValue);\n }\n }\n };\n return _thenable;\n } else {\n // Since we're inside a nested `act` scope, the returned thenable\n // immediately resolves. The outer scope will flush the queue.\n var _thenable2 = {\n then: function (resolve, reject) {\n resolve(returnValue);\n }\n };\n return _thenable2;\n }\n }\n }\n}\n\nfunction popActScope(prevActScopeDepth) {\n {\n if (prevActScopeDepth !== actScopeDepth - 1) {\n error('You seem to have overlapping act() calls, this is not supported. ' + 'Be sure to await previous act() calls before making a new one. ');\n }\n\n actScopeDepth = prevActScopeDepth;\n }\n}\n\nfunction recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n {\n var queue = ReactCurrentActQueue.current;\n\n if (queue !== null) {\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n if (queue.length === 0) {\n // No additional work was scheduled. Finish.\n ReactCurrentActQueue.current = null;\n resolve(returnValue);\n } else {\n // Keep flushing work until there's none left.\n recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n }\n });\n } catch (error) {\n reject(error);\n }\n } else {\n resolve(returnValue);\n }\n }\n}\n\nvar isFlushing = false;\n\nfunction flushActQueue(queue) {\n {\n if (!isFlushing) {\n // Prevent re-entrance.\n isFlushing = true;\n var i = 0;\n\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n\n do {\n callback = callback(true);\n } while (callback !== null);\n }\n\n queue.length = 0;\n } catch (error) {\n // If something throws, leave the remaining callbacks on the queue.\n queue = queue.slice(i + 1);\n throw error;\n } finally {\n isFlushing = false;\n }\n }\n }\n}\n\nvar createElement$1 = createElementWithValidation ;\nvar cloneElement$1 = cloneElementWithValidation ;\nvar createFactory = createFactoryWithValidation ;\nvar Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n};\n\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\nexports.cloneElement = cloneElement$1;\nexports.createContext = createContext;\nexports.createElement = createElement$1;\nexports.createFactory = createFactory;\nexports.createRef = createRef;\nexports.forwardRef = forwardRef;\nexports.isValidElement = isValidElement;\nexports.lazy = lazy;\nexports.memo = memo;\nexports.startTransition = startTransition;\nexports.unstable_act = act;\nexports.useCallback = useCallback;\nexports.useContext = useContext;\nexports.useDebugValue = useDebugValue;\nexports.useDeferredValue = useDeferredValue;\nexports.useEffect = useEffect;\nexports.useId = useId;\nexports.useImperativeHandle = useImperativeHandle;\nexports.useInsertionEffect = useInsertionEffect;\nexports.useLayoutEffect = useLayoutEffect;\nexports.useMemo = useMemo;\nexports.useReducer = useReducer;\nexports.useRef = useRef;\nexports.useState = useState;\nexports.useSyncExternalStore = useSyncExternalStore;\nexports.useTransition = useTransition;\nexports.version = ReactVersion;\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n}\n \n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import { useState, useEffect } from \"react\";\nexport function useNylasSessions(identity) {\n const [isLoggedIn, setIsLoggedIn] = useState(false);\n useEffect(() => {\n const cb = async () => {\n const is = await identity.isLoggedIn();\n if (is) {\n setIsLoggedIn(true);\n }\n else {\n setIsLoggedIn(false);\n }\n };\n cb();\n identity.onLoginSuccess(() => {\n setIsLoggedIn(true);\n });\n identity.onLogoutSuccess(() => {\n setIsLoggedIn(false);\n });\n });\n return {\n isLoggedIn,\n };\n}\n","import { h } from '@stencil/core';\n\nexport type LoginRequiredProps = {\n authenticationUrl: (provider?: string) => Promise<string>;\n};\n\nexport const LoginRequired = ({ authenticationUrl }: LoginRequiredProps) => (\n <div class={'login-required'} part=\"nse__login-required login-component\">\n <div class={'card'} part=\"nse__login-required-card\">\n <p part=\"nse__login-required-text\">Log into your account to use the Scheduler Editor.</p>\n\n <button\n class=\"google-button\"\n part=\"nse__login-required-google-button\"\n onClick={async event => {\n event.preventDefault();\n const authUrl = await authenticationUrl('google');\n if (authUrl) {\n window.location.href = authUrl;\n } else {\n console.error(`[nylas-scheduler-editor] Unable to get authentication URL.`);\n }\n }}\n >\n <span class=\"icon\">\n <google-logo-icon width=\"15\" height=\"15\" />\n </span>\n Continue with Google\n </button>\n\n <button\n class=\"microsoft-button\"\n part=\"nse__login-required-microsoft-button\"\n onClick={async event => {\n event.preventDefault();\n const authUrl = await authenticationUrl('microsoft');\n if (authUrl) {\n window.location.href = authUrl;\n } else {\n console.error(`[nylas-scheduler-editor] Unable to get authentication URL.`);\n }\n }}\n >\n <span class=\"icon\">\n <microsoft-logo-icon width=\"15\" height=\"15\" />\n </span>\n Continue with Microsoft\n </button>\n\n <button\n class=\"other-provider-button\"\n part=\"nse__login-required-other-provider-button\"\n onClick={async event => {\n event.preventDefault();\n const authUrl = await authenticationUrl();\n if (authUrl) {\n window.location.href = authUrl;\n } else {\n console.error(`[nylas-scheduler-editor] Unable to get authentication URL.`);\n }\n }}\n >\n View all providers <chevron-icon width=\"17\" height=\"17\" />\n </button>\n\n <small class=\"disclaimer-text\" part=\"nse__login-required-disclaimer-text\">\n * You will be redirected to authenticate your account.\n </small>\n </div>\n </div>\n);\n","import { Fragment, h } from '@stencil/core';\nimport { Configuration } from '@nylas/core';\nimport { CONFIGURATION_EVENT_TYPE } from '@/common/constants';\n\ntype RecursivePartial<T> = {\n [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object | undefined ? RecursivePartial<T[P]> : T[P];\n};\n\n/**\n * The props for the Express Flow component.\n */\nexport type ExpressFlowProps = {\n currentUser: any;\n calendars: any[];\n selectedConfiguration: RecursivePartial<Configuration>;\n selectedEventType: CONFIGURATION_EVENT_TYPE;\n};\n\n/**\n * The Express Flow component.\n */\nexport default function ExpressFlow({ currentUser, calendars, selectedEventType }: ExpressFlowProps) {\n const defaultCalendarOption = calendars?.find(c => c.is_primary) || calendars?.[0];\n switch (selectedEventType) {\n case CONFIGURATION_EVENT_TYPE.one_on_one:\n case CONFIGURATION_EVENT_TYPE.max_availability:\n case CONFIGURATION_EVENT_TYPE.max_fairness: {\n return (\n <Fragment>\n <nylas-event-info>\n <div slot=\"inputs\">\n <nylas-event-title />\n <nylas-event-duration />\n <nylas-event-location userProvider={currentUser.provider} />\n </div>\n </nylas-event-info>\n <nylas-booking-calendar-picker\n exportparts=\"nbcp, nbcp__header, nbcp__dropdown, nbcp__dropdown-button, nbcp__dropdown-content\"\n expressFlow={true}\n calendars={calendars}\n currentUser={currentUser}\n defaultBookingCalendar={defaultCalendarOption?.id}\n />\n <nylas-custom-event-slug name=\"custom-event-slug\" exportparts=\"nces, nces__body, nces__header, nces__drawer-toggle--container, nces__input-textfield\" />\n </Fragment>\n );\n }\n case CONFIGURATION_EVENT_TYPE.collective: {\n return (\n <Fragment>\n <nylas-event-info>\n <div slot=\"inputs\">\n <nylas-event-title />\n <nylas-event-duration />\n <nylas-event-location userProvider={currentUser.provider} />\n </div>\n </nylas-event-info>\n <nylas-booking-calendar-picker\n exportparts=\"nbcp, nbcp__header, nbcp__dropdown, nbcp__dropdown-button, nbcp__dropdown-content\"\n expressFlow={true}\n calendars={calendars}\n currentUser={currentUser}\n defaultBookingCalendar={defaultCalendarOption?.id}\n />\n <nylas-custom-event-slug name=\"custom-event-slug\" exportparts=\"nces, nces__body, nces__header, nces__drawer-toggle--container, nces__input-textfield\" />\n <nylas-additional-participants\n name=\"participants\"\n eventParticipants={[{ name: currentUser?.name || currentUser?.email, email: 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 </Fragment>\n );\n }\n case CONFIGURATION_EVENT_TYPE.group: {\n return (\n <Fragment>\n <nylas-event-info>\n <div slot=\"inputs\">\n <nylas-event-title noTemplates={true} />\n <nylas-event-description noTemplates={true} hideAutoPopulateButton={true} />\n <nylas-event-location userProvider={currentUser.provider} />\n <nylas-event-timeslot name=\"event-timeslot\" />\n <nylas-event-capacity />\n </div>\n </nylas-event-info>\n <nylas-booking-calendar-picker\n exportparts=\"nbcp, nbcp__header, nbcp__dropdown, nbcp__dropdown-button, nbcp__dropdown-content\"\n expressFlow={true}\n calendars={calendars}\n currentUser={currentUser}\n defaultBookingCalendar={defaultCalendarOption?.id}\n />\n <nylas-additional-participants\n name=\"participants\"\n eventParticipants={[{ name: currentUser?.name || currentUser?.email, email: 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 <nylas-page-name requirePageName={true} pageName=\"Group events page\" />\n <nylas-custom-event-slug name=\"custom-event-slug\" exportparts=\"nces, nces__body, nces__header, nces__drawer-toggle--container, nces__input-textfield\" />\n </Fragment>\n );\n }\n }\n}\n","@use '../../../common/styles/variables' as *;\n@use '../../../common/mixins/buttons' as *;\n\n:host {\n display: flex;\n flex-direction: column;\n overflow: visible;\n border-radius: var(--nylas-border-radius-2x);\n width: fit-content;\n background: var(--nylas-base-0);\n position: relative;\n box-shadow: 0px 0px 6px -2px rgba(0, 0, 0, 0.05),\n 0px 5px 15px -3px rgba(0, 0, 0, 0.1);\n @include default-css-variables;\n\n nylas-notification {\n position: absolute;\n top: 0;\n right: 0;\n }\n\n @media #{$mobile} {\n width: -moz-available;\n /* WebKit-based browsers will ignore this. */\n width: -webkit-fill-available;\n /* Mozilla-based browsers will ignore this. */\n width: fill-available;\n min-width: 325px;\n }\n}\n\ndiv.scheduler-editor-content {\n height: 800px;\n @media #{$mobile} {\n height: auto;\n }\n slot[name=\"login-required\"] {\n height: inherit;\n }\n}\n\ndiv.scheduler-editor-content--group {\n height: 800px;\n\n @media #{$mobile} {\n height: auto;\n }\n}\n\ndiv.scheduler-editor-header {\n display: grid;\n grid-template-columns: 1fr auto auto;\n align-items: center;\n justify-content: space-between;\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-base-200);\n color: var(--nylas-base-900);\n min-width: 924px;\n\n @media #{$mobile} {\n width: auto;\n min-width: calc(325px - 1rem);\n }\n\n h1.scheduler-editor-title {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin: 0;\n font-size: 18px;\n line-height: 24px;\n font-weight: 600;\n }\n\n button {\n @include invisible-button;\n color: var(--nylas-base-900);\n }\n\n div.language {\n select-dropdown::part(sd_dropdown-button) {\n border: none;\n padding: 4px;\n margin-right: 8px;\n\n &:hover {\n outline: none;\n color: var(--nylas-primary);\n }\n }\n\n select-dropdown::part(sd_dropdown-content) {\n min-width: 132px;\n }\n\n @media #{$mobile} {\n select-dropdown::part(sd_dropdown-content) {\n width: -webkit-fill-available;\n width: fill-available;\n width: -moz-available;\n }\n }\n }\n}\n\nnylas-select-event-type {\n height: inherit;\n width: calc(924px + 2rem); // 1rem padding on each side\n\n @media #{$mobile} {\n width: auto;\n }\n}\n\nnylas-editor-tabs,\nnylas-editor-tabs-group {\n width: auto;\n height: inherit;\n\n .row {\n display: flex;\n gap: 1rem;\n }\n\n .composable {\n height: inherit;\n overflow: auto;\n }\n\n nylas-event-info,\n nylas-event-limits {\n div[slot='inputs'] {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n }\n }\n}\n\n.card {\n display: flex;\n flex-direction: column;\n padding: 2rem;\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n border-radius: 5px;\n color: var(--nylas-base-900);\n max-width: fit-content;\n\n align-self: center;\n}\n\n.login-required {\n height: inherit;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 2rem 1rem;\n background-color: var(--nylas-base-25);\n border-radius: var(--nylas-border-radius-2x);\n\n p {\n margin: 0 0 1rem;\n }\n\n .microsoft-button,\n .google-button {\n @include button;\n display: flex;\n margin-bottom: 1rem;\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n border-radius: 5px;\n justify-content: center;\n gap: 0.5rem;\n align-items: center;\n color: var(--nylas-base-900);\n\n &:hover {\n background-color: var(--nylas-base-25);\n }\n }\n\n .other-provider-button {\n @include button;\n display: flex;\n border: 0;\n background-color: var(--nylas-base-0);\n height: 48px;\n margin-bottom: 1rem;\n font-size: 0.95rem;\n justify-content: center;\n gap: 0.25rem;\n align-items: center;\n color: var(--nylas-base-900);\n\n svg {\n transform: rotate(180deg);\n }\n\n &:hover {\n background-color: var(--nylas-base-25);\n }\n }\n\n .disclaimer-text {\n font-size: 0.75rem;\n color: var(--nylas-base-600);\n align-self: center;\n }\n\n @media #{$mobile} {\n height: auto;\n }\n}\n\n.list-configurations {\n padding: 2rem;\n height: inherit;\n background: var(--nylas-base-25);\n border-radius: var(--nylas-border-radius-2x);\n\n nylas-list-configurations {\n height: inherit;\n display: flex;\n flex-direction: column;\n }\n\n @media #{$mobile} {\n height: auto;\n padding: 2rem 1rem;\n }\n}","import { NylasBaseProvider } from '@/common/abstract-provider';\nimport type { SchedulerEditorEventOverride } from '@/common/component-types';\nimport { AuthArgs, NylasIdentityRequestWrapper, User, type NylasApiRequest } from '@/common/nylas-api-request';\nimport { RegisteredComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { CreateNylasSchedulerConfigStore, NylasSchedulerConfigStoreState, NylasSchedulerConfigStoreType } from '@/stores/scheduler-config-store';\nimport { debug } from '@/utils/utils';\nimport { Config, NylasSessions } from '@nylas/identity';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { LoginRequired } from './LoginRequired';\nimport ExpressFlow from './ExpressFlow';\nimport { AdditionalParticipant, GroupConfiguration, EnableEventTypes, ThemeConfig } from '@nylas/core';\nimport { Tab } from '../nylas-editor-tabs/tab-contents';\nimport i18next from '@/utils/i18n';\nimport { CONFIGURATION_EVENT_TYPE, EXPERIMENTAL_FEATURES, LANGUAGE_CODE, LANGUAGE_MAP, Locale } from '@/common/constants';\n\n/**\n * The `nylas-scheduler-editor` component is a form that allows users to configure the settings for the Nylas Scheduler.\n *\n * @slot login-required - This slot is used to display a message when the user is not logged in.\n * @slot custom-page-style-inputs - This slot is used in \"app\" mode to pass a custom page style form to the nylas-page-styling component.\n *\n * @part nse__header - The header of the scheduler editor.\n * @part nse__title - The title of the scheduler editor.\n * @part nse__close-button - The close button of the scheduler editor. Use this part to hide the close button.\n * @part nse__content - The content of the scheduler editor. Use this part to adjust the height of the editor.\n * @part nse__list-configurations - The list of configurations. Use this part to adjust the height of the list.\n * @part nse__login-required - The login required component.\n * @part nse__login-required-card - The card of the login required component.\n * @part nse__login-required-text - The text of the login required component.\n * @part nse__login-required-google-button - The Google button of the login required component.\n * @part nse__login-required-microsoft-button - The Microsoft button of the login required component.\n * @part nse__login-required-other-provider-button - The other provider button of the login required component.\n * @part nse__login-required-disclaimer-text - The icon of the login required component.\n */\n@Component({\n tag: 'nylas-scheduler-editor',\n styleUrl: 'nylas-scheduler-editor.scss',\n shadow: true,\n})\nexport class NylasSchedulerEditor {\n /**\n * Stores to be used by the provider.\n */\n private stores?: {\n schedulerConfig: NylasSchedulerConfigStoreType;\n };\n\n /**\n * This is a base provide that defines the common methods and properties\n * that all providers should have.\n *\n * Because stencil does not support abstract classes, we have to use a\n * property to store the base provider instance.\n */\n private baseProvider?: NylasBaseProvider<Exclude<typeof this.stores, undefined>>;\n\n /**\n * The Nylas Scheduler Config Connector instance.\n * The brains of the provider. It manages data fetching and state synchronization.\n */\n private nylasSchedulerConfigConnector?: NylasSchedulerConfigConnector;\n\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasSchedulerEditorElement;\n\n /***\n * The configuration id to use for the scheduler editor.\n * If provided, then the scheduler editor will try and fetch the configuration\n * with the provided id. If found, it will automatically load the editor\n * with the configuration settings for editing.\n */\n @Prop({ mutable: true }) configurationId?: string;\n\n /**\n * The Nylas Api Request instance.\n * Used to make requests to the Nylas API.\n */\n @Prop({ mutable: true }) nylasApiRequest?: NylasApiRequest;\n\n /**\n * The Nylas Sessions configuration.\n * Used to configure the Nylas Sessions instance.\n */\n @Prop() nylasSessionsConfig?: Config;\n\n /**\n * The default authentication arguments to use when authenticating a user.\n */\n @Prop() defaultAuthArgs?: AuthArgs[];\n\n /**\n * This provides a way to override the default event handlers.\n */\n @Prop() eventOverrides: SchedulerEditorEventOverride = {};\n\n /**\n * The scheduler preview link used when the user clicks the preview button.\n * If `requiresSlug` is true, you can use the placeholder `{slug}` to insert the slug in the link for Nylas hosted scheduling pages.\n * Additionally, you can use the placeholder `{config.id}` to insert the configuration ID anywhere in the link.\n * For example: `https://book.nylas.com/us/<YOUR_NYLAS_APP_CLIENT_ID>/{slug}`.\n * `us` denotes the region. Replace it with the appropriate region of your application.\n * Replace `<YOUR_NYLAS_APP_CLIENT_ID>` with your Nylas app client ID.\n * Note: Nylas hosted scheduling pages are only available for public configurations.\n */\n @Prop({ attribute: 'scheduler-preview-link' }) schedulerPreviewLink: string = '';\n\n /**\n * The default scheduler config store state.\n * Used to set the initial state of the scheduler config store.\n * This state can be used to pass defaults to newly created configurations.\n */\n @Prop({ attribute: 'default-scheduler-config-store-state' }) readonly defaultSchedulerConfigState?: Partial<NylasSchedulerConfigStoreState>;\n\n /**\n * This is used to set the mode for the scheduler config.\n * The mode can be 'app' or 'composable'.\n * The default mode is 'app'.\n */\n @Prop({ attribute: 'mode' }) readonly mode: 'app' | 'composable' = 'app';\n\n /**\n * This prop is used to populate the additional participants and\n * their availability in the scheduler editor.\n */\n @Prop({ attribute: 'additional-participants' }) additionalParticipants?: AdditionalParticipant[];\n\n /**\n * This optional prop is used to hide tabs in the editor. Available tabs are:\n * eventInfo, availability, participants, bookingOptions, bookingForm\n */\n @Prop({ attribute: 'hide-editor-tabs' }) hideEditorTabs?: Tab[] = [];\n\n /**\n * This prop will be used to populate the conference provider options in the editor.\n * The key is the provider name ('zoom') and the value is the grant id.\n * We currently support same provider ('google', 'microsoft') for all participants and 'zoom' for cross-provider conferencing.\n */\n @Prop({ attribute: 'conference-providers' }) conferenceProviders?: Record<string, string>;\n\n /**\n * Indicates if a slug is required for the configuration.\n * When set to true, the user must enter a slug when creating or editing a configuration.\n * The slug is used for hosted pages. If using Nylas hosted scheduling pages, the `schedulerPreviewLink` prop can be set to redirect to a public configuration as follows:\n * `https://book.nylas.com/us/<YOUR_NYLAS_APP_CLIENT_ID>/{slug}`.\n * `us` denotes the region. Replace it with the appropriate region of your application.\n * Replace `<YOUR_NYLAS_APP_CLIENT_ID>` with your Nylas app client ID. The `{slug}` placeholder is replaced with the appropriate slug when the scheduler preview button is clicked.\n * Note: Nylas hosted scheduling pages are only available for public configurations.\n */\n @Prop({ attribute: 'requires-slug' }) requiresSlug: boolean = false;\n\n /**\n * Indicates if the user feedback feature is enabled.\n * By default, this is set to true. When enabled, the user feedback\n * feature will be available in the edit mode.\n * To disable the user feedback feature, set this prop to false.\n */\n @Prop() readonly enableUserFeedback?: boolean = true;\n\n /**\n * This prop will allow to set a default language for the Nylas scheduling page.\n */\n @Prop() readonly defaultLanguage?: LANGUAGE_CODE;\n\n /**\n * This prop will allow to override the default localization strings for each language.\n * Nylas scheduling page currently support the following language codes: en, es, fr, de, sv, zh, ja, nl.\n */\n @Prop() readonly localization?: Partial<Record<LANGUAGE_CODE, Locale>>;\n\n /**\n * This prop will allow to show / hide the option to manage nylas branding in the email template.\n * By default, this is set to true. When enabled, the option to show/hide nylas branding will be shown in the email template.\n * To disable the option to show/hide nylas branding, set this prop to false.\n */\n @Prop() readonly nylasBranding?: boolean = true;\n\n /**\n * This prop is to opt in to experimental features.\n * Ex: { 'group_events': true }\n */\n @Prop() readonly experimentalFeatures?: Record<EXPERIMENTAL_FEATURES, boolean>;\n\n /**\n * Controls which event types are enabled in the Scheduler.\n *\n * - By default, all event types are enabled and users will see a selection screen when creating a new event.\n * - You can disable specific event types by setting them to `false`.\n * - At least one event type must remain enabled at all times.\n * - If only one event type is enabled, the event type selection screen will be skipped.\n */\n @Prop() readonly enableEventTypes?: EnableEventTypes = {\n one_on_one: true,\n collective: true,\n max_fairness: true,\n max_availability: true,\n group: true,\n };\n\n /**\n * Theme config, used to automatically generate a theme with color palette and\n * CSS variables to customize the look and feel of the Nylas Scheduler.\n */\n @Prop() readonly themeConfig?: ThemeConfig;\n /**\n * This event is fired when the provider is initialized.\n * By default, this event handles determining if the user is logged in or not.\n * In addition, it fetches the provided configuration if a valid configuration id is provided.\n */\n @Event({ cancelable: true }) readonly init!: EventEmitter<HTMLNylasSchedulerEditorElement>;\n\n /**\n * This event is fired when the the NylasAuth isAuthenticated state changes\n * to true.\n */\n @Event({ cancelable: true }) readonly loggedIn!: EventEmitter<HTMLNylasSchedulerEditorElement>;\n\n /**\n * This event is fired when the the NylasAuth isAuthenticated state changes\n * to false.\n */\n @Event({ cancelable: true }) readonly loggedOut!: EventEmitter<HTMLNylasSchedulerEditorElement>;\n\n /**\n * This event is fired when the close button on scheduler config is clicked.\n */\n @Event({ cancelable: true }) readonly schedulerConfigCloseClicked!: EventEmitter<HTMLNylasSchedulerEditorElement>;\n\n /**\n * Automatically register components that have the `@RegisterComponent` decorator.\n * If this is set to false, you will need to manually register components using the\n * `registerComponent` method.\n * @default true\n */\n @State() automaticComponentRegistration: boolean = true;\n\n /**\n * This state will track the current selected language of the scheduler page.\n */\n @State() selectedLanguage: LANGUAGE_CODE = this.defaultLanguage || LANGUAGE_CODE.en;\n\n /**\n * This state will track the current language version of the state.\n * This is used to force the component to re-render when the localization prop is updated.\n */\n @State() langVersion: number = 0;\n\n /**\n * The version of the Nylas Scheduler.\n */\n @State() version: string = process.env.PACKAGE_VERSION ? process.env.PACKAGE_VERSION : 'unknown';\n\n connectedCallback() {\n debug(`[nylas-scheduler-editor] connectedCallback`);\n }\n\n async componentWillLoad() {\n debug(`[nylas-scheduler-editor] componentWillLoad`);\n const filteredAdditionalParticipants = this.additionalParticipants?.filter(participant => {\n const filteredCalendars = participant.calendars?.length > 0 ? participant.calendars.filter(calendar => calendar.id && calendar.name) : [];\n if (participant.name && participant.email && filteredCalendars.length > 0) {\n return {\n name: participant.name,\n email: participant.email,\n calendars: filteredCalendars,\n };\n }\n });\n this.stores = {\n schedulerConfig: CreateNylasSchedulerConfigStore({\n ...this.defaultSchedulerConfigState,\n additionalParticipants: filteredAdditionalParticipants,\n conferenceProviders: this.conferenceProviders,\n requiresSlug: this.requiresSlug,\n selectedLanguage: this.defaultLanguage || LANGUAGE_CODE.en,\n nylasBranding: this.nylasBranding,\n experimentalFeatures: this.experimentalFeatures,\n enableEventTypes: this.enableEventTypes,\n themeConfig: this.themeConfig,\n }),\n };\n\n if (!this.nylasApiRequest && this.nylasSessionsConfig) {\n const nylasSession = new NylasSessions(this.nylasSessionsConfig);\n\n // We must check if the user is logged in before continuing\n // otherwise, a PCKE code will not be generated and the user\n // will not be able to log in.\n await nylasSession.isLoggedIn();\n\n // Watch for login events so that we can automatically update the state\n nylasSession.onLoginSuccess(async () => {\n const currentUser = await this.nylasSchedulerConfigConnector?.schedulerConfig?.currentUser();\n if (currentUser) {\n const loggedInEvent = this.loggedIn.emit(this.host);\n if ('loggedIn' in this.eventOverrides) {\n await this.eventOverrides.loggedIn(loggedInEvent, this.nylasSchedulerConfigConnector);\n }\n if (!loggedInEvent.defaultPrevented) {\n await this.loggedInHandler(currentUser);\n }\n }\n });\n\n // Watch for logout events so that we can automatically update the state\n nylasSession.onLoginFail(async () => {\n this.stores?.schedulerConfig?.set('currentUser', null);\n const loggedOutEvent = this.loggedOut.emit(this.host);\n if ('loggedOut' in this.eventOverrides) {\n await this.eventOverrides.loggedOut(loggedOutEvent, this.nylasSchedulerConfigConnector);\n if (loggedOutEvent.defaultPrevented) {\n return;\n }\n }\n });\n\n this.nylasApiRequest = new NylasIdentityRequestWrapper(nylasSession);\n }\n\n if (this.nylasApiRequest && this.defaultAuthArgs) {\n this.nylasApiRequest.setDefaultAuthArgs(this.defaultAuthArgs);\n }\n\n this.baseProvider = new NylasBaseProvider(this.host, this.stores, this.automaticComponentRegistration, this.eventOverrides);\n\n const nylasSchedulerConfigStore = this.baseProvider.getStore('schedulerConfig');\n this.nylasSchedulerConfigConnector = new NylasSchedulerConfigConnector({\n nylasApiRequest: this.nylasApiRequest,\n nylasSchedulerConfigStore: nylasSchedulerConfigStore,\n });\n\n const initEvent = this.init.emit(this.host);\n if ('init' in this.eventOverrides) {\n await this.eventOverrides.init(initEvent, this.nylasSchedulerConfigConnector);\n }\n\n if (!initEvent.defaultPrevented) {\n const currentUser = await this.nylasSchedulerConfigConnector?.schedulerConfig?.currentUser();\n if (currentUser) {\n const loggedInEvent = this.loggedIn.emit(this.host);\n if ('loggedIn' in this.eventOverrides) {\n await this.eventOverrides.loggedIn(loggedInEvent, this.nylasSchedulerConfigConnector);\n }\n if (!loggedInEvent.defaultPrevented) {\n await this.loggedInHandler(currentUser);\n }\n } else {\n this.stores?.schedulerConfig?.set('currentUser', null);\n const loggedOutEvent = this.loggedOut.emit(this.host);\n if ('loggedOut' in this.eventOverrides) {\n await this.eventOverrides.loggedOut(loggedOutEvent, this.nylasSchedulerConfigConnector);\n if (loggedOutEvent.defaultPrevented) {\n return;\n }\n }\n }\n }\n\n // Watch for store changes\n this.stores?.schedulerConfig?.onChange('selectedConfiguration', async config => {\n if (config && config.id) {\n this.configurationId = config.id;\n }\n });\n\n this.baseProvider?.componentWillLoad(this.nylasSchedulerConfigConnector);\n // Override theme\n this.applyThemeConfig(this.themeConfig);\n }\n\n async componentDidLoad() {\n debug(`[nylas-scheduler-editor] componentDidLoad`);\n await this.baseProvider?.componentDidLoad();\n this.updateLocalization(this.localization);\n this.version = process.env.PACKAGE_VERSION ? process.env.PACKAGE_VERSION : 'unknown';\n }\n\n async componentDisconnected() {\n await this.baseProvider?.componentDisconnected();\n }\n\n /**\n * Watch for changes to the configuration id and automatically fetch the configuration\n * when the configuration id changes. If the configuration id is cleared, then the\n * configuration is cleared as well.\n * @param newConfigurationId The new configuration id\n */\n @Watch('configurationId')\n async configurationIdChanged(newConfigurationId: string) {\n if (newConfigurationId) {\n await this.nylasSchedulerConfigConnector?.schedulerConfig?.getConfigurationById(newConfigurationId);\n this.stores?.schedulerConfig?.set('action', 'edit');\n } else {\n // Clear the configuration\n this.stores?.schedulerConfig?.set('selectedConfiguration', {});\n this.stores?.schedulerConfig?.set('action', null);\n }\n }\n\n @Watch('localization')\n updateLocalization(newVal?: Partial<Record<LANGUAGE_CODE, Locale>>) {\n if (!newVal) {\n return;\n }\n\n Object.keys(newVal).forEach(lang => {\n if (!(lang in LANGUAGE_CODE)) {\n return;\n }\n i18next.addResourceBundle(\n lang,\n 'translation',\n newVal[lang],\n false, // Merge with existing translations\n true, // Replace the existing translations with the same key\n );\n });\n this.langVersion++;\n }\n\n @Watch('nylasBranding')\n updateNylasBranding(newVal: boolean) {\n this.stores?.schedulerConfig?.set('nylasBranding', newVal);\n }\n\n @Watch('experimentalFeatures')\n updateExperimentalFeatures(newVal: Record<EXPERIMENTAL_FEATURES, boolean>) {\n this.stores?.schedulerConfig?.set('experimentalFeatures', newVal);\n }\n\n @Watch('enableEventTypes')\n updateEnableEventTypes(newVal: EnableEventTypes) {\n this.stores?.schedulerConfig?.set('enableEventTypes', newVal);\n }\n\n @Watch('themeConfig')\n themeConfigChanged(newVal?: ThemeConfig) {\n // Set the theme config in the store, hosted page will use this to apply/re-apply the theme\n this.baseProvider?.getStore('schedulerConfig')?.set('themeConfig', newVal);\n this.applyThemeConfig(newVal);\n }\n\n /**\n * This method is used to apply the theme config to the host element.\n * @param themeConfig The theme config to apply.\n */\n private 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 /**\n * This method is used to get the NylasSchedulerConfigStore instance.\n * You can use this instance to update or get the state of the store.\n * @returns Promise<NylasSchedulerConfigStoreType | undefined>\n */\n @Method()\n async store(): Promise<NylasSchedulerConfigStoreType | undefined> {\n return this.stores?.schedulerConfig;\n }\n\n /**\n * This method is used to get the NylasSchedulerConfigConnector instance.\n * You can use this instance to make requests to the Nylas API.\n * @returns Promise<NylasSchedulerConfigConnector | undefined>\n */\n @Method()\n async schedulerConnector(): Promise<NylasSchedulerConfigConnector | undefined> {\n return this.nylasSchedulerConfigConnector;\n }\n\n /**\n * This is a custom event handler that is used to register a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to register\n * @returns Promise<void>\n */\n @Listen('registerComponent')\n async registerComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.registerComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to unregister a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to unregister\n * @returns Promise<void>\n */\n @Listen('unregisterComponent')\n async unregisterComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.unregisterComponent(event.detail);\n }\n\n @Listen('nylasFormDropdownChanged')\n nylasFormDropdownChangedHandler(\n event: CustomEvent<{\n value: string;\n name: string;\n }>,\n ) {\n const { name, value } = event.detail;\n if (name === 'language') {\n this.selectedLanguage = LANGUAGE_CODE[value as LANGUAGE_CODE];\n i18next.changeLanguage(this.selectedLanguage);\n this.stores?.schedulerConfig?.set('selectedLanguage', this.selectedLanguage);\n }\n }\n\n /**\n * Upon login, set the current user and fetch the configuration and calendars.\n * @param currentUser The current user that is logged in\n */\n private async loggedInHandler(currentUser: User) {\n this.stores?.schedulerConfig?.set('currentUser', currentUser);\n\n if (!this.nylasSchedulerConfigConnector) {\n return;\n }\n\n await this.nylasSchedulerConfigConnector.schedulerConfig?.getCalendars();\n\n if (this.configurationId) {\n const data = await this.nylasSchedulerConfigConnector.schedulerConfig?.getConfigurationById(this.configurationId);\n if (data && data[0]?.id) {\n this.stores?.schedulerConfig?.set('action', 'edit');\n }\n }\n }\n\n /**\n * This is a custom event handler that is used to update the state of the provider.\n */\n private handleSchedulerConfigCloseClicked = (_event: Event) => {\n const event = this.schedulerConfigCloseClicked.emit(this.host);\n if ('schedulerConfigCloseClicked' in this.eventOverrides) {\n this.eventOverrides.schedulerConfigCloseClicked(event, this.nylasSchedulerConfigConnector);\n }\n\n if (!event.defaultPrevented) {\n localStorage.removeItem('grant');\n localStorage.removeItem('user');\n window.location.reload();\n }\n };\n\n /**\n * This method is used to get the authentication URL for a provider.\n * @param provider The provider to get the authentication URL for (e.g. google, microsoft, etc.)\n * @returns Promise<string> The authentication URL to redirect the user for the provider\n */\n private authenticationUrl = async (provider?: string) => {\n if (!this.nylasApiRequest) {\n console.error(`[nylas-scheduler-editor] Nylas API Request is not initialized.`);\n return '';\n }\n const url = await this.nylasApiRequest.authenticationUrl({ provider });\n\n return url || '';\n };\n\n render() {\n const hasSlot = this.host.querySelector('[slot=\"custom-page-style-inputs\"]');\n const selectedConfigId = this.stores?.schedulerConfig?.state.selectedConfiguration?.id;\n const languageOptions = Object.keys(LANGUAGE_MAP).map(key => ({\n label: LANGUAGE_MAP[key],\n value: key,\n }));\n const isGroupType =\n this.stores?.schedulerConfig?.state.selectedEventType === CONFIGURATION_EVENT_TYPE.group ||\n (this.stores?.schedulerConfig?.state.selectedConfiguration as GroupConfiguration)?.type === CONFIGURATION_EVENT_TYPE.group;\n\n debug(`[nylas-scheduler-editor] render mode: ${this.mode}`);\n\n return (\n <Host>\n <div class=\"scheduler-editor-header\" part=\"nse__header\">\n <h1 class=\"scheduler-editor-title\" part=\"nse__title\">\n <calendar-icon width=\"18\" height=\"18\" />\n {i18next.t('schedulerEditorTitle')}\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{this.version}</span>\n </tooltip-component>\n </h1>\n <div\n class={{\n language: true,\n }}\n part=\"nse__language\"\n >\n <select-dropdown\n name=\"language\"\n searchPlaceholder={i18next.t('search')}\n options={languageOptions}\n withChevron={false}\n themeConfig={this.themeConfig}\n defaultSelectedOption={languageOptions.find(lang => lang.value == this.selectedLanguage)}\n exportparts=\"sd_dropdown: nse__language-dropdown, sd_dropdown-button: nse__language-drop-button, sd_dropdown-content: nse__language-drop-content, sd_dropdown_label: nse__language-drop-label\"\n >\n <span slot=\"select-icon\">\n <translate-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n <button class=\"scheduler-editor-close\" title=\"logout\" onClick={e => this.handleSchedulerConfigCloseClicked(e)} part=\"nse__close-button\">\n <close-icon width=\"18\" height=\"18\" />\n </button>\n </div>\n <div\n class={{\n 'scheduler-editor-content': true,\n 'scheduler-editor-content--group': isGroupType,\n }}\n part=\"nse__content\"\n >\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === null && (\n <div class=\"list-configurations\" part=\"nse__list-configurations\">\n <nylas-list-configurations exportparts=\"nlc__create-new-cta, actions__dropdown, actions__dropdown-button, actions__dropdown-content, actions-Copy, actions-Preview, actions-Delete\"></nylas-list-configurations>\n </div>\n )}\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'create-select' && <nylas-select-event-type></nylas-select-event-type>}\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'create' && isGroupType && (\n // If the mode is 'app', then render the editor tabs in a composable mode with children for creating a new configuration (Express flow).\n <nylas-editor-tabs-group mode=\"composable\">\n <ExpressFlow\n selectedEventType={this.stores?.schedulerConfig?.state?.selectedEventType || CONFIGURATION_EVENT_TYPE.one_on_one}\n currentUser={this.stores?.schedulerConfig?.state.currentUser}\n calendars={this.stores?.schedulerConfig?.state?.calendars}\n selectedConfiguration={this.stores?.schedulerConfig?.state?.selectedConfiguration}\n />\n </nylas-editor-tabs-group>\n )}\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'create' && !isGroupType && (\n // If the mode is 'app', then render the editor tabs in a composable mode with children for creating a new configuration (Express flow).\n <nylas-editor-tabs mode=\"composable\">\n <ExpressFlow\n selectedEventType={this.stores?.schedulerConfig?.state?.selectedEventType || CONFIGURATION_EVENT_TYPE.one_on_one}\n currentUser={this.stores?.schedulerConfig?.state.currentUser}\n calendars={this.stores?.schedulerConfig?.state?.calendars}\n selectedConfiguration={this.stores?.schedulerConfig?.state?.selectedConfiguration}\n />\n </nylas-editor-tabs>\n )}\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'edit' && isGroupType && (\n <nylas-editor-tabs-group key={selectedConfigId} mode={this.mode}>\n {this.mode === 'composable' && <slot />}\n {this.mode === 'app' && hasSlot && (\n <div style={{ display: 'none' }} slot=\"custom-page-style-inputs\" key={selectedConfigId}>\n <slot name=\"custom-page-style-inputs\" />\n </div>\n )}\n </nylas-editor-tabs-group>\n )}\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'edit' && !isGroupType && (\n <nylas-editor-tabs key={selectedConfigId} mode={this.mode}>\n {this.mode === 'composable' && <slot />}\n {this.mode === 'app' && hasSlot && (\n <div style={{ display: 'none' }} slot=\"custom-page-style-inputs\" key={selectedConfigId}>\n <slot name=\"custom-page-style-inputs\" />\n </div>\n )}\n </nylas-editor-tabs>\n )}\n {!this.stores?.schedulerConfig?.state.currentUser && (\n <slot name=\"login-required\">\n <LoginRequired authenticationUrl={this.authenticationUrl} />\n </slot>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"names":["isNylasErrorResponse","local","URL","this","uuid","jwtDecode","reactModule","require$$0","require$$1","useState","useEffect","i18next"],"mappings":"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","x_google_ignoreList":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,23,25,26,27]}
|