@nylas/web-elements 2.3.3-canary-20260206145315 → 2.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/nylas-scheduler-editor/nylas-scheduler-editor.es.js +233 -233
- package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +4 -4
- package/dist/cjs/google-logo-icon_6.cjs.entry.js +1 -1
- package/dist/cjs/multi-select-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/multi-select-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/multi-select-dropdown.entry.cjs.js.map +1 -1
- package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +5 -4
- package/dist/cjs/nylas-scheduler-editor.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-scheduler-editor.entry.cjs.js.map +1 -1
- package/dist/cjs/nylas-scheduling.cjs.entry.js +3 -2
- package/dist/cjs/nylas-scheduling.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-scheduling.entry.cjs.js.map +1 -1
- package/dist/cjs/{version-CwWnMgnL.js → version-CygoqPGe.js} +3 -3
- package/dist/{esm/version-DM0y_1NQ.js.map → cjs/version-CygoqPGe.js.map} +1 -1
- package/dist/collection/components/design-system/multi-select-dropdown/multi-select-dropdown.css +8 -0
- package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js +1 -0
- package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +4 -3
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js.map +1 -1
- package/dist/collection/connector/nylas-scheduler-connector/index.js +1 -1
- package/dist/collection/connector/nylas-scheduler-connector/index.js.map +1 -1
- package/dist/collection/version.js +1 -1
- package/dist/collection/version.js.map +1 -1
- package/dist/components/multi-select-dropdown.js +1 -1
- package/dist/components/nylas-booking-form-config.js +1 -1
- package/dist/components/nylas-booking-form.js +1 -1
- package/dist/components/nylas-calendar-picker.js +1 -1
- package/dist/components/nylas-connected-calendars.js +1 -1
- package/dist/components/nylas-editor-tabs-group.js +1 -1
- package/dist/components/nylas-editor-tabs.js +1 -1
- package/dist/components/nylas-event-calendar.js +1 -1
- package/dist/components/nylas-scheduler-editor.js +12 -11
- package/dist/components/nylas-scheduler-editor.js.map +1 -1
- package/dist/components/nylas-scheduling.js +5 -4
- package/dist/components/nylas-scheduling.js.map +1 -1
- package/dist/components/{p-DICXD6Cy.js → p-4s7IwH6o.js} +3 -3
- package/dist/components/{p-DICXD6Cy.js.map → p-4s7IwH6o.js.map} +1 -1
- package/dist/components/{p-1FY06fQD.js → p-7cRDKNfB.js} +6 -6
- package/dist/components/{p-1FY06fQD.js.map → p-7cRDKNfB.js.map} +1 -1
- package/dist/components/{p-CPFYp0Ii.js → p-B8s2nTj6.js} +3 -3
- package/dist/components/{p-CPFYp0Ii.js.map → p-B8s2nTj6.js.map} +1 -1
- package/dist/components/{p-BdQ9iWW4.js → p-BlNM5g0H.js} +3 -3
- package/dist/components/{p-BdQ9iWW4.js.map → p-BlNM5g0H.js.map} +1 -1
- package/dist/components/{p-whoa2mmo.js → p-C0AdDaS0.js} +3 -3
- package/dist/components/{p-whoa2mmo.js.map → p-C0AdDaS0.js.map} +1 -1
- package/dist/components/{p-D5z467yH.js → p-CD30fMSf.js} +3 -3
- package/dist/components/p-CD30fMSf.js.map +1 -0
- package/dist/components/{p-Gyins0o7.js → p-CZNV2mTJ.js} +3 -3
- package/dist/components/{p-Gyins0o7.js.map → p-CZNV2mTJ.js.map} +1 -1
- package/dist/components/{p-cylqcpvp.js → p-i4lYB1aA.js} +7 -7
- package/dist/components/{p-cylqcpvp.js.map → p-i4lYB1aA.js.map} +1 -1
- package/dist/components/{p-C2CgHoR-.js → p-sSr1v1AD.js} +4 -4
- package/dist/components/{p-C2CgHoR-.js.map → p-sSr1v1AD.js.map} +1 -1
- package/dist/esm/google-logo-icon_6.entry.js +1 -1
- package/dist/esm/multi-select-dropdown.entry.js +1 -1
- package/dist/esm/multi-select-dropdown.entry.js.map +1 -1
- package/dist/esm/nylas-scheduler-editor.entry.js +5 -4
- package/dist/esm/nylas-scheduler-editor.entry.js.map +1 -1
- package/dist/esm/nylas-scheduling.entry.js +3 -2
- package/dist/esm/nylas-scheduling.entry.js.map +1 -1
- package/dist/esm/{version-DM0y_1NQ.js → version-BA6Pqhlq.js} +3 -3
- package/dist/{cjs/version-CwWnMgnL.js.map → esm/version-BA6Pqhlq.js.map} +1 -1
- package/dist/nylas-web-elements/multi-select-dropdown.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-scheduler-editor.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-scheduling.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
- package/dist/nylas-web-elements/{p-dbad0a98.entry.js → p-1472f78e.entry.js} +2 -2
- package/dist/nylas-web-elements/p-1472f78e.entry.js.map +1 -0
- package/dist/nylas-web-elements/p-3c16ee6c.entry.js +2 -0
- package/dist/nylas-web-elements/p-3c16ee6c.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-daf5083c.entry.js → p-3cb4cb10.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-b90acc64.entry.js → p-5f0cac0e.entry.js} +3 -3
- package/dist/nylas-web-elements/{p-b90acc64.entry.js.map → p-5f0cac0e.entry.js.map} +1 -1
- package/dist/nylas-web-elements/p-BA6Pqhlq.js +2 -0
- package/dist/nylas-web-elements/{p-DM0y_1NQ.js.map → p-BA6Pqhlq.js.map} +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
- package/dist/components/p-D5z467yH.js.map +0 -1
- package/dist/nylas-web-elements/p-6cb8772c.entry.js +0 -2
- package/dist/nylas-web-elements/p-6cb8772c.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-DM0y_1NQ.js +0 -2
- package/dist/nylas-web-elements/p-dbad0a98.entry.js.map +0 -1
- /package/dist/nylas-web-elements/{p-daf5083c.entry.js.map → p-3cb4cb10.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nylas-scheduler-editor.js","sourceRoot":"","sources":["../../../../../src/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.tsx"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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, error } 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';\nimport { version } from '@/version';\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 enables or disables the ability to configure Notetaker for scheduling pages.\n * By default, this is set to false. When enabled, the Notetaker configuration component will be shown in the Event Info tab.\n */\n @Prop({ attribute: 'enable-notetaker' }) readonly enableNotetaker?: boolean = false;\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 = version;\n\n connectedCallback() {\n debug(`[nylas-scheduler-editor] connectedCallback`);\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n 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 = version;\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 * Sets CSS custom properties and marks the component as themed to prevent FOUC.\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 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\n themeConfig={this.themeConfig}\n exportparts=\"nlc__create-new-cta, actions__dropdown, actions__dropdown-button, actions__dropdown-content, actions-Copy, actions-Preview, actions-Delete\"\n ></nylas-list-configurations>\n </div>\n )}\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'create-select' && (\n <nylas-select-event-type themeConfig={this.themeConfig}></nylas-select-event-type>\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-group mode=\"composable\" themeConfig={this.themeConfig}>\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\" enableNotetaker={this.enableNotetaker} themeConfig={this.themeConfig}>\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} themeConfig={this.themeConfig}>\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} enableNotetaker={this.enableNotetaker} themeConfig={this.themeConfig}>\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"]}
|
|
1
|
+
{"version":3,"file":"nylas-scheduler-editor.js","sourceRoot":"","sources":["../../../../../src/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.tsx"],"names":[],"mappings":"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G,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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, error } 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';\nimport { version } from '@/version';\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 enables or disables the ability to configure Notetaker for scheduling pages.\n * By default, this is set to false. When enabled, the Notetaker configuration component will be shown in the Event Info tab.\n */\n @Prop({ attribute: 'enable-notetaker' }) readonly enableNotetaker?: boolean = false;\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 = version;\n\n connectedCallback() {\n debug(`[nylas-scheduler-editor] connectedCallback`);\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n async componentWillLoad() {\n debug(`[nylas-scheduler-editor] componentWillLoad`);\n\n // Yield to allow the React wrapper (@stencil/react-output-target/runtime)\n // to set properties via useLayoutEffect before we read them.\n // Without this, componentWillLoad runs before props like nylasSessionsConfig\n // and nylasApiRequest are set, causing the auth page to appear on re-renders.\n await Promise.resolve();\n\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 = version;\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 * Sets CSS custom properties and marks the component as themed to prevent FOUC.\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 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\n themeConfig={this.themeConfig}\n exportparts=\"nlc__create-new-cta, actions__dropdown, actions__dropdown-button, actions__dropdown-content, actions-Copy, actions-Preview, actions-Delete\"\n ></nylas-list-configurations>\n </div>\n )}\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'create-select' && (\n <nylas-select-event-type themeConfig={this.themeConfig}></nylas-select-event-type>\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-group mode=\"composable\" themeConfig={this.themeConfig}>\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\" enableNotetaker={this.enableNotetaker} themeConfig={this.themeConfig}>\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} themeConfig={this.themeConfig}>\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} enableNotetaker={this.enableNotetaker} themeConfig={this.themeConfig}>\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"]}
|
|
@@ -8,7 +8,7 @@ export class NylasSchedulerConnector {
|
|
|
8
8
|
if (!nylasSchedulerStore) {
|
|
9
9
|
throw new Error('nylasSchedulerStore is required');
|
|
10
10
|
}
|
|
11
|
-
if (!sessionId && !configId && !(slug
|
|
11
|
+
if (!sessionId && !configId && !(slug && clientId)) {
|
|
12
12
|
throw new Error('sessionId is required for private configs. If using public config either pass a configurationId or a combination of slug and clientId.');
|
|
13
13
|
}
|
|
14
14
|
if (schedulerAPIURL === '/') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/connector/nylas-scheduler-connector/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAapE,MAAM,OAAO,uBAAuB;IAUlC,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAkC;QACvH,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,wIAAwI,CAAC,CAAC;QAC5J,CAAC;QAID,IAAI,eAAe,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,IAAI;QACT,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/B,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAW,SAAS;QAClB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,sBAAsB,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,sBAAsB,GAAG,IAAI,yBAAyB,CAAC;YAC1D,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;CACF","sourcesContent":["import { NylasSchedulerStoreType } from '../../stores/scheduler-store';\nimport { debug } from '@/utils/utils';\nimport { NylasSchedulerConnectorInterface } from '../connector-interface';\nimport { NylaSchedulerAPIConnector } from '../shared/api/scheduler';\n\ntype NylasSchedulerConnectorOptions = {\n schedulerAPIURL: string;\n nylasSchedulerStore: NylasSchedulerStoreType;\n sessionId?: string;\n configId?: string;\n slug?: string;\n clientId?: string;\n};\n/**\n * Base class for the Nylas connector.\n */\nexport class NylasSchedulerConnector implements NylasSchedulerConnectorInterface {\n public schedulerAPIURL: string;\n public nylasSchedulerStore: NylasSchedulerStoreType;\n public sessionId: string | undefined;\n public configId: string | undefined;\n public slug: string | undefined;\n public clientId: string | undefined;\n\n private _schedulerAPIConnector: NylaSchedulerAPIConnector | undefined;\n\n constructor({ schedulerAPIURL, nylasSchedulerStore, sessionId, configId, slug, clientId }: NylasSchedulerConnectorOptions) {\n if (!schedulerAPIURL) {\n throw new Error('schedulerAPIURL is required');\n }\n\n if (!nylasSchedulerStore) {\n throw new Error('nylasSchedulerStore is required');\n }\n\n if (!sessionId && !configId && !(slug
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/connector/nylas-scheduler-connector/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAapE,MAAM,OAAO,uBAAuB;IAUlC,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAkC;QACvH,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,wIAAwI,CAAC,CAAC;QAC5J,CAAC;QAID,IAAI,eAAe,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,IAAI;QACT,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/B,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAW,SAAS;QAClB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,sBAAsB,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,sBAAsB,GAAG,IAAI,yBAAyB,CAAC;YAC1D,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;CACF","sourcesContent":["import { NylasSchedulerStoreType } from '../../stores/scheduler-store';\nimport { debug } from '@/utils/utils';\nimport { NylasSchedulerConnectorInterface } from '../connector-interface';\nimport { NylaSchedulerAPIConnector } from '../shared/api/scheduler';\n\ntype NylasSchedulerConnectorOptions = {\n schedulerAPIURL: string;\n nylasSchedulerStore: NylasSchedulerStoreType;\n sessionId?: string;\n configId?: string;\n slug?: string;\n clientId?: string;\n};\n/**\n * Base class for the Nylas connector.\n */\nexport class NylasSchedulerConnector implements NylasSchedulerConnectorInterface {\n public schedulerAPIURL: string;\n public nylasSchedulerStore: NylasSchedulerStoreType;\n public sessionId: string | undefined;\n public configId: string | undefined;\n public slug: string | undefined;\n public clientId: string | undefined;\n\n private _schedulerAPIConnector: NylaSchedulerAPIConnector | undefined;\n\n constructor({ schedulerAPIURL, nylasSchedulerStore, sessionId, configId, slug, clientId }: NylasSchedulerConnectorOptions) {\n if (!schedulerAPIURL) {\n throw new Error('schedulerAPIURL is required');\n }\n\n if (!nylasSchedulerStore) {\n throw new Error('nylasSchedulerStore is required');\n }\n\n if (!sessionId && !configId && !(slug && clientId)) {\n throw new Error('sessionId is required for private configs. If using public config either pass a configurationId or a combination of slug and clientId.');\n }\n\n // If the url is only /, then we need to add the base url.\n // We assume that the base url is the same as the current url.\n if (schedulerAPIURL === '/') {\n const url = new URL(window.location.href);\n schedulerAPIURL = url.origin;\n }\n\n this.configId = configId;\n this.sessionId = sessionId;\n this.schedulerAPIURL = schedulerAPIURL;\n this.nylasSchedulerStore = nylasSchedulerStore;\n this.slug = slug;\n this.clientId = clientId;\n }\n\n public init() {\n debug('NylasConnector init');\n }\n\n public get schedulerStore() {\n return this.nylasSchedulerStore;\n }\n\n public get scheduler() {\n if (this._schedulerAPIConnector) {\n return this._schedulerAPIConnector;\n }\n this._schedulerAPIConnector = new NylaSchedulerAPIConnector({\n schedulerAPIURL: this.schedulerAPIURL,\n schedulerStore: this.schedulerStore,\n sessionId: this.sessionId,\n configId: this.configId,\n slug: this.slug,\n clientId: this.clientId,\n });\n return this._schedulerAPIConnector;\n }\n\n public resetStores() {\n this.nylasSchedulerStore.reset();\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 NylasSchedulerConnectorPublicMethods = PublicMethods<NylasSchedulerConnector>;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '2.3.
|
|
1
|
+
export const version = '2.3.5';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC","sourcesContent":["export const version = '2.3.5';\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { M as MultiSelectDropdown$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { M as MultiSelectDropdown$1, d as defineCustomElement$1 } from './p-CD30fMSf.js';
|
|
2
2
|
|
|
3
3
|
const MultiSelectDropdown = MultiSelectDropdown$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { N as NylasBookingFormConfig$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { N as NylasBookingFormConfig$1, d as defineCustomElement$1 } from './p-BlNM5g0H.js';
|
|
2
2
|
|
|
3
3
|
const NylasBookingFormConfig = NylasBookingFormConfig$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { N as NylasBookingForm$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { N as NylasBookingForm$1, d as defineCustomElement$1 } from './p-CZNV2mTJ.js';
|
|
2
2
|
|
|
3
3
|
const NylasBookingForm = NylasBookingForm$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { N as NylasCalendarPicker$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { N as NylasCalendarPicker$1, d as defineCustomElement$1 } from './p-B8s2nTj6.js';
|
|
2
2
|
|
|
3
3
|
const NylasCalendarPicker = NylasCalendarPicker$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { N as NylasConnectedCalendars$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { N as NylasConnectedCalendars$1, d as defineCustomElement$1 } from './p-sSr1v1AD.js';
|
|
2
2
|
|
|
3
3
|
const NylasConnectedCalendars = NylasConnectedCalendars$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { N as NylasEditorTabsGroup$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { N as NylasEditorTabsGroup$1, d as defineCustomElement$1 } from './p-7cRDKNfB.js';
|
|
2
2
|
|
|
3
3
|
const NylasEditorTabsGroup = NylasEditorTabsGroup$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { N as NylasEditorTabs$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { N as NylasEditorTabs$1, d as defineCustomElement$1 } from './p-i4lYB1aA.js';
|
|
2
2
|
|
|
3
3
|
const NylasEditorTabs = NylasEditorTabs$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { N as NylasEventCalendar$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { N as NylasEventCalendar$1, d as defineCustomElement$1 } from './p-C0AdDaS0.js';
|
|
2
2
|
|
|
3
3
|
const NylasEventCalendar = NylasEventCalendar$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -5,7 +5,7 @@ import { j as dayjs, u as utc, w as timezone, a as debug, d as dataResponse, L a
|
|
|
5
5
|
import { o as o$1 } from './p-C1VNIgoH.js';
|
|
6
6
|
import { c as createStore } from './p-DVWbg8if.js';
|
|
7
7
|
import { C as CONFIGURATION_EVENT_TYPE, L as LANGUAGE_CODE, c as LANGUAGE_MAP } from './p-DUCeQ1R4.js';
|
|
8
|
-
import { v as version } from './p-
|
|
8
|
+
import { v as version } from './p-4s7IwH6o.js';
|
|
9
9
|
import { d as defineCustomElement$1A } from './p-Ha2t2y12.js';
|
|
10
10
|
import { d as defineCustomElement$1z } from './p-Dvm3cFRX.js';
|
|
11
11
|
import { d as defineCustomElement$1y } from './p-CSGxrebs.js';
|
|
@@ -41,26 +41,26 @@ import { d as defineCustomElement$15 } from './p-C7vQiSqU.js';
|
|
|
41
41
|
import { d as defineCustomElement$14 } from './p-D0Ur_s8w.js';
|
|
42
42
|
import { d as defineCustomElement$13 } from './p-WCXOX3Ou.js';
|
|
43
43
|
import { d as defineCustomElement$12 } from './p-BA0crRT4.js';
|
|
44
|
-
import { d as defineCustomElement$11 } from './p-
|
|
44
|
+
import { d as defineCustomElement$11 } from './p-CD30fMSf.js';
|
|
45
45
|
import { d as defineCustomElement$10 } from './p-B-xvNL5X.js';
|
|
46
46
|
import { d as defineCustomElement$$ } from './p-CZllU8ii.js';
|
|
47
47
|
import { d as defineCustomElement$_ } from './p-QKc1T_NS.js';
|
|
48
48
|
import { d as defineCustomElement$Z } from './p-BCNq-vH8.js';
|
|
49
49
|
import { d as defineCustomElement$Y } from './p-pLqfEMSB.js';
|
|
50
|
-
import { d as defineCustomElement$X } from './p-
|
|
50
|
+
import { d as defineCustomElement$X } from './p-BlNM5g0H.js';
|
|
51
51
|
import { d as defineCustomElement$W } from './p-DgfDGATC.js';
|
|
52
|
-
import { d as defineCustomElement$V } from './p-
|
|
52
|
+
import { d as defineCustomElement$V } from './p-B8s2nTj6.js';
|
|
53
53
|
import { d as defineCustomElement$U } from './p-BrVgWFgn.js';
|
|
54
54
|
import { d as defineCustomElement$T } from './p-BvCTseDu.js';
|
|
55
|
-
import { d as defineCustomElement$S } from './p-
|
|
55
|
+
import { d as defineCustomElement$S } from './p-sSr1v1AD.js';
|
|
56
56
|
import { d as defineCustomElement$R } from './p-1wZj-JiY.js';
|
|
57
57
|
import { d as defineCustomElement$Q } from './p-BdQA_uHk.js';
|
|
58
58
|
import { d as defineCustomElement$P } from './p-DWCPI1lK.js';
|
|
59
59
|
import { d as defineCustomElement$O } from './p-BWgGjFXi.js';
|
|
60
60
|
import { d as defineCustomElement$N } from './p-CEvUNENN.js';
|
|
61
|
-
import { d as defineCustomElement$M } from './p-
|
|
62
|
-
import { d as defineCustomElement$L } from './p-
|
|
63
|
-
import { d as defineCustomElement$K } from './p-
|
|
61
|
+
import { d as defineCustomElement$M } from './p-i4lYB1aA.js';
|
|
62
|
+
import { d as defineCustomElement$L } from './p-7cRDKNfB.js';
|
|
63
|
+
import { d as defineCustomElement$K } from './p-C0AdDaS0.js';
|
|
64
64
|
import { d as defineCustomElement$J } from './p-Ey-jPikW.js';
|
|
65
65
|
import { d as defineCustomElement$I } from './p-BJ6nYqW1.js';
|
|
66
66
|
import { d as defineCustomElement$H } from './p-DNm8Z4AY.js';
|
|
@@ -2228,6 +2228,7 @@ const NylasSchedulerEditor$1 = proxyCustomElement(class NylasSchedulerEditor ext
|
|
|
2228
2228
|
}
|
|
2229
2229
|
async componentWillLoad() {
|
|
2230
2230
|
debug(`[nylas-scheduler-editor] componentWillLoad`);
|
|
2231
|
+
await Promise.resolve();
|
|
2231
2232
|
const filteredAdditionalParticipants = this.additionalParticipants?.filter(participant => {
|
|
2232
2233
|
const filteredCalendars = participant.calendars?.length > 0 ? participant.calendars.filter(calendar => calendar.id && calendar.name) : [];
|
|
2233
2234
|
if (participant.name && participant.email && filteredCalendars.length > 0) {
|
|
@@ -2415,12 +2416,12 @@ const NylasSchedulerEditor$1 = proxyCustomElement(class NylasSchedulerEditor ext
|
|
|
2415
2416
|
const isGroupType = this.stores?.schedulerConfig?.state.selectedEventType === CONFIGURATION_EVENT_TYPE.group ||
|
|
2416
2417
|
this.stores?.schedulerConfig?.state.selectedConfiguration?.type === CONFIGURATION_EVENT_TYPE.group;
|
|
2417
2418
|
debug(`[nylas-scheduler-editor] render mode: ${this.mode}`);
|
|
2418
|
-
return (h(Host, { key: '
|
|
2419
|
+
return (h(Host, { key: '39f91102925ee23f408040f1a223d63c84032d11' }, h("div", { key: 'cc147c1ef34bd2cf5463afd13b93dd85a146276c', class: "scheduler-editor-header", part: "nse__header" }, h("h1", { key: '85ce90cef58486bf7460cb6923215d02c7118842', class: "scheduler-editor-title", part: "nse__title" }, h("calendar-icon", { key: '05cc7a90a218429c17ecdb43e7c2d3fc65bad869', width: "18", height: "18" }), instance.t('schedulerEditorTitle'), h("tooltip-component", { key: '941defe65536ce694d47b68298904e3ee448fb5e' }, h("info-icon", { key: '3860588fb8fb8fc7419df429766257b135043627', slot: "tooltip-icon" }), h("span", { key: 'c3fe9ff5a23aecdef9ecc45974a846e88fead7be', slot: "tooltip-content" }, this.version))), h("div", { key: '5fb895b77c77bdf513f775967f669e607f6a419e', class: {
|
|
2419
2420
|
language: true,
|
|
2420
|
-
}, part: "nse__language" }, h("select-dropdown", { key: '
|
|
2421
|
+
}, part: "nse__language" }, h("select-dropdown", { key: '972e005c4becf8494048cc952eff074633bd8429', name: "language", searchPlaceholder: instance.t('search'), options: languageOptions, withChevron: false, themeConfig: this.themeConfig, defaultSelectedOption: languageOptions.find(lang => lang.value == this.selectedLanguage), 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" }, h("span", { key: 'cceaa3dac394d5dc2e9cb8c867076cefb851b15c', slot: "select-icon" }, h("translate-icon", { key: '16745ecd705c55c71fb5faada738550cbe08a2a0', width: "20", height: "20" })))), h("button", { key: '09a7792870c66c5c8f4942295cf1d1f9338567db', class: "scheduler-editor-close", title: "logout", onClick: e => this.handleSchedulerConfigCloseClicked(e), part: "nse__close-button" }, h("close-icon", { key: 'f81b55af3c5ddc672b29ceade637fdf323f02b34', width: "18", height: "18" }))), h("div", { key: '7041febbcadd6f4ea62ff078fe324a15d5582e2a', class: {
|
|
2421
2422
|
'scheduler-editor-content': true,
|
|
2422
2423
|
'scheduler-editor-content--group': isGroupType,
|
|
2423
|
-
}, part: "nse__content" }, this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === null && (h("div", { key: '
|
|
2424
|
+
}, part: "nse__content" }, this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === null && (h("div", { key: 'a8379dfe87556939519caf93658b26991dd566bd', class: "list-configurations", part: "nse__list-configurations" }, h("nylas-list-configurations", { key: '2e45e016e43a1bb7ecdc296f86e10d3ce2d50f2f', themeConfig: this.themeConfig, exportparts: "nlc__create-new-cta, actions__dropdown, actions__dropdown-button, actions__dropdown-content, actions-Copy, actions-Preview, actions-Delete" }))), this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'create-select' && (h("nylas-select-event-type", { key: '9af93063ec39c9d22bfd86d05b47f5f04e869ab5', themeConfig: this.themeConfig })), this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'create' && isGroupType && (h("nylas-editor-tabs-group", { key: 'fd1afe59f4408c4ae9088f2abfff3660903378eb', mode: "composable", themeConfig: this.themeConfig }, h(ExpressFlow, { key: 'f43c6aded82f92537a94df3412bff83de5195fff', selectedEventType: this.stores?.schedulerConfig?.state?.selectedEventType || CONFIGURATION_EVENT_TYPE.one_on_one, currentUser: this.stores?.schedulerConfig?.state.currentUser, calendars: this.stores?.schedulerConfig?.state?.calendars, selectedConfiguration: this.stores?.schedulerConfig?.state?.selectedConfiguration }))), this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'create' && !isGroupType && (h("nylas-editor-tabs", { key: 'aec5db0eb2cde75312e2e1b22f0b2fca70aeff17', mode: "composable", enableNotetaker: this.enableNotetaker, themeConfig: this.themeConfig }, h(ExpressFlow, { key: 'c84c162c47edea12f2f49fe4997556455d429a64', selectedEventType: this.stores?.schedulerConfig?.state?.selectedEventType || CONFIGURATION_EVENT_TYPE.one_on_one, currentUser: this.stores?.schedulerConfig?.state.currentUser, calendars: this.stores?.schedulerConfig?.state?.calendars, selectedConfiguration: this.stores?.schedulerConfig?.state?.selectedConfiguration }))), this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'edit' && isGroupType && (h("nylas-editor-tabs-group", { key: selectedConfigId, mode: this.mode, themeConfig: this.themeConfig }, this.mode === 'composable' && h("slot", { key: '926d10d3b44add318479a10045a325c66f9b31ee' }), this.mode === 'app' && hasSlot && (h("div", { style: { display: 'none' }, slot: "custom-page-style-inputs", key: selectedConfigId }, h("slot", { key: '3113ec5f098da197e675ce766f8a31d198b4ecd5', name: "custom-page-style-inputs" }))))), this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'edit' && !isGroupType && (h("nylas-editor-tabs", { key: selectedConfigId, mode: this.mode, enableNotetaker: this.enableNotetaker, themeConfig: this.themeConfig }, this.mode === 'composable' && h("slot", { key: '3608dbcd3c37b7dae13cd57d06c4a9e6e0079935' }), this.mode === 'app' && hasSlot && (h("div", { style: { display: 'none' }, slot: "custom-page-style-inputs", key: selectedConfigId }, h("slot", { key: '941ed1bcdd350e930b60d37bcf1596e5ef9d42be', name: "custom-page-style-inputs" }))))), !this.stores?.schedulerConfig?.state.currentUser && (h("slot", { key: 'a8787f5d831d66d4b49b7937926c6893dea942c5', name: "login-required" }, h(LoginRequired, { key: 'ef5e6850a63ea8ddbceb82f9bfa21f58cbb22a9a', authenticationUrl: this.authenticationUrl }))))));
|
|
2424
2425
|
}
|
|
2425
2426
|
get host() { return this; }
|
|
2426
2427
|
static get watchers() { return {
|