{"version":3,"sources":["node_modules/@vendasta/meetings/fesm2020/vendasta-meetings.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable, inject } from '@angular/core';\nimport { throwError, of } from 'rxjs';\nimport { map, mapTo } from 'rxjs/operators';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar MeetingSource = /*#__PURE__*/function (MeetingSource) {\n MeetingSource[MeetingSource[\"MEETING_SOURCE_INVALID\"] = 0] = \"MEETING_SOURCE_INVALID\";\n MeetingSource[MeetingSource[\"MEETING_SOURCE_ZOOM\"] = 1] = \"MEETING_SOURCE_ZOOM\";\n MeetingSource[MeetingSource[\"MEETING_SOURCE_GOOGLE_MEET\"] = 2] = \"MEETING_SOURCE_GOOGLE_MEET\";\n return MeetingSource;\n}(MeetingSource || {});\nvar MeetingSourceStatus = /*#__PURE__*/function (MeetingSourceStatus) {\n MeetingSourceStatus[MeetingSourceStatus[\"MEETING_SOURCE_STATUS_INVALID\"] = 0] = \"MEETING_SOURCE_STATUS_INVALID\";\n MeetingSourceStatus[MeetingSourceStatus[\"MEETING_SOURCE_STATUS_CONNECTED\"] = 1] = \"MEETING_SOURCE_STATUS_CONNECTED\";\n MeetingSourceStatus[MeetingSourceStatus[\"MEETING_SOURCE_STATUS_DISCONNECTED\"] = 2] = \"MEETING_SOURCE_STATUS_DISCONNECTED\";\n MeetingSourceStatus[MeetingSourceStatus[\"MEETING_SOURCE_STATUS_BROKEN\"] = 3] = \"MEETING_SOURCE_STATUS_BROKEN\";\n return MeetingSourceStatus;\n}(MeetingSourceStatus || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar ZoomApprovalType = /*#__PURE__*/function (ZoomApprovalType) {\n ZoomApprovalType[ZoomApprovalType[\"ZOOM_APPROVAL_TYPE_INVALID\"] = 0] = \"ZOOM_APPROVAL_TYPE_INVALID\";\n ZoomApprovalType[ZoomApprovalType[\"ZOOM_APPROVAL_TYPE_ATUO_APPROVE\"] = 1] = \"ZOOM_APPROVAL_TYPE_ATUO_APPROVE\";\n ZoomApprovalType[ZoomApprovalType[\"ZOOM_APPROVAL_TYPE_MANUALLY_APPROVE\"] = 2] = \"ZOOM_APPROVAL_TYPE_MANUALLY_APPROVE\";\n ZoomApprovalType[ZoomApprovalType[\"ZOOM_APPROVAL_TYPE_NO_REGISTRATION_REQUIRED\"] = 3] = \"ZOOM_APPROVAL_TYPE_NO_REGISTRATION_REQUIRED\";\n return ZoomApprovalType;\n}(ZoomApprovalType || {});\nvar ZoomMeetingRecurrenceType = /*#__PURE__*/function (ZoomMeetingRecurrenceType) {\n ZoomMeetingRecurrenceType[ZoomMeetingRecurrenceType[\"ZOOM_MEETING_RECURRENCE_TYPE_INVALID\"] = 0] = \"ZOOM_MEETING_RECURRENCE_TYPE_INVALID\";\n ZoomMeetingRecurrenceType[ZoomMeetingRecurrenceType[\"ZOOM_MEETING_RECURRENCE_TYPE_DAILY\"] = 1] = \"ZOOM_MEETING_RECURRENCE_TYPE_DAILY\";\n ZoomMeetingRecurrenceType[ZoomMeetingRecurrenceType[\"ZOOM_MEETING_RECURRENCE_TYPE_WEEKLY\"] = 2] = \"ZOOM_MEETING_RECURRENCE_TYPE_WEEKLY\";\n ZoomMeetingRecurrenceType[ZoomMeetingRecurrenceType[\"ZOOM_MEETING_RECURRENCE_TYPE_MONTHLY\"] = 3] = \"ZOOM_MEETING_RECURRENCE_TYPE_MONTHLY\";\n return ZoomMeetingRecurrenceType;\n}(ZoomMeetingRecurrenceType || {});\nvar ZoomMeetingType = /*#__PURE__*/function (ZoomMeetingType) {\n ZoomMeetingType[ZoomMeetingType[\"ZOOM_MEETING_TYPE_INVALID\"] = 0] = \"ZOOM_MEETING_TYPE_INVALID\";\n ZoomMeetingType[ZoomMeetingType[\"ZOOM_MEETING_TYPE_INSTANT\"] = 1] = \"ZOOM_MEETING_TYPE_INSTANT\";\n ZoomMeetingType[ZoomMeetingType[\"ZOOM_MEETING_TYPE_SCHEDULED\"] = 2] = \"ZOOM_MEETING_TYPE_SCHEDULED\";\n ZoomMeetingType[ZoomMeetingType[\"ZOOM_MEETING_TYPE_RECURRING_NO_FIXED\"] = 3] = \"ZOOM_MEETING_TYPE_RECURRING_NO_FIXED\";\n ZoomMeetingType[ZoomMeetingType[\"ZOOM_MEETING_TYPE_RECURRING_FIXED\"] = 8] = \"ZOOM_MEETING_TYPE_RECURRING_FIXED\";\n return ZoomMeetingType;\n}(ZoomMeetingType || {});\nvar ZoomMonthlyWeek = /*#__PURE__*/function (ZoomMonthlyWeek) {\n ZoomMonthlyWeek[ZoomMonthlyWeek[\"ZOOM_MONTHLY_WEEK_INVALD\"] = 0] = \"ZOOM_MONTHLY_WEEK_INVALD\";\n ZoomMonthlyWeek[ZoomMonthlyWeek[\"ZOOM_MONTHLY_WEEK_LAST_WEEK\"] = -1] = \"ZOOM_MONTHLY_WEEK_LAST_WEEK\";\n ZoomMonthlyWeek[ZoomMonthlyWeek[\"ZOOM_MONTHLY_WEEK_FIRST_WEEK\"] = 1] = \"ZOOM_MONTHLY_WEEK_FIRST_WEEK\";\n ZoomMonthlyWeek[ZoomMonthlyWeek[\"ZOOM_MONTHLY_WEEK_SECOND_WEEK\"] = 2] = \"ZOOM_MONTHLY_WEEK_SECOND_WEEK\";\n ZoomMonthlyWeek[ZoomMonthlyWeek[\"ZOOM_MONTHLY_WEEK_THIRD_WEEK\"] = 3] = \"ZOOM_MONTHLY_WEEK_THIRD_WEEK\";\n ZoomMonthlyWeek[ZoomMonthlyWeek[\"ZOOM_MONTHLY_WEEK_FOURTH_WEEK\"] = 4] = \"ZOOM_MONTHLY_WEEK_FOURTH_WEEK\";\n return ZoomMonthlyWeek;\n}(ZoomMonthlyWeek || {});\nvar ZoomMonthlyWeekDay = /*#__PURE__*/function (ZoomMonthlyWeekDay) {\n ZoomMonthlyWeekDay[ZoomMonthlyWeekDay[\"ZOOM_MONTHLY_WEEK_DAY_INVALID\"] = 0] = \"ZOOM_MONTHLY_WEEK_DAY_INVALID\";\n ZoomMonthlyWeekDay[ZoomMonthlyWeekDay[\"ZOOM_MONTHLY_WEEK_DAY_SUNDAY\"] = 1] = \"ZOOM_MONTHLY_WEEK_DAY_SUNDAY\";\n ZoomMonthlyWeekDay[ZoomMonthlyWeekDay[\"ZOOM_MONTHLY_WEEK_DAY_MONDAY\"] = 2] = \"ZOOM_MONTHLY_WEEK_DAY_MONDAY\";\n ZoomMonthlyWeekDay[ZoomMonthlyWeekDay[\"ZOOM_MONTHLY_WEEK_DAY_TUESDAY\"] = 3] = \"ZOOM_MONTHLY_WEEK_DAY_TUESDAY\";\n ZoomMonthlyWeekDay[ZoomMonthlyWeekDay[\"ZOOM_MONTHLY_WEEK_DAY_WEDNESDAY\"] = 4] = \"ZOOM_MONTHLY_WEEK_DAY_WEDNESDAY\";\n ZoomMonthlyWeekDay[ZoomMonthlyWeekDay[\"ZOOM_MONTHLY_WEEK_DAY_THURSDAY\"] = 5] = \"ZOOM_MONTHLY_WEEK_DAY_THURSDAY\";\n ZoomMonthlyWeekDay[ZoomMonthlyWeekDay[\"ZOOM_MONTHLY_WEEK_DAY_FRIDAY\"] = 6] = \"ZOOM_MONTHLY_WEEK_DAY_FRIDAY\";\n ZoomMonthlyWeekDay[ZoomMonthlyWeekDay[\"ZOOM_MONTHLY_WEEK_DAY_SATURDAY\"] = 7] = \"ZOOM_MONTHLY_WEEK_DAY_SATURDAY\";\n return ZoomMonthlyWeekDay;\n}(ZoomMonthlyWeekDay || {});\nvar ZoomRegistrationType = /*#__PURE__*/function (ZoomRegistrationType) {\n ZoomRegistrationType[ZoomRegistrationType[\"ZOOM_REGISTRATION_TYPE_INVALID\"] = 0] = \"ZOOM_REGISTRATION_TYPE_INVALID\";\n ZoomRegistrationType[ZoomRegistrationType[\"ZOOM_REGISTRATION_TYPE_RESGITER_ONCE_FOR_ALL\"] = 1] = \"ZOOM_REGISTRATION_TYPE_RESGITER_ONCE_FOR_ALL\";\n ZoomRegistrationType[ZoomRegistrationType[\"ZOOM_REGISTRATION_TYPE_REGISTER_FOR_EACH\"] = 2] = \"ZOOM_REGISTRATION_TYPE_REGISTER_FOR_EACH\";\n ZoomRegistrationType[ZoomRegistrationType[\"ZOOM_REGISTRATION_TYPE_RESGITER_ONCE_FOR_ONE_OR_MORE\"] = 3] = \"ZOOM_REGISTRATION_TYPE_RESGITER_ONCE_FOR_ONE_OR_MORE\";\n return ZoomRegistrationType;\n}(ZoomRegistrationType || {});\nvar ZoomWeeklyDay = /*#__PURE__*/function (ZoomWeeklyDay) {\n ZoomWeeklyDay[ZoomWeeklyDay[\"ZOOM_WEEKLY_DAY_INVALID\"] = 0] = \"ZOOM_WEEKLY_DAY_INVALID\";\n ZoomWeeklyDay[ZoomWeeklyDay[\"ZOOM_WEEKLY_DAY_SUNDAY\"] = 1] = \"ZOOM_WEEKLY_DAY_SUNDAY\";\n ZoomWeeklyDay[ZoomWeeklyDay[\"ZOOM_WEEKLY_DAY_MONDAY\"] = 2] = \"ZOOM_WEEKLY_DAY_MONDAY\";\n ZoomWeeklyDay[ZoomWeeklyDay[\"ZOOM_WEEKLY_DAY_TUESDAY\"] = 3] = \"ZOOM_WEEKLY_DAY_TUESDAY\";\n ZoomWeeklyDay[ZoomWeeklyDay[\"ZOOM_WEEKLY_DAY_WEDNESDAY\"] = 4] = \"ZOOM_WEEKLY_DAY_WEDNESDAY\";\n ZoomWeeklyDay[ZoomWeeklyDay[\"ZOOM_WEEKLY_DAY_THURSDAY\"] = 5] = \"ZOOM_WEEKLY_DAY_THURSDAY\";\n ZoomWeeklyDay[ZoomWeeklyDay[\"ZOOM_WEEKLY_DAY_FRIDAY\"] = 6] = \"ZOOM_WEEKLY_DAY_FRIDAY\";\n ZoomWeeklyDay[ZoomWeeklyDay[\"ZOOM_WEEKLY_DAY_SATURDAY\"] = 7] = \"ZOOM_WEEKLY_DAY_SATURDAY\";\n return ZoomWeeklyDay;\n}(ZoomWeeklyDay || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar CalendarType = /*#__PURE__*/function (CalendarType) {\n CalendarType[CalendarType[\"CALENDAR_TYPE_INVALID\"] = 0] = \"CALENDAR_TYPE_INVALID\";\n CalendarType[CalendarType[\"CALENDAR_TYPE_PERSONAL\"] = 1] = \"CALENDAR_TYPE_PERSONAL\";\n CalendarType[CalendarType[\"CALENDAR_TYPE_GROUP\"] = 2] = \"CALENDAR_TYPE_GROUP\";\n return CalendarType;\n}(CalendarType || {});\nvar FormFieldType = /*#__PURE__*/function (FormFieldType) {\n FormFieldType[FormFieldType[\"FORM_FIELD_TYPE_INVALID\"] = 0] = \"FORM_FIELD_TYPE_INVALID\";\n FormFieldType[FormFieldType[\"FORM_FIELD_TYPE_TEXT\"] = 1] = \"FORM_FIELD_TYPE_TEXT\";\n FormFieldType[FormFieldType[\"FORM_FIELD_TYPE_EMAIL\"] = 2] = \"FORM_FIELD_TYPE_EMAIL\";\n FormFieldType[FormFieldType[\"FORM_FIELD_TYPE_PHONE_NUMBER\"] = 3] = \"FORM_FIELD_TYPE_PHONE_NUMBER\";\n FormFieldType[FormFieldType[\"FORM_FIELD_TYPE_SELECT\"] = 4] = \"FORM_FIELD_TYPE_SELECT\";\n return FormFieldType;\n}(FormFieldType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar MeetingLocationType = /*#__PURE__*/function (MeetingLocationType) {\n MeetingLocationType[MeetingLocationType[\"VIDEO\"] = 0] = \"VIDEO\";\n MeetingLocationType[MeetingLocationType[\"IN_PERSON_USER_SITE\"] = 1] = \"IN_PERSON_USER_SITE\";\n MeetingLocationType[MeetingLocationType[\"IN_PERSON_CLIENT_SITE\"] = 2] = \"IN_PERSON_CLIENT_SITE\";\n return MeetingLocationType;\n}(MeetingLocationType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar DayOfWeek = /*#__PURE__*/function (DayOfWeek) {\n DayOfWeek[DayOfWeek[\"DAY_OF_WEEK_UNSPECIFIED\"] = 0] = \"DAY_OF_WEEK_UNSPECIFIED\";\n DayOfWeek[DayOfWeek[\"MONDAY\"] = 1] = \"MONDAY\";\n DayOfWeek[DayOfWeek[\"TUESDAY\"] = 2] = \"TUESDAY\";\n DayOfWeek[DayOfWeek[\"WEDNESDAY\"] = 3] = \"WEDNESDAY\";\n DayOfWeek[DayOfWeek[\"THURSDAY\"] = 4] = \"THURSDAY\";\n DayOfWeek[DayOfWeek[\"FRIDAY\"] = 5] = \"FRIDAY\";\n DayOfWeek[DayOfWeek[\"SATURDAY\"] = 6] = \"SATURDAY\";\n DayOfWeek[DayOfWeek[\"SUNDAY\"] = 7] = \"SUNDAY\";\n return DayOfWeek;\n}(DayOfWeek || {});\n// *********************************\n\nfunction enumStringToValue$b(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass MeetingSourceInfo {\n static fromProto(proto) {\n let m = new MeetingSourceInfo();\n m = Object.assign(m, proto);\n if (proto.source) {\n m.source = enumStringToValue$b(MeetingSource, proto.source);\n }\n if (proto.status) {\n m.status = enumStringToValue$b(MeetingSourceStatus, proto.status);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.source !== 'undefined') {\n toReturn['source'] = this.source;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.connectDisconnectUrl !== 'undefined') {\n toReturn['connectDisconnectUrl'] = this.connectDisconnectUrl;\n }\n return toReturn;\n }\n}\nclass MeetingSourceListRequest {\n static fromProto(proto) {\n let m = new MeetingSourceListRequest();\n m = Object.assign(m, proto);\n if (proto.queriedSources) {\n m.queriedSources = proto.queriedSources.map(MeetingSourceQuery.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.iamUserId !== 'undefined') {\n toReturn['iamUserId'] = this.iamUserId;\n }\n if (typeof this.queriedSources !== 'undefined' && this.queriedSources !== null) {\n toReturn['queriedSources'] = 'toApiJson' in this.queriedSources ? this.queriedSources.toApiJson() : this.queriedSources;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.origin !== 'undefined') {\n toReturn['origin'] = this.origin;\n }\n return toReturn;\n }\n}\nclass MeetingSourceListResponse {\n static fromProto(proto) {\n let m = new MeetingSourceListResponse();\n m = Object.assign(m, proto);\n if (proto.sourceInfo) {\n m.sourceInfo = proto.sourceInfo.map(MeetingSourceInfo.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.iamUserId !== 'undefined') {\n toReturn['iamUserId'] = this.iamUserId;\n }\n if (typeof this.sourceInfo !== 'undefined' && this.sourceInfo !== null) {\n toReturn['sourceInfo'] = 'toApiJson' in this.sourceInfo ? this.sourceInfo.toApiJson() : this.sourceInfo;\n }\n return toReturn;\n }\n}\nclass MeetingSourceQuery {\n static fromProto(proto) {\n let m = new MeetingSourceQuery();\n m = Object.assign(m, proto);\n if (proto.source) {\n m.source = enumStringToValue$b(MeetingSource, proto.source);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.source !== 'undefined') {\n toReturn['source'] = this.source;\n }\n if (typeof this.connectNextUrl !== 'undefined') {\n toReturn['connectNextUrl'] = this.connectNextUrl;\n }\n if (typeof this.disconnectNextUrl !== 'undefined') {\n toReturn['disconnectNextUrl'] = this.disconnectNextUrl;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$a(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass CreateZoomMeetingRequest {\n static fromProto(proto) {\n let m = new CreateZoomMeetingRequest();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue$a(ZoomMeetingType, proto.type);\n }\n if (proto.duration) {\n m.duration = parseInt(proto.duration, 10);\n }\n if (proto.trackingFields) {\n m.trackingFields = proto.trackingFields.map(ZoomMeetingTrackingField.fromProto);\n }\n if (proto.recurrence) {\n m.recurrence = ZoomMeetingRecurrence.fromProto(proto.recurrence);\n }\n if (proto.settings) {\n m.settings = ZoomMeetingSettings.fromProto(proto.settings);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.iamUserId !== 'undefined') {\n toReturn['iamUserId'] = this.iamUserId;\n }\n if (typeof this.topic !== 'undefined') {\n toReturn['topic'] = this.topic;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.startTime !== 'undefined') {\n toReturn['startTime'] = this.startTime;\n }\n if (typeof this.duration !== 'undefined') {\n toReturn['duration'] = this.duration;\n }\n if (typeof this.timezone !== 'undefined') {\n toReturn['timezone'] = this.timezone;\n }\n if (typeof this.password !== 'undefined') {\n toReturn['password'] = this.password;\n }\n if (typeof this.agenda !== 'undefined') {\n toReturn['agenda'] = this.agenda;\n }\n if (typeof this.trackingFields !== 'undefined' && this.trackingFields !== null) {\n toReturn['trackingFields'] = 'toApiJson' in this.trackingFields ? this.trackingFields.toApiJson() : this.trackingFields;\n }\n if (typeof this.recurrence !== 'undefined' && this.recurrence !== null) {\n toReturn['recurrence'] = 'toApiJson' in this.recurrence ? this.recurrence.toApiJson() : this.recurrence;\n }\n if (typeof this.settings !== 'undefined' && this.settings !== null) {\n toReturn['settings'] = 'toApiJson' in this.settings ? this.settings.toApiJson() : this.settings;\n }\n return toReturn;\n }\n}\nclass CreateZoomMeetingResponse {\n static fromProto(proto) {\n let m = new CreateZoomMeetingResponse();\n m = Object.assign(m, proto);\n if (proto.meetingId) {\n m.meetingId = parseInt(proto.meetingId, 10);\n }\n if (proto.type) {\n m.type = enumStringToValue$a(ZoomMeetingType, proto.type);\n }\n if (proto.duration) {\n m.duration = parseInt(proto.duration, 10);\n }\n if (proto.pmi) {\n m.pmi = parseInt(proto.pmi, 10);\n }\n if (proto.trackingFields) {\n m.trackingFields = proto.trackingFields.map(ZoomMeetingTrackingField.fromProto);\n }\n if (proto.occurrences) {\n m.occurrences = proto.occurrences.map(ZoomOccurrence.fromProto);\n }\n if (proto.settings) {\n m.settings = ZoomMeetingSettings.fromProto(proto.settings);\n }\n if (proto.recurrence) {\n m.recurrence = ZoomMeetingRecurrence.fromProto(proto.recurrence);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.iamUserId !== 'undefined') {\n toReturn['iamUserId'] = this.iamUserId;\n }\n if (typeof this.meetingId !== 'undefined') {\n toReturn['meetingId'] = this.meetingId;\n }\n if (typeof this.topic !== 'undefined') {\n toReturn['topic'] = this.topic;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.startTime !== 'undefined') {\n toReturn['startTime'] = this.startTime;\n }\n if (typeof this.duration !== 'undefined') {\n toReturn['duration'] = this.duration;\n }\n if (typeof this.timezone !== 'undefined') {\n toReturn['timezone'] = this.timezone;\n }\n if (typeof this.createdAt !== 'undefined') {\n toReturn['createdAt'] = this.createdAt;\n }\n if (typeof this.agenda !== 'undefined') {\n toReturn['agenda'] = this.agenda;\n }\n if (typeof this.startUrl !== 'undefined') {\n toReturn['startUrl'] = this.startUrl;\n }\n if (typeof this.joinUrl !== 'undefined') {\n toReturn['joinUrl'] = this.joinUrl;\n }\n if (typeof this.password !== 'undefined') {\n toReturn['password'] = this.password;\n }\n if (typeof this.h323Password !== 'undefined') {\n toReturn['h323Password'] = this.h323Password;\n }\n if (typeof this.pmi !== 'undefined') {\n toReturn['pmi'] = this.pmi;\n }\n if (typeof this.trackingFields !== 'undefined' && this.trackingFields !== null) {\n toReturn['trackingFields'] = 'toApiJson' in this.trackingFields ? this.trackingFields.toApiJson() : this.trackingFields;\n }\n if (typeof this.occurrences !== 'undefined' && this.occurrences !== null) {\n toReturn['occurrences'] = 'toApiJson' in this.occurrences ? this.occurrences.toApiJson() : this.occurrences;\n }\n if (typeof this.settings !== 'undefined' && this.settings !== null) {\n toReturn['settings'] = 'toApiJson' in this.settings ? this.settings.toApiJson() : this.settings;\n }\n if (typeof this.recurrence !== 'undefined' && this.recurrence !== null) {\n toReturn['recurrence'] = 'toApiJson' in this.recurrence ? this.recurrence.toApiJson() : this.recurrence;\n }\n return toReturn;\n }\n}\nclass ZoomMeetingRecurrence {\n static fromProto(proto) {\n let m = new ZoomMeetingRecurrence();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue$a(ZoomMeetingRecurrenceType, proto.type);\n }\n if (proto.repeatInterval) {\n m.repeatInterval = parseInt(proto.repeatInterval, 10);\n }\n if (proto.monthlyDay) {\n m.monthlyDay = parseInt(proto.monthlyDay, 10);\n }\n if (proto.monthlyWeek) {\n m.monthlyWeek = enumStringToValue$a(ZoomMonthlyWeek, proto.monthlyWeek);\n }\n if (proto.monthlyWeekDay) {\n m.monthlyWeekDay = enumStringToValue$a(ZoomMonthlyWeekDay, proto.monthlyWeekDay);\n }\n if (proto.endTimes) {\n m.endTimes = parseInt(proto.endTimes, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.repeatInterval !== 'undefined') {\n toReturn['repeatInterval'] = this.repeatInterval;\n }\n if (typeof this.weeklyDays !== 'undefined') {\n toReturn['weeklyDays'] = this.weeklyDays;\n }\n if (typeof this.monthlyDay !== 'undefined') {\n toReturn['monthlyDay'] = this.monthlyDay;\n }\n if (typeof this.monthlyWeek !== 'undefined') {\n toReturn['monthlyWeek'] = this.monthlyWeek;\n }\n if (typeof this.monthlyWeekDay !== 'undefined') {\n toReturn['monthlyWeekDay'] = this.monthlyWeekDay;\n }\n if (typeof this.endTimes !== 'undefined') {\n toReturn['endTimes'] = this.endTimes;\n }\n if (typeof this.endDateTime !== 'undefined') {\n toReturn['endDateTime'] = this.endDateTime;\n }\n return toReturn;\n }\n}\nclass ZoomMeetingSettings {\n static fromProto(proto) {\n let m = new ZoomMeetingSettings();\n m = Object.assign(m, proto);\n if (proto.approvalType) {\n m.approvalType = enumStringToValue$a(ZoomApprovalType, proto.approvalType);\n }\n if (proto.registrationType) {\n m.registrationType = enumStringToValue$a(ZoomRegistrationType, proto.registrationType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostVideo !== 'undefined') {\n toReturn['hostVideo'] = this.hostVideo;\n }\n if (typeof this.participantVideo !== 'undefined') {\n toReturn['participantVideo'] = this.participantVideo;\n }\n if (typeof this.cnMeeting !== 'undefined') {\n toReturn['cnMeeting'] = this.cnMeeting;\n }\n if (typeof this.inMeeting !== 'undefined') {\n toReturn['inMeeting'] = this.inMeeting;\n }\n if (typeof this.joinBeforeHost !== 'undefined') {\n toReturn['joinBeforeHost'] = this.joinBeforeHost;\n }\n if (typeof this.muteUponEntry !== 'undefined') {\n toReturn['muteUponEntry'] = this.muteUponEntry;\n }\n if (typeof this.watermark !== 'undefined') {\n toReturn['watermark'] = this.watermark;\n }\n if (typeof this.usePmi !== 'undefined') {\n toReturn['usePmi'] = this.usePmi;\n }\n if (typeof this.approvalType !== 'undefined') {\n toReturn['approvalType'] = this.approvalType;\n }\n if (typeof this.registrationType !== 'undefined') {\n toReturn['registrationType'] = this.registrationType;\n }\n if (typeof this.audio !== 'undefined') {\n toReturn['audio'] = this.audio;\n }\n if (typeof this.autoRecording !== 'undefined') {\n toReturn['autoRecording'] = this.autoRecording;\n }\n if (typeof this.alternativeHosts !== 'undefined') {\n toReturn['alternativeHosts'] = this.alternativeHosts;\n }\n if (typeof this.closeRegistration !== 'undefined') {\n toReturn['closeRegistration'] = this.closeRegistration;\n }\n if (typeof this.waitingRoom !== 'undefined') {\n toReturn['waitingRoom'] = this.waitingRoom;\n }\n if (typeof this.globalDialInCountries !== 'undefined') {\n toReturn['globalDialInCountries'] = this.globalDialInCountries;\n }\n if (typeof this.contactName !== 'undefined') {\n toReturn['contactName'] = this.contactName;\n }\n if (typeof this.contactEmail !== 'undefined') {\n toReturn['contactEmail'] = this.contactEmail;\n }\n if (typeof this.registrationEmailNotification !== 'undefined') {\n toReturn['registrationEmailNotification'] = this.registrationEmailNotification;\n }\n if (typeof this.meetingAuthentication !== 'undefined') {\n toReturn['meetingAuthentication'] = this.meetingAuthentication;\n }\n if (typeof this.authenticationOptions !== 'undefined') {\n toReturn['authenticationOptions'] = this.authenticationOptions;\n }\n if (typeof this.authenticationDomains !== 'undefined') {\n toReturn['authenticationDomains'] = this.authenticationDomains;\n }\n if (typeof this.enforceLogin !== 'undefined') {\n toReturn['enforceLogin'] = this.enforceLogin;\n }\n if (typeof this.enforceLoginDomains !== 'undefined') {\n toReturn['enforceLoginDomains'] = this.enforceLoginDomains;\n }\n return toReturn;\n }\n}\nclass ZoomMeetingTrackingField {\n static fromProto(proto) {\n let m = new ZoomMeetingTrackingField();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.field !== 'undefined') {\n toReturn['field'] = this.field;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass ZoomOccurrence {\n static fromProto(proto) {\n let m = new ZoomOccurrence();\n m = Object.assign(m, proto);\n if (proto.duration) {\n m.duration = parseInt(proto.duration, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.occurrenceId !== 'undefined') {\n toReturn['occurrenceId'] = this.occurrenceId;\n }\n if (typeof this.startTime !== 'undefined') {\n toReturn['startTime'] = this.startTime;\n }\n if (typeof this.duration !== 'undefined') {\n toReturn['duration'] = this.duration;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$9(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass GoogleMeetConferenceData {\n static fromProto(proto) {\n let m = new GoogleMeetConferenceData();\n m = Object.assign(m, proto);\n if (proto.conferenceSolution) {\n m.conferenceSolution = GoogleMeetConferenceSolution.fromProto(proto.conferenceSolution);\n }\n if (proto.createRequest) {\n m.createRequest = GoogleMeetCreateConferenceRequest.fromProto(proto.createRequest);\n }\n if (proto.entryPoints) {\n m.entryPoints = proto.entryPoints.map(GoogleMeetEntryPoint.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conferenceId !== 'undefined') {\n toReturn['conferenceId'] = this.conferenceId;\n }\n if (typeof this.conferenceSolution !== 'undefined' && this.conferenceSolution !== null) {\n toReturn['conferenceSolution'] = 'toApiJson' in this.conferenceSolution ? this.conferenceSolution.toApiJson() : this.conferenceSolution;\n }\n if (typeof this.createRequest !== 'undefined' && this.createRequest !== null) {\n toReturn['createRequest'] = 'toApiJson' in this.createRequest ? this.createRequest.toApiJson() : this.createRequest;\n }\n if (typeof this.entryPoints !== 'undefined' && this.entryPoints !== null) {\n toReturn['entryPoints'] = 'toApiJson' in this.entryPoints ? this.entryPoints.toApiJson() : this.entryPoints;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.signature !== 'undefined') {\n toReturn['signature'] = this.signature;\n }\n return toReturn;\n }\n}\nclass GoogleMeetConferenceRequestStatus {\n static fromProto(proto) {\n let m = new GoogleMeetConferenceRequestStatus();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.statusCode !== 'undefined') {\n toReturn['statusCode'] = this.statusCode;\n }\n return toReturn;\n }\n}\nclass GoogleMeetConferenceSolution {\n static fromProto(proto) {\n let m = new GoogleMeetConferenceSolution();\n m = Object.assign(m, proto);\n if (proto.key) {\n m.key = GoogleMeetConferenceSolutionKey.fromProto(proto.key);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.iconUri !== 'undefined') {\n toReturn['iconUri'] = this.iconUri;\n }\n if (typeof this.key !== 'undefined' && this.key !== null) {\n toReturn['key'] = 'toApiJson' in this.key ? this.key.toApiJson() : this.key;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass GoogleMeetConferenceSolutionKey {\n static fromProto(proto) {\n let m = new GoogleMeetConferenceSolutionKey();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n return toReturn;\n }\n}\nclass GoogleMeetCreateConferenceRequest {\n static fromProto(proto) {\n let m = new GoogleMeetCreateConferenceRequest();\n m = Object.assign(m, proto);\n if (proto.conferenceSolutionKey) {\n m.conferenceSolutionKey = GoogleMeetConferenceSolutionKey.fromProto(proto.conferenceSolutionKey);\n }\n if (proto.status) {\n m.status = GoogleMeetConferenceRequestStatus.fromProto(proto.status);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conferenceSolutionKey !== 'undefined' && this.conferenceSolutionKey !== null) {\n toReturn['conferenceSolutionKey'] = 'toApiJson' in this.conferenceSolutionKey ? this.conferenceSolutionKey.toApiJson() : this.conferenceSolutionKey;\n }\n if (typeof this.requestId !== 'undefined') {\n toReturn['requestId'] = this.requestId;\n }\n if (typeof this.status !== 'undefined' && this.status !== null) {\n toReturn['status'] = 'toApiJson' in this.status ? this.status.toApiJson() : this.status;\n }\n return toReturn;\n }\n}\nclass GoogleMeetCreateMeetingRequest {\n static fromProto(proto) {\n let m = new GoogleMeetCreateMeetingRequest();\n m = Object.assign(m, proto);\n if (proto.meeting) {\n m.meeting = GoogleMeetMeeting.fromProto(proto.meeting);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calenderId !== 'undefined') {\n toReturn['calenderId'] = this.calenderId;\n }\n if (typeof this.meeting !== 'undefined' && this.meeting !== null) {\n toReturn['meeting'] = 'toApiJson' in this.meeting ? this.meeting.toApiJson() : this.meeting;\n }\n return toReturn;\n }\n}\nclass GoogleMeetCreateMeetingResponse {\n static fromProto(proto) {\n let m = new GoogleMeetCreateMeetingResponse();\n m = Object.assign(m, proto);\n if (proto.meeting) {\n m.meeting = GoogleMeetMeeting.fromProto(proto.meeting);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.iamUserId !== 'undefined') {\n toReturn['iamUserId'] = this.iamUserId;\n }\n if (typeof this.calenderId !== 'undefined') {\n toReturn['calenderId'] = this.calenderId;\n }\n if (typeof this.meeting !== 'undefined' && this.meeting !== null) {\n toReturn['meeting'] = 'toApiJson' in this.meeting ? this.meeting.toApiJson() : this.meeting;\n }\n return toReturn;\n }\n}\nclass GoogleMeetEntryPoint {\n static fromProto(proto) {\n let m = new GoogleMeetEntryPoint();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accessCode !== 'undefined') {\n toReturn['accessCode'] = this.accessCode;\n }\n if (typeof this.entryPointFeatures !== 'undefined') {\n toReturn['entryPointFeatures'] = this.entryPointFeatures;\n }\n if (typeof this.entryPointType !== 'undefined') {\n toReturn['entryPointType'] = this.entryPointType;\n }\n if (typeof this.label !== 'undefined') {\n toReturn['label'] = this.label;\n }\n if (typeof this.meetingCode !== 'undefined') {\n toReturn['meetingCode'] = this.meetingCode;\n }\n if (typeof this.passcode !== 'undefined') {\n toReturn['passcode'] = this.passcode;\n }\n if (typeof this.password !== 'undefined') {\n toReturn['password'] = this.password;\n }\n if (typeof this.pin !== 'undefined') {\n toReturn['pin'] = this.pin;\n }\n if (typeof this.regionCode !== 'undefined') {\n toReturn['regionCode'] = this.regionCode;\n }\n if (typeof this.uri !== 'undefined') {\n toReturn['uri'] = this.uri;\n }\n return toReturn;\n }\n}\nclass GoogleMeetMeeting {\n static fromProto(proto) {\n let m = new GoogleMeetMeeting();\n m = Object.assign(m, proto);\n if (proto.attendees) {\n m.attendees = proto.attendees.map(GoogleMeetMeetingAttendee.fromProto);\n }\n if (proto.conferenceData) {\n m.conferenceData = GoogleMeetConferenceData.fromProto(proto.conferenceData);\n }\n if (proto.end) {\n m.end = GoogleMeetMeetingDateTime.fromProto(proto.end);\n }\n if (proto.originalStartTime) {\n m.originalStartTime = GoogleMeetMeetingDateTime.fromProto(proto.originalStartTime);\n }\n if (proto.reminders) {\n m.reminders = GoogleMeetMeetingReminders.fromProto(proto.reminders);\n }\n if (proto.sequence) {\n m.sequence = parseInt(proto.sequence, 10);\n }\n if (proto.start) {\n m.start = GoogleMeetMeetingDateTime.fromProto(proto.start);\n }\n if (proto.creator) {\n m.creator = GoogleMeetMeetingCreator.fromProto(proto.creator);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.anyoneCanAddSelf !== 'undefined') {\n toReturn['anyoneCanAddSelf'] = this.anyoneCanAddSelf;\n }\n if (typeof this.attendees !== 'undefined' && this.attendees !== null) {\n toReturn['attendees'] = 'toApiJson' in this.attendees ? this.attendees.toApiJson() : this.attendees;\n }\n if (typeof this.attendeesOmitted !== 'undefined') {\n toReturn['attendeesOmitted'] = this.attendeesOmitted;\n }\n if (typeof this.colorId !== 'undefined') {\n toReturn['colorId'] = this.colorId;\n }\n if (typeof this.conferenceData !== 'undefined' && this.conferenceData !== null) {\n toReturn['conferenceData'] = 'toApiJson' in this.conferenceData ? this.conferenceData.toApiJson() : this.conferenceData;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.end !== 'undefined' && this.end !== null) {\n toReturn['end'] = 'toApiJson' in this.end ? this.end.toApiJson() : this.end;\n }\n if (typeof this.endTimeUnspecified !== 'undefined') {\n toReturn['endTimeUnspecified'] = this.endTimeUnspecified;\n }\n if (typeof this.etag !== 'undefined') {\n toReturn['etag'] = this.etag;\n }\n if (typeof this.icalUid !== 'undefined') {\n toReturn['icalUid'] = this.icalUid;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.kind !== 'undefined') {\n toReturn['kind'] = this.kind;\n }\n if (typeof this.location !== 'undefined') {\n toReturn['location'] = this.location;\n }\n if (typeof this.locked !== 'undefined') {\n toReturn['locked'] = this.locked;\n }\n if (typeof this.originalStartTime !== 'undefined' && this.originalStartTime !== null) {\n toReturn['originalStartTime'] = 'toApiJson' in this.originalStartTime ? this.originalStartTime.toApiJson() : this.originalStartTime;\n }\n if (typeof this.recurrence !== 'undefined') {\n toReturn['recurrence'] = this.recurrence;\n }\n if (typeof this.recurringMeetingId !== 'undefined') {\n toReturn['recurringMeetingId'] = this.recurringMeetingId;\n }\n if (typeof this.reminders !== 'undefined' && this.reminders !== null) {\n toReturn['reminders'] = 'toApiJson' in this.reminders ? this.reminders.toApiJson() : this.reminders;\n }\n if (typeof this.sequence !== 'undefined') {\n toReturn['sequence'] = this.sequence;\n }\n if (typeof this.start !== 'undefined' && this.start !== null) {\n toReturn['start'] = 'toApiJson' in this.start ? this.start.toApiJson() : this.start;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.summary !== 'undefined') {\n toReturn['summary'] = this.summary;\n }\n if (typeof this.transparency !== 'undefined') {\n toReturn['transparency'] = this.transparency;\n }\n if (typeof this.visibility !== 'undefined') {\n toReturn['visibility'] = this.visibility;\n }\n if (typeof this.hangoutLink !== 'undefined') {\n toReturn['hangoutLink'] = this.hangoutLink;\n }\n if (typeof this.htmlLink !== 'undefined') {\n toReturn['htmlLink'] = this.htmlLink;\n }\n if (typeof this.created !== 'undefined') {\n toReturn['created'] = this.created;\n }\n if (typeof this.creator !== 'undefined' && this.creator !== null) {\n toReturn['creator'] = 'toApiJson' in this.creator ? this.creator.toApiJson() : this.creator;\n }\n if (typeof this.updated !== 'undefined') {\n toReturn['updated'] = this.updated;\n }\n return toReturn;\n }\n}\nclass GoogleMeetMeetingAttendee {\n static fromProto(proto) {\n let m = new GoogleMeetMeetingAttendee();\n m = Object.assign(m, proto);\n if (proto.additionalGuests) {\n m.additionalGuests = parseInt(proto.additionalGuests, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.additionalGuests !== 'undefined') {\n toReturn['additionalGuests'] = this.additionalGuests;\n }\n if (typeof this.comment !== 'undefined') {\n toReturn['comment'] = this.comment;\n }\n if (typeof this.displayName !== 'undefined') {\n toReturn['displayName'] = this.displayName;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.optional !== 'undefined') {\n toReturn['optional'] = this.optional;\n }\n if (typeof this.organizer !== 'undefined') {\n toReturn['organizer'] = this.organizer;\n }\n if (typeof this.resource !== 'undefined') {\n toReturn['resource'] = this.resource;\n }\n if (typeof this.responseStatus !== 'undefined') {\n toReturn['responseStatus'] = this.responseStatus;\n }\n if (typeof this.self !== 'undefined') {\n toReturn['self'] = this.self;\n }\n return toReturn;\n }\n}\nclass GoogleMeetMeetingCreator {\n static fromProto(proto) {\n let m = new GoogleMeetMeetingCreator();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.displayName !== 'undefined') {\n toReturn['displayName'] = this.displayName;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.self !== 'undefined') {\n toReturn['self'] = this.self;\n }\n return toReturn;\n }\n}\nclass GoogleMeetMeetingDateTime {\n static fromProto(proto) {\n let m = new GoogleMeetMeetingDateTime();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.date !== 'undefined') {\n toReturn['date'] = this.date;\n }\n if (typeof this.dateTime !== 'undefined') {\n toReturn['dateTime'] = this.dateTime;\n }\n if (typeof this.timeZone !== 'undefined') {\n toReturn['timeZone'] = this.timeZone;\n }\n return toReturn;\n }\n}\nclass GoogleMeetMeetingReminder {\n static fromProto(proto) {\n let m = new GoogleMeetMeetingReminder();\n m = Object.assign(m, proto);\n if (proto.minutes) {\n m.minutes = parseInt(proto.minutes, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.method !== 'undefined') {\n toReturn['method'] = this.method;\n }\n if (typeof this.minutes !== 'undefined') {\n toReturn['minutes'] = this.minutes;\n }\n return toReturn;\n }\n}\nclass GoogleMeetMeetingReminders {\n static fromProto(proto) {\n let m = new GoogleMeetMeetingReminders();\n m = Object.assign(m, proto);\n if (proto.overrides) {\n m.overrides = proto.overrides.map(GoogleMeetMeetingReminder.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.overrides !== 'undefined' && this.overrides !== null) {\n toReturn['overrides'] = 'toApiJson' in this.overrides ? this.overrides.toApiJson() : this.overrides;\n }\n if (typeof this.useDefault !== 'undefined') {\n toReturn['useDefault'] = this.useDefault;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$8(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Answer {\n static fromProto(proto) {\n let m = new Answer();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue$8(FormFieldType, proto.type);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.label !== 'undefined') {\n toReturn['label'] = this.label;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.answer !== 'undefined') {\n toReturn['answer'] = this.answer;\n }\n return toReturn;\n }\n}\nclass Answers {\n static fromProto(proto) {\n let m = new Answers();\n m = Object.assign(m, proto);\n if (proto.formAnswers) {\n m.formAnswers = proto.formAnswers.map(Answer.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.formAnswers !== 'undefined' && this.formAnswers !== null) {\n toReturn['formAnswers'] = 'toApiJson' in this.formAnswers ? this.formAnswers.toApiJson() : this.formAnswers;\n }\n return toReturn;\n }\n}\nclass CalendarApplicationContextEntry {\n static fromProto(proto) {\n let m = new CalendarApplicationContextEntry();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass Attachment {\n static fromProto(proto) {\n let m = new Attachment();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.fileTitle !== 'undefined') {\n toReturn['fileTitle'] = this.fileTitle;\n }\n if (typeof this.fileUrl !== 'undefined') {\n toReturn['fileUrl'] = this.fileUrl;\n }\n if (typeof this.fileType !== 'undefined') {\n toReturn['fileType'] = this.fileType;\n }\n return toReturn;\n }\n}\nclass Attendee {\n static fromProto(proto) {\n let m = new Attendee();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.firstName !== 'undefined') {\n toReturn['firstName'] = this.firstName;\n }\n if (typeof this.lastName !== 'undefined') {\n toReturn['lastName'] = this.lastName;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n if (typeof this.timeZone !== 'undefined') {\n toReturn['timeZone'] = this.timeZone;\n }\n if (typeof this.isPrimary !== 'undefined') {\n toReturn['isPrimary'] = this.isPrimary;\n }\n return toReturn;\n }\n}\nclass Calendar {\n static fromProto(proto) {\n let m = new Calendar();\n m = Object.assign(m, proto);\n if (proto.applicationContext) {\n m.applicationContext = Object.keys(proto.applicationContext).reduce((obj, k) => {\n obj[k] = proto.applicationContext[k];\n return obj;\n }, {});\n }\n if (proto.calendarType) {\n m.calendarType = enumStringToValue$8(CalendarType, proto.calendarType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.displayName !== 'undefined') {\n toReturn['displayName'] = this.displayName;\n }\n if (typeof this.displayProfileUrl !== 'undefined') {\n toReturn['displayProfileUrl'] = this.displayProfileUrl;\n }\n if (typeof this.displayLogoUrl !== 'undefined') {\n toReturn['displayLogoUrl'] = this.displayLogoUrl;\n }\n if (typeof this.bookingUrl !== 'undefined') {\n toReturn['bookingUrl'] = this.bookingUrl;\n }\n if (typeof this.slug !== 'undefined') {\n toReturn['slug'] = this.slug;\n }\n if (typeof this.externalId !== 'undefined') {\n toReturn['externalId'] = this.externalId;\n }\n if (typeof this.creatorUserId !== 'undefined') {\n toReturn['creatorUserId'] = this.creatorUserId;\n }\n if (typeof this.hostUserIds !== 'undefined') {\n toReturn['hostUserIds'] = this.hostUserIds;\n }\n if (typeof this.applicationContext !== 'undefined' && this.applicationContext !== null) {\n toReturn['applicationContext'] = 'toApiJson' in this.applicationContext ? this.applicationContext.toApiJson() : this.applicationContext;\n }\n if (typeof this.calendarType !== 'undefined') {\n toReturn['calendarType'] = this.calendarType;\n }\n if (typeof this.encodedApplicationContext !== 'undefined') {\n toReturn['encodedApplicationContext'] = this.encodedApplicationContext;\n }\n return toReturn;\n }\n}\nclass Contact {\n static fromProto(proto) {\n let m = new Contact();\n m = Object.assign(m, proto);\n if (proto.timeZone) {\n m.timeZone = TimeZone.fromProto(proto.timeZone);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.firstName !== 'undefined') {\n toReturn['firstName'] = this.firstName;\n }\n if (typeof this.lastName !== 'undefined') {\n toReturn['lastName'] = this.lastName;\n }\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.timeZone !== 'undefined' && this.timeZone !== null) {\n toReturn['timeZone'] = 'toApiJson' in this.timeZone ? this.timeZone.toApiJson() : this.timeZone;\n }\n if (typeof this.isPrimary !== 'undefined') {\n toReturn['isPrimary'] = this.isPrimary;\n }\n return toReturn;\n }\n}\nclass Host {\n static fromProto(proto) {\n let m = new Host();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.displayName !== 'undefined') {\n toReturn['displayName'] = this.displayName;\n }\n if (typeof this.displayProfileUrl !== 'undefined') {\n toReturn['displayProfileUrl'] = this.displayProfileUrl;\n }\n if (typeof this.displayLogoUrl !== 'undefined') {\n toReturn['displayLogoUrl'] = this.displayLogoUrl;\n }\n return toReturn;\n }\n}\nclass HostUser {\n static fromProto(proto) {\n let m = new HostUser();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.displayName !== 'undefined') {\n toReturn['displayName'] = this.displayName;\n }\n if (typeof this.isConfigured !== 'undefined') {\n toReturn['isConfigured'] = this.isConfigured;\n }\n return toReturn;\n }\n}\nclass PagedRequestOptions {\n static fromProto(proto) {\n let m = new PagedRequestOptions();\n m = Object.assign(m, proto);\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass PagedResponseMetadata {\n static fromProto(proto) {\n let m = new PagedResponseMetadata();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n return toReturn;\n }\n}\nclass Preferences {\n static fromProto(proto) {\n let m = new Preferences();\n m = Object.assign(m, proto);\n if (proto.timezone) {\n m.timezone = TimeZone.fromProto(proto.timezone);\n }\n if (proto.meetingIntegration) {\n m.meetingIntegration = enumStringToValue$8(MeetingSource, proto.meetingIntegration);\n }\n if (proto.availabilityIncrement) {\n m.availabilityIncrement = parseInt(proto.availabilityIncrement, 10);\n }\n if (proto.bufferDurationAfterMeeting) {\n m.bufferDurationAfterMeeting = parseInt(proto.bufferDurationAfterMeeting, 10);\n }\n if (proto.noticeTime) {\n m.noticeTime = parseInt(proto.noticeTime, 10);\n }\n if (proto.bufferDurationBeforeMeeting) {\n m.bufferDurationBeforeMeeting = parseInt(proto.bufferDurationBeforeMeeting, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.timezone !== 'undefined' && this.timezone !== null) {\n toReturn['timezone'] = 'toApiJson' in this.timezone ? this.timezone.toApiJson() : this.timezone;\n }\n if (typeof this.meetingIntegration !== 'undefined') {\n toReturn['meetingIntegration'] = this.meetingIntegration;\n }\n if (typeof this.availabilityIncrement !== 'undefined') {\n toReturn['availabilityIncrement'] = this.availabilityIncrement;\n }\n if (typeof this.bufferDurationAfterMeeting !== 'undefined') {\n toReturn['bufferDurationAfterMeeting'] = this.bufferDurationAfterMeeting;\n }\n if (typeof this.noticeTime !== 'undefined') {\n toReturn['noticeTime'] = this.noticeTime;\n }\n if (typeof this.calendarSlug !== 'undefined') {\n toReturn['calendarSlug'] = this.calendarSlug;\n }\n if (typeof this.bufferDurationBeforeMeeting !== 'undefined') {\n toReturn['bufferDurationBeforeMeeting'] = this.bufferDurationBeforeMeeting;\n }\n return toReturn;\n }\n}\nclass TimeRange {\n static fromProto(proto) {\n let m = new TimeRange();\n m = Object.assign(m, proto);\n if (proto.from) {\n m.from = TimeOfDay.fromProto(proto.from);\n }\n if (proto.to) {\n m.to = TimeOfDay.fromProto(proto.to);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.from !== 'undefined' && this.from !== null) {\n toReturn['from'] = 'toApiJson' in this.from ? this.from.toApiJson() : this.from;\n }\n if (typeof this.to !== 'undefined' && this.to !== null) {\n toReturn['to'] = 'toApiJson' in this.to ? this.to.toApiJson() : this.to;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$7(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Field {\n static fromProto(proto) {\n let m = new Field();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue$7(FormFieldType, proto.type);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.label !== 'undefined') {\n toReturn['label'] = this.label;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.required !== 'undefined') {\n toReturn['required'] = this.required;\n }\n return toReturn;\n }\n}\nclass Form {\n static fromProto(proto) {\n let m = new Form();\n m = Object.assign(m, proto);\n if (proto.fields) {\n m.fields = proto.fields.map(Field.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.fields !== 'undefined' && this.fields !== null) {\n toReturn['fields'] = 'toApiJson' in this.fields ? this.fields.toApiJson() : this.fields;\n }\n return toReturn;\n }\n}\nclass MeetingType {\n static fromProto(proto) {\n let m = new MeetingType();\n m = Object.assign(m, proto);\n if (proto.form) {\n m.form = Form.fromProto(proto.form);\n }\n if (proto.availabilityIncrement) {\n m.availabilityIncrement = parseInt(proto.availabilityIncrement, 10);\n }\n if (proto.bufferDurationAfterMeeting) {\n m.bufferDurationAfterMeeting = parseInt(proto.bufferDurationAfterMeeting, 10);\n }\n if (proto.noticeTime) {\n m.noticeTime = parseInt(proto.noticeTime, 10);\n }\n if (proto.locationType) {\n m.locationType = enumStringToValue$7(MeetingLocationType, proto.locationType);\n }\n if (proto.hostUsers) {\n m.hostUsers = proto.hostUsers.map(HostUser.fromProto);\n }\n if (proto.bufferDurationBeforeMeeting) {\n m.bufferDurationBeforeMeeting = parseInt(proto.bufferDurationBeforeMeeting, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.duration !== 'undefined') {\n toReturn['duration'] = this.duration;\n }\n if (typeof this.calendarId !== 'undefined') {\n toReturn['calendarId'] = this.calendarId;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.hexColor !== 'undefined') {\n toReturn['hexColor'] = this.hexColor;\n }\n if (typeof this.meetingTypeSlug !== 'undefined') {\n toReturn['meetingTypeSlug'] = this.meetingTypeSlug;\n }\n if (typeof this.isPrivate !== 'undefined') {\n toReturn['isPrivate'] = this.isPrivate;\n }\n if (typeof this.form !== 'undefined' && this.form !== null) {\n toReturn['form'] = 'toApiJson' in this.form ? this.form.toApiJson() : this.form;\n }\n if (typeof this.isReserveWithGoogleService !== 'undefined') {\n toReturn['isReserveWithGoogleService'] = this.isReserveWithGoogleService;\n }\n if (typeof this.hostUserIds !== 'undefined') {\n toReturn['hostUserIds'] = this.hostUserIds;\n }\n if (typeof this.bookingUrl !== 'undefined') {\n toReturn['bookingUrl'] = this.bookingUrl;\n }\n if (typeof this.availabilityIncrement !== 'undefined') {\n toReturn['availabilityIncrement'] = this.availabilityIncrement;\n }\n if (typeof this.bufferDurationAfterMeeting !== 'undefined') {\n toReturn['bufferDurationAfterMeeting'] = this.bufferDurationAfterMeeting;\n }\n if (typeof this.noticeTime !== 'undefined') {\n toReturn['noticeTime'] = this.noticeTime;\n }\n if (typeof this.location !== 'undefined') {\n toReturn['location'] = this.location;\n }\n if (typeof this.locationType !== 'undefined') {\n toReturn['locationType'] = this.locationType;\n }\n if (typeof this.locationGuidelines !== 'undefined') {\n toReturn['locationGuidelines'] = this.locationGuidelines;\n }\n if (typeof this.isClientChoice !== 'undefined') {\n toReturn['isClientChoice'] = this.isClientChoice;\n }\n if (typeof this.emailSubject !== 'undefined') {\n toReturn['emailSubject'] = this.emailSubject;\n }\n if (typeof this.emailDescription !== 'undefined') {\n toReturn['emailDescription'] = this.emailDescription;\n }\n if (typeof this.isPinned !== 'undefined') {\n toReturn['isPinned'] = this.isPinned;\n }\n if (typeof this.calendarType !== 'undefined') {\n toReturn['calendarType'] = this.calendarType;\n }\n if (typeof this.hostUsers !== 'undefined' && this.hostUsers !== null) {\n toReturn['hostUsers'] = 'toApiJson' in this.hostUsers ? this.hostUsers.toApiJson() : this.hostUsers;\n }\n if (typeof this.teamName !== 'undefined') {\n toReturn['teamName'] = this.teamName;\n }\n if (typeof this.isVideoLinkDisabled !== 'undefined') {\n toReturn['isVideoLinkDisabled'] = this.isVideoLinkDisabled;\n }\n if (typeof this.bufferDurationBeforeMeeting !== 'undefined') {\n toReturn['bufferDurationBeforeMeeting'] = this.bufferDurationBeforeMeeting;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$6(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass DateRange {\n static fromProto(proto) {\n let m = new DateRange();\n m = Object.assign(m, proto);\n if (proto.start) {\n m.start = new Date(proto.start);\n }\n if (proto.end) {\n m.end = new Date(proto.end);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.start !== 'undefined' && this.start !== null) {\n toReturn['start'] = 'toApiJson' in this.start ? this.start.toApiJson() : this.start;\n }\n if (typeof this.end !== 'undefined' && this.end !== null) {\n toReturn['end'] = 'toApiJson' in this.end ? this.end.toApiJson() : this.end;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$5(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass EventGroupAndServiceAssociations {\n static fromProto(proto) {\n let m = new EventGroupAndServiceAssociations();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.eventType !== 'undefined') {\n toReturn['eventType'] = this.eventType;\n }\n if (typeof this.identifier !== 'undefined') {\n toReturn['identifier'] = this.identifier;\n }\n if (typeof this.isEditable !== 'undefined') {\n toReturn['isEditable'] = this.isEditable;\n }\n if (typeof this.creatorUserName !== 'undefined') {\n toReturn['creatorUserName'] = this.creatorUserName;\n }\n if (typeof this.calendarId !== 'undefined') {\n toReturn['calendarId'] = this.calendarId;\n }\n if (typeof this.hexColor !== 'undefined') {\n toReturn['hexColor'] = this.hexColor;\n }\n if (typeof this.duration !== 'undefined') {\n toReturn['duration'] = this.duration;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.bookingUrl !== 'undefined') {\n toReturn['bookingUrl'] = this.bookingUrl;\n }\n return toReturn;\n }\n}\nclass Group {\n static fromProto(proto) {\n let m = new Group();\n m = Object.assign(m, proto);\n if (proto.associations) {\n m.associations = proto.associations.map(EventGroupAndServiceAssociations.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.slug !== 'undefined') {\n toReturn['slug'] = this.slug;\n }\n if (typeof this.isPinned !== 'undefined') {\n toReturn['isPinned'] = this.isPinned;\n }\n if (typeof this.associations !== 'undefined' && this.associations !== null) {\n toReturn['associations'] = 'toApiJson' in this.associations ? this.associations.toApiJson() : this.associations;\n }\n if (typeof this.hexColor !== 'undefined') {\n toReturn['hexColor'] = this.hexColor;\n }\n if (typeof this.bookingUrl !== 'undefined') {\n toReturn['bookingUrl'] = this.bookingUrl;\n }\n return toReturn;\n }\n}\nclass Service {\n static fromProto(proto) {\n let m = new Service();\n m = Object.assign(m, proto);\n if (proto.associations) {\n m.associations = proto.associations.map(EventGroupAndServiceAssociations.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.slug !== 'undefined') {\n toReturn['slug'] = this.slug;\n }\n if (typeof this.isPinned !== 'undefined') {\n toReturn['isPinned'] = this.isPinned;\n }\n if (typeof this.associations !== 'undefined' && this.associations !== null) {\n toReturn['associations'] = 'toApiJson' in this.associations ? this.associations.toApiJson() : this.associations;\n }\n if (typeof this.hexColor !== 'undefined') {\n toReturn['hexColor'] = this.hexColor;\n }\n if (typeof this.bookingUrl !== 'undefined') {\n toReturn['bookingUrl'] = this.bookingUrl;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$4(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass BookMeetingRequest {\n static fromProto(proto) {\n let m = new BookMeetingRequest();\n m = Object.assign(m, proto);\n if (proto.timeSlot) {\n m.timeSlot = DateRange.fromProto(proto.timeSlot);\n }\n if (proto.attendees) {\n m.attendees = proto.attendees.map(Contact.fromProto);\n }\n if (proto.start) {\n m.start = new Date(proto.start);\n }\n if (proto.metadata) {\n m.metadata = Object.keys(proto.metadata).reduce((obj, k) => {\n obj[k] = proto.metadata[k];\n return obj;\n }, {});\n }\n if (proto.formAnswers) {\n m.formAnswers = Answers.fromProto(proto.formAnswers);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n if (typeof this.meetingTypeId !== 'undefined') {\n toReturn['meetingTypeId'] = this.meetingTypeId;\n }\n if (typeof this.timeSlot !== 'undefined' && this.timeSlot !== null) {\n toReturn['timeSlot'] = 'toApiJson' in this.timeSlot ? this.timeSlot.toApiJson() : this.timeSlot;\n }\n if (typeof this.attendees !== 'undefined' && this.attendees !== null) {\n toReturn['attendees'] = 'toApiJson' in this.attendees ? this.attendees.toApiJson() : this.attendees;\n }\n if (typeof this.start !== 'undefined' && this.start !== null) {\n toReturn['start'] = 'toApiJson' in this.start ? this.start.toApiJson() : this.start;\n }\n if (typeof this.comment !== 'undefined') {\n toReturn['comment'] = this.comment;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.formAnswers !== 'undefined' && this.formAnswers !== null) {\n toReturn['formAnswers'] = 'toApiJson' in this.formAnswers ? this.formAnswers.toApiJson() : this.formAnswers;\n }\n if (typeof this.recaptchaToken !== 'undefined') {\n toReturn['recaptchaToken'] = this.recaptchaToken;\n }\n if (typeof this.location !== 'undefined') {\n toReturn['location'] = this.location;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\nclass BookMeetingResponse {\n static fromProto(proto) {\n let m = new BookMeetingResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingId !== 'undefined') {\n toReturn['meetingId'] = this.meetingId;\n }\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass GetCalendarRequest {\n static fromProto(proto) {\n let m = new GetCalendarRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendarId !== 'undefined') {\n toReturn['calendarId'] = this.calendarId;\n }\n return toReturn;\n }\n}\nclass GetCalendarResponse {\n static fromProto(proto) {\n let m = new GetCalendarResponse();\n m = Object.assign(m, proto);\n if (proto.calendar) {\n m.calendar = Calendar.fromProto(proto.calendar);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendar !== 'undefined' && this.calendar !== null) {\n toReturn['calendar'] = 'toApiJson' in this.calendar ? this.calendar.toApiJson() : this.calendar;\n }\n return toReturn;\n }\n}\nclass GetGroupRequest {\n static fromProto(proto) {\n let m = new GetGroupRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.groupId !== 'undefined') {\n toReturn['groupId'] = this.groupId;\n }\n if (typeof this.slug !== 'undefined') {\n toReturn['slug'] = this.slug;\n }\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass GetGroupResponse {\n static fromProto(proto) {\n let m = new GetGroupResponse();\n m = Object.assign(m, proto);\n if (proto.group) {\n m.group = Group.fromProto(proto.group);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.group !== 'undefined' && this.group !== null) {\n toReturn['group'] = 'toApiJson' in this.group ? this.group.toApiJson() : this.group;\n }\n return toReturn;\n }\n}\nclass GetHostRequest {\n static fromProto(proto) {\n let m = new GetHostRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass GetHostResponse {\n static fromProto(proto) {\n let m = new GetHostResponse();\n m = Object.assign(m, proto);\n if (proto.host) {\n m.host = Host.fromProto(proto.host);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.host !== 'undefined' && this.host !== null) {\n toReturn['host'] = 'toApiJson' in this.host ? this.host.toApiJson() : this.host;\n }\n return toReturn;\n }\n}\nclass GetMeetingTypeRequest {\n static fromProto(proto) {\n let m = new GetMeetingTypeRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendarSlug !== 'undefined') {\n toReturn['calendarSlug'] = this.calendarSlug;\n }\n if (typeof this.meetingTypeSlug !== 'undefined') {\n toReturn['meetingTypeSlug'] = this.meetingTypeSlug;\n }\n return toReturn;\n }\n}\nclass GetMeetingTypeResponse {\n static fromProto(proto) {\n let m = new GetMeetingTypeResponse();\n m = Object.assign(m, proto);\n if (proto.meetingType) {\n m.meetingType = MeetingType.fromProto(proto.meetingType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingType !== 'undefined' && this.meetingType !== null) {\n toReturn['meetingType'] = 'toApiJson' in this.meetingType ? this.meetingType.toApiJson() : this.meetingType;\n }\n return toReturn;\n }\n}\nclass GetServiceRequest {\n static fromProto(proto) {\n let m = new GetServiceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.serviceId !== 'undefined') {\n toReturn['serviceId'] = this.serviceId;\n }\n if (typeof this.slug !== 'undefined') {\n toReturn['slug'] = this.slug;\n }\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass GetServiceResponse {\n static fromProto(proto) {\n let m = new GetServiceResponse();\n m = Object.assign(m, proto);\n if (proto.service) {\n m.service = Service.fromProto(proto.service);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.service !== 'undefined' && this.service !== null) {\n toReturn['service'] = 'toApiJson' in this.service ? this.service.toApiJson() : this.service;\n }\n return toReturn;\n }\n}\nclass GuestCancelMeetingRequest {\n static fromProto(proto) {\n let m = new GuestCancelMeetingRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingId !== 'undefined') {\n toReturn['meetingId'] = this.meetingId;\n }\n if (typeof this.authToken !== 'undefined') {\n toReturn['authToken'] = this.authToken;\n }\n if (typeof this.cancellationReason !== 'undefined') {\n toReturn['cancellationReason'] = this.cancellationReason;\n }\n return toReturn;\n }\n}\nclass GuestGetBookedMeetingRequest {\n static fromProto(proto) {\n let m = new GuestGetBookedMeetingRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingId !== 'undefined') {\n toReturn['meetingId'] = this.meetingId;\n }\n if (typeof this.authToken !== 'undefined') {\n toReturn['authToken'] = this.authToken;\n }\n return toReturn;\n }\n}\nclass GuestGetBookedMeetingResponse {\n static fromProto(proto) {\n let m = new GuestGetBookedMeetingResponse();\n m = Object.assign(m, proto);\n if (proto.startTime) {\n m.startTime = new Date(proto.startTime);\n }\n if (proto.endTime) {\n m.endTime = new Date(proto.endTime);\n }\n if (proto.timeZone) {\n m.timeZone = TimeZone.fromProto(proto.timeZone);\n }\n if (proto.locationType) {\n m.locationType = enumStringToValue$4(MeetingLocationType, proto.locationType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.startTime !== 'undefined' && this.startTime !== null) {\n toReturn['startTime'] = 'toApiJson' in this.startTime ? this.startTime.toApiJson() : this.startTime;\n }\n if (typeof this.endTime !== 'undefined' && this.endTime !== null) {\n toReturn['endTime'] = 'toApiJson' in this.endTime ? this.endTime.toApiJson() : this.endTime;\n }\n if (typeof this.timeZone !== 'undefined' && this.timeZone !== null) {\n toReturn['timeZone'] = 'toApiJson' in this.timeZone ? this.timeZone.toApiJson() : this.timeZone;\n }\n if (typeof this.meetingTypeId !== 'undefined') {\n toReturn['meetingTypeId'] = this.meetingTypeId;\n }\n if (typeof this.location !== 'undefined') {\n toReturn['location'] = this.location;\n }\n if (typeof this.locationType !== 'undefined') {\n toReturn['locationType'] = this.locationType;\n }\n if (typeof this.locationGuideline !== 'undefined') {\n toReturn['locationGuideline'] = this.locationGuideline;\n }\n return toReturn;\n }\n}\nclass GuestIsHostConfiguredRequest {\n static fromProto(proto) {\n let m = new GuestIsHostConfiguredRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass GuestIsHostConfiguredResponse {\n static fromProto(proto) {\n let m = new GuestIsHostConfiguredResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.isConfigured !== 'undefined') {\n toReturn['isConfigured'] = this.isConfigured;\n }\n return toReturn;\n }\n}\nclass GuestRescheduleMeetingRequest {\n static fromProto(proto) {\n let m = new GuestRescheduleMeetingRequest();\n m = Object.assign(m, proto);\n if (proto.start) {\n m.start = new Date(proto.start);\n }\n if (proto.timeZone) {\n m.timeZone = TimeZone.fromProto(proto.timeZone);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingId !== 'undefined') {\n toReturn['meetingId'] = this.meetingId;\n }\n if (typeof this.authToken !== 'undefined') {\n toReturn['authToken'] = this.authToken;\n }\n if (typeof this.start !== 'undefined' && this.start !== null) {\n toReturn['start'] = 'toApiJson' in this.start ? this.start.toApiJson() : this.start;\n }\n if (typeof this.timeZone !== 'undefined' && this.timeZone !== null) {\n toReturn['timeZone'] = 'toApiJson' in this.timeZone ? this.timeZone.toApiJson() : this.timeZone;\n }\n if (typeof this.location !== 'undefined') {\n toReturn['location'] = this.location;\n }\n return toReturn;\n }\n}\nclass ListAvailableTimeSlotsRequest {\n static fromProto(proto) {\n let m = new ListAvailableTimeSlotsRequest();\n m = Object.assign(m, proto);\n if (proto.timeSpan) {\n m.timeSpan = DateRange.fromProto(proto.timeSpan);\n }\n if (proto.timeZone) {\n m.timeZone = TimeZone.fromProto(proto.timeZone);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n if (typeof this.meetingTypeId !== 'undefined') {\n toReturn['meetingTypeId'] = this.meetingTypeId;\n }\n if (typeof this.timeSpan !== 'undefined' && this.timeSpan !== null) {\n toReturn['timeSpan'] = 'toApiJson' in this.timeSpan ? this.timeSpan.toApiJson() : this.timeSpan;\n }\n if (typeof this.timeZone !== 'undefined' && this.timeZone !== null) {\n toReturn['timeZone'] = 'toApiJson' in this.timeZone ? this.timeZone.toApiJson() : this.timeZone;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\nclass ListAvailableTimeSlotsResponse {\n static fromProto(proto) {\n let m = new ListAvailableTimeSlotsResponse();\n m = Object.assign(m, proto);\n if (proto.timeSlots) {\n m.timeSlots = proto.timeSlots.map(DateRange.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.timeSlots !== 'undefined' && this.timeSlots !== null) {\n toReturn['timeSlots'] = 'toApiJson' in this.timeSlots ? this.timeSlots.toApiJson() : this.timeSlots;\n }\n return toReturn;\n }\n}\nclass ListMeetingTypesRequest {\n static fromProto(proto) {\n let m = new ListMeetingTypesRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass ListMeetingTypesResponse {\n static fromProto(proto) {\n let m = new ListMeetingTypesResponse();\n m = Object.assign(m, proto);\n if (proto.meetingTypes) {\n m.meetingTypes = proto.meetingTypes.map(MeetingType.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingTypes !== 'undefined' && this.meetingTypes !== null) {\n toReturn['meetingTypes'] = 'toApiJson' in this.meetingTypes ? this.meetingTypes.toApiJson() : this.meetingTypes;\n }\n return toReturn;\n }\n}\nclass BookMeetingRequestMetadataEntry {\n static fromProto(proto) {\n let m = new BookMeetingRequestMetadataEntry();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$3(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass FieldMask {\n static fromProto(proto) {\n let m = new FieldMask();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.paths !== 'undefined') {\n toReturn['paths'] = this.paths;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$2(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass BuildHostIdRequestApplicationContextPropertiesEntry {\n static fromProto(proto) {\n let m = new BuildHostIdRequestApplicationContextPropertiesEntry();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass IsCalendarConfiguredRequestApplicationContextPropertiesEntry {\n static fromProto(proto) {\n let m = new IsCalendarConfiguredRequestApplicationContextPropertiesEntry();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass EnsurePersonalCalendarExistsRequestApplicationContextPropertiesEntry {\n static fromProto(proto) {\n let m = new EnsurePersonalCalendarExistsRequestApplicationContextPropertiesEntry();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass AvailabilityRule {\n static fromProto(proto) {\n let m = new AvailabilityRule();\n m = Object.assign(m, proto);\n if (proto.day) {\n m.day = enumStringToValue$2(DayOfWeek, proto.day);\n }\n if (proto.timeSlot) {\n m.timeSlot = TimeRange.fromProto(proto.timeSlot);\n }\n if (proto.timeZone) {\n m.timeZone = TimeZone.fromProto(proto.timeZone);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n if (typeof this.meetingTypeId !== 'undefined') {\n toReturn['meetingTypeId'] = this.meetingTypeId;\n }\n if (typeof this.day !== 'undefined') {\n toReturn['day'] = this.day;\n }\n if (typeof this.timeSlot !== 'undefined' && this.timeSlot !== null) {\n toReturn['timeSlot'] = 'toApiJson' in this.timeSlot ? this.timeSlot.toApiJson() : this.timeSlot;\n }\n if (typeof this.timeZone !== 'undefined' && this.timeZone !== null) {\n toReturn['timeZone'] = 'toApiJson' in this.timeZone ? this.timeZone.toApiJson() : this.timeZone;\n }\n return toReturn;\n }\n}\nclass BuildHostIdRequest {\n static fromProto(proto) {\n let m = new BuildHostIdRequest();\n m = Object.assign(m, proto);\n if (proto.applicationContextProperties) {\n m.applicationContextProperties = Object.keys(proto.applicationContextProperties).reduce((obj, k) => {\n obj[k] = proto.applicationContextProperties[k];\n return obj;\n }, {});\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.applicationContextProperties !== 'undefined' && this.applicationContextProperties !== null) {\n toReturn['applicationContextProperties'] = 'toApiJson' in this.applicationContextProperties ? this.applicationContextProperties.toApiJson() : this.applicationContextProperties;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\nclass BuildHostIdResponse {\n static fromProto(proto) {\n let m = new BuildHostIdResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass GetMeetingTypesForCalendarsResponseCalendarMeetingTypesMapEntry {\n static fromProto(proto) {\n let m = new GetMeetingTypesForCalendarsResponseCalendarMeetingTypesMapEntry();\n m = Object.assign(m, proto);\n if (proto.value) {\n m.value = MeetingTypeList.fromProto(proto.value);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined' && this.value !== null) {\n toReturn['value'] = 'toApiJson' in this.value ? this.value.toApiJson() : this.value;\n }\n return toReturn;\n }\n}\nclass CalendarMigrationResponse {\n static fromProto(proto) {\n let m = new CalendarMigrationResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n return toReturn;\n }\n}\nclass CancelMeetingRequest {\n static fromProto(proto) {\n let m = new CancelMeetingRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingId !== 'undefined') {\n toReturn['meetingId'] = this.meetingId;\n }\n if (typeof this.cancellationReason !== 'undefined') {\n toReturn['cancellationReason'] = this.cancellationReason;\n }\n return toReturn;\n }\n}\nclass CheckGroupOrServiceSlugExistRequest {\n static fromProto(proto) {\n let m = new CheckGroupOrServiceSlugExistRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n if (typeof this.slugIdentifier !== 'undefined') {\n toReturn['slugIdentifier'] = this.slugIdentifier;\n }\n if (typeof this.category !== 'undefined') {\n toReturn['category'] = this.category;\n }\n return toReturn;\n }\n}\nclass CheckGroupOrServiceSlugExistResponse {\n static fromProto(proto) {\n let m = new CheckGroupOrServiceSlugExistResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.exists !== 'undefined') {\n toReturn['exists'] = this.exists;\n }\n return toReturn;\n }\n}\nclass CreateAvailabilityRequest {\n static fromProto(proto) {\n let m = new CreateAvailabilityRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n return toReturn;\n }\n}\nclass CreateAvailabilityResponse {\n static fromProto(proto) {\n let m = new CreateAvailabilityResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n return toReturn;\n }\n}\nclass CreateCalendarRequest {\n static fromProto(proto) {\n let m = new CreateCalendarRequest();\n m = Object.assign(m, proto);\n if (proto.calendar) {\n m.calendar = Calendar.fromProto(proto.calendar);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendar !== 'undefined' && this.calendar !== null) {\n toReturn['calendar'] = 'toApiJson' in this.calendar ? this.calendar.toApiJson() : this.calendar;\n }\n return toReturn;\n }\n}\nclass CreateCalendarResponse {\n static fromProto(proto) {\n let m = new CreateCalendarResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendarId !== 'undefined') {\n toReturn['calendarId'] = this.calendarId;\n }\n return toReturn;\n }\n}\nclass CreateDefaultMeetingTypesRequest {\n static fromProto(proto) {\n let m = new CreateDefaultMeetingTypesRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendarId !== 'undefined') {\n toReturn['calendarId'] = this.calendarId;\n }\n if (typeof this.calendarIds !== 'undefined') {\n toReturn['calendarIds'] = this.calendarIds;\n }\n return toReturn;\n }\n}\nclass CreateGroupRequest {\n static fromProto(proto) {\n let m = new CreateGroupRequest();\n m = Object.assign(m, proto);\n if (proto.group) {\n m.group = Group.fromProto(proto.group);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.group !== 'undefined' && this.group !== null) {\n toReturn['group'] = 'toApiJson' in this.group ? this.group.toApiJson() : this.group;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass CreateGroupResponse {\n static fromProto(proto) {\n let m = new CreateGroupResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass CreateMeetingTypeRequest {\n static fromProto(proto) {\n let m = new CreateMeetingTypeRequest();\n m = Object.assign(m, proto);\n if (proto.meetingType) {\n m.meetingType = MeetingType.fromProto(proto.meetingType);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingType !== 'undefined' && this.meetingType !== null) {\n toReturn['meetingType'] = 'toApiJson' in this.meetingType ? this.meetingType.toApiJson() : this.meetingType;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass CreateMeetingTypeResponse {\n static fromProto(proto) {\n let m = new CreateMeetingTypeResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass CreateServiceRequest {\n static fromProto(proto) {\n let m = new CreateServiceRequest();\n m = Object.assign(m, proto);\n if (proto.service) {\n m.service = Service.fromProto(proto.service);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.service !== 'undefined' && this.service !== null) {\n toReturn['service'] = 'toApiJson' in this.service ? this.service.toApiJson() : this.service;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass CreateServiceResponse {\n static fromProto(proto) {\n let m = new CreateServiceResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass DeleteAvailabilityRequest {\n static fromProto(proto) {\n let m = new DeleteAvailabilityRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n return toReturn;\n }\n}\nclass DeleteGroupRequest {\n static fromProto(proto) {\n let m = new DeleteGroupRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass DeleteMeetingTypeRequest {\n static fromProto(proto) {\n let m = new DeleteMeetingTypeRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass DeleteServiceRequest {\n static fromProto(proto) {\n let m = new DeleteServiceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass DoesCalendarExistRequest {\n static fromProto(proto) {\n let m = new DoesCalendarExistRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendarIdentifier !== 'undefined') {\n toReturn['calendarIdentifier'] = this.calendarIdentifier;\n }\n return toReturn;\n }\n}\nclass DoesCalendarExistResponse {\n static fromProto(proto) {\n let m = new DoesCalendarExistResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.exists !== 'undefined') {\n toReturn['exists'] = this.exists;\n }\n return toReturn;\n }\n}\nclass EnsureGroupCalendarsExistRequest {\n static fromProto(proto) {\n let m = new EnsureGroupCalendarsExistRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.externalIds !== 'undefined') {\n toReturn['externalIds'] = this.externalIds;\n }\n return toReturn;\n }\n}\nclass EnsureGroupCalendarsExistResponse {\n static fromProto(proto) {\n let m = new EnsureGroupCalendarsExistResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendarIds !== 'undefined') {\n toReturn['calendarIds'] = this.calendarIds;\n }\n return toReturn;\n }\n}\nclass EnsurePersonalCalendarExistsRequest {\n static fromProto(proto) {\n let m = new EnsurePersonalCalendarExistsRequest();\n m = Object.assign(m, proto);\n if (proto.applicationContextProperties) {\n m.applicationContextProperties = Object.keys(proto.applicationContextProperties).reduce((obj, k) => {\n obj[k] = proto.applicationContextProperties[k];\n return obj;\n }, {});\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.applicationContextProperties !== 'undefined' && this.applicationContextProperties !== null) {\n toReturn['applicationContextProperties'] = 'toApiJson' in this.applicationContextProperties ? this.applicationContextProperties.toApiJson() : this.applicationContextProperties;\n }\n return toReturn;\n }\n}\nclass EnsurePersonalCalendarExistsResponse {\n static fromProto(proto) {\n let m = new EnsurePersonalCalendarExistsResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendarId !== 'undefined') {\n toReturn['calendarId'] = this.calendarId;\n }\n return toReturn;\n }\n}\nclass ListBookedMeetingsRequestFilters {\n static fromProto(proto) {\n let m = new ListBookedMeetingsRequestFilters();\n m = Object.assign(m, proto);\n if (proto.timeSpan) {\n m.timeSpan = DateRange.fromProto(proto.timeSpan);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingTypeIds !== 'undefined') {\n toReturn['meetingTypeIds'] = this.meetingTypeIds;\n }\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n if (typeof this.timeSpan !== 'undefined' && this.timeSpan !== null) {\n toReturn['timeSpan'] = 'toApiJson' in this.timeSpan ? this.timeSpan.toApiJson() : this.timeSpan;\n }\n return toReturn;\n }\n}\nclass ListAvailabilityRequestFilters {\n static fromProto(proto) {\n let m = new ListAvailabilityRequestFilters();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n if (typeof this.meetingTypeId !== 'undefined') {\n toReturn['meetingTypeId'] = this.meetingTypeId;\n }\n return toReturn;\n }\n}\nclass GetHostMeetingRequest {\n static fromProto(proto) {\n let m = new GetHostMeetingRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingId !== 'undefined') {\n toReturn['meetingId'] = this.meetingId;\n }\n if (typeof this.location !== 'undefined') {\n toReturn['location'] = this.location;\n }\n return toReturn;\n }\n}\nclass GetHostMeetingResponse {\n static fromProto(proto) {\n let m = new GetHostMeetingResponse();\n m = Object.assign(m, proto);\n if (proto.meeting) {\n m.meeting = Meeting.fromProto(proto.meeting);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meeting !== 'undefined' && this.meeting !== null) {\n toReturn['meeting'] = 'toApiJson' in this.meeting ? this.meeting.toApiJson() : this.meeting;\n }\n return toReturn;\n }\n}\nclass GetHostPreferencesRequest {\n static fromProto(proto) {\n let m = new GetHostPreferencesRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass GetHostPreferencesResponse {\n static fromProto(proto) {\n let m = new GetHostPreferencesResponse();\n m = Object.assign(m, proto);\n if (proto.preferences) {\n m.preferences = Preferences.fromProto(proto.preferences);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.preferences !== 'undefined' && this.preferences !== null) {\n toReturn['preferences'] = 'toApiJson' in this.preferences ? this.preferences.toApiJson() : this.preferences;\n }\n return toReturn;\n }\n}\nclass GetHostsForCalendarRequest {\n static fromProto(proto) {\n let m = new GetHostsForCalendarRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendarId !== 'undefined') {\n toReturn['calendarId'] = this.calendarId;\n }\n return toReturn;\n }\n}\nclass GetHostsForCalendarResponse {\n static fromProto(proto) {\n let m = new GetHostsForCalendarResponse();\n m = Object.assign(m, proto);\n if (proto.hostUsers) {\n m.hostUsers = proto.hostUsers.map(HostUser.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostUsers !== 'undefined' && this.hostUsers !== null) {\n toReturn['hostUsers'] = 'toApiJson' in this.hostUsers ? this.hostUsers.toApiJson() : this.hostUsers;\n }\n return toReturn;\n }\n}\nclass GetMeetingTypesForCalendarsRequest {\n static fromProto(proto) {\n let m = new GetMeetingTypesForCalendarsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendarIds !== 'undefined') {\n toReturn['calendarIds'] = this.calendarIds;\n }\n return toReturn;\n }\n}\nclass GetMeetingTypesForCalendarsResponse {\n static fromProto(proto) {\n let m = new GetMeetingTypesForCalendarsResponse();\n m = Object.assign(m, proto);\n if (proto.calendarMeetingTypesMap) {\n m.calendarMeetingTypesMap = Object.keys(proto.calendarMeetingTypesMap).reduce((obj, k) => {\n obj[k] = MeetingTypeList.fromProto(proto.calendarMeetingTypesMap[k]);\n return obj;\n }, {});\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendarMeetingTypesMap !== 'undefined' && this.calendarMeetingTypesMap !== null) {\n toReturn['calendarMeetingTypesMap'] = 'toApiJson' in this.calendarMeetingTypesMap ? this.calendarMeetingTypesMap.toApiJson() : this.calendarMeetingTypesMap;\n }\n return toReturn;\n }\n}\nclass HostBookMeetingRequest {\n static fromProto(proto) {\n let m = new HostBookMeetingRequest();\n m = Object.assign(m, proto);\n if (proto.meetingSource) {\n m.meetingSource = enumStringToValue$2(MeetingSource, proto.meetingSource);\n }\n if (proto.timeSlot) {\n m.timeSlot = DateRange.fromProto(proto.timeSlot);\n }\n if (proto.attendees) {\n m.attendees = proto.attendees.map(Contact.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingSource !== 'undefined') {\n toReturn['meetingSource'] = this.meetingSource;\n }\n if (typeof this.calendarId !== 'undefined') {\n toReturn['calendarId'] = this.calendarId;\n }\n if (typeof this.meetingTypeId !== 'undefined') {\n toReturn['meetingTypeId'] = this.meetingTypeId;\n }\n if (typeof this.timeSlot !== 'undefined' && this.timeSlot !== null) {\n toReturn['timeSlot'] = 'toApiJson' in this.timeSlot ? this.timeSlot.toApiJson() : this.timeSlot;\n }\n if (typeof this.attendees !== 'undefined' && this.attendees !== null) {\n toReturn['attendees'] = 'toApiJson' in this.attendees ? this.attendees.toApiJson() : this.attendees;\n }\n if (typeof this.topic !== 'undefined') {\n toReturn['topic'] = this.topic;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\nclass HostBookMeetingResponse {\n static fromProto(proto) {\n let m = new HostBookMeetingResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingId !== 'undefined') {\n toReturn['meetingId'] = this.meetingId;\n }\n return toReturn;\n }\n}\nclass HostGetCalendarRequest {\n static fromProto(proto) {\n let m = new HostGetCalendarRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendarId !== 'undefined') {\n toReturn['calendarId'] = this.calendarId;\n }\n return toReturn;\n }\n}\nclass HostGetCalendarResponse {\n static fromProto(proto) {\n let m = new HostGetCalendarResponse();\n m = Object.assign(m, proto);\n if (proto.calendar) {\n m.calendar = Calendar.fromProto(proto.calendar);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendar !== 'undefined' && this.calendar !== null) {\n toReturn['calendar'] = 'toApiJson' in this.calendar ? this.calendar.toApiJson() : this.calendar;\n }\n return toReturn;\n }\n}\nclass HostGetMeetingTypeRequest {\n static fromProto(proto) {\n let m = new HostGetMeetingTypeRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendarSlug !== 'undefined') {\n toReturn['calendarSlug'] = this.calendarSlug;\n }\n if (typeof this.meetingTypeSlug !== 'undefined') {\n toReturn['meetingTypeSlug'] = this.meetingTypeSlug;\n }\n return toReturn;\n }\n}\nclass HostGetMeetingTypeResponse {\n static fromProto(proto) {\n let m = new HostGetMeetingTypeResponse();\n m = Object.assign(m, proto);\n if (proto.meetingType) {\n m.meetingType = MeetingType.fromProto(proto.meetingType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingType !== 'undefined' && this.meetingType !== null) {\n toReturn['meetingType'] = 'toApiJson' in this.meetingType ? this.meetingType.toApiJson() : this.meetingType;\n }\n return toReturn;\n }\n}\nclass HostListMeetingTypesRequest {\n static fromProto(proto) {\n let m = new HostListMeetingTypesRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass HostListMeetingTypesResponse {\n static fromProto(proto) {\n let m = new HostListMeetingTypesResponse();\n m = Object.assign(m, proto);\n if (proto.meetingTypes) {\n m.meetingTypes = proto.meetingTypes.map(MeetingType.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingTypes !== 'undefined' && this.meetingTypes !== null) {\n toReturn['meetingTypes'] = 'toApiJson' in this.meetingTypes ? this.meetingTypes.toApiJson() : this.meetingTypes;\n }\n return toReturn;\n }\n}\nclass IsCalendarConfiguredRequest {\n static fromProto(proto) {\n let m = new IsCalendarConfiguredRequest();\n m = Object.assign(m, proto);\n if (proto.applicationContextProperties) {\n m.applicationContextProperties = Object.keys(proto.applicationContextProperties).reduce((obj, k) => {\n obj[k] = proto.applicationContextProperties[k];\n return obj;\n }, {});\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.applicationContextProperties !== 'undefined' && this.applicationContextProperties !== null) {\n toReturn['applicationContextProperties'] = 'toApiJson' in this.applicationContextProperties ? this.applicationContextProperties.toApiJson() : this.applicationContextProperties;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\nclass IsCalendarConfiguredResponse {\n static fromProto(proto) {\n let m = new IsCalendarConfiguredResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.isConfigured !== 'undefined') {\n toReturn['isConfigured'] = this.isConfigured;\n }\n if (typeof this.calendarIds !== 'undefined') {\n toReturn['calendarIds'] = this.calendarIds;\n }\n return toReturn;\n }\n}\nclass IsHostConfiguredRequest {\n static fromProto(proto) {\n let m = new IsHostConfiguredRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass IsHostConfiguredResponse {\n static fromProto(proto) {\n let m = new IsHostConfiguredResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.isConfigured !== 'undefined') {\n toReturn['isConfigured'] = this.isConfigured;\n }\n return toReturn;\n }\n}\nclass ListAvailabilityRequest {\n static fromProto(proto) {\n let m = new ListAvailabilityRequest();\n m = Object.assign(m, proto);\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n if (proto.filters) {\n m.filters = ListAvailabilityRequestFilters.fromProto(proto.filters);\n }\n if (proto.timeZone) {\n m.timeZone = TimeZone.fromProto(proto.timeZone);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.timeZone !== 'undefined' && this.timeZone !== null) {\n toReturn['timeZone'] = 'toApiJson' in this.timeZone ? this.timeZone.toApiJson() : this.timeZone;\n }\n return toReturn;\n }\n}\nclass ListAvailabilityResponse {\n static fromProto(proto) {\n let m = new ListAvailabilityResponse();\n m = Object.assign(m, proto);\n if (proto.availabilityRules) {\n m.availabilityRules = proto.availabilityRules.map(AvailabilityRule.fromProto);\n }\n if (proto.metadata) {\n m.metadata = PagedResponseMetadata.fromProto(proto.metadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.availabilityRules !== 'undefined' && this.availabilityRules !== null) {\n toReturn['availabilityRules'] = 'toApiJson' in this.availabilityRules ? this.availabilityRules.toApiJson() : this.availabilityRules;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n return toReturn;\n }\n}\nclass ListBookedMeetingsRequest {\n static fromProto(proto) {\n let m = new ListBookedMeetingsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListBookedMeetingsRequestFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n if (proto.timeZone) {\n m.timeZone = TimeZone.fromProto(proto.timeZone);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n if (typeof this.timeZone !== 'undefined' && this.timeZone !== null) {\n toReturn['timeZone'] = 'toApiJson' in this.timeZone ? this.timeZone.toApiJson() : this.timeZone;\n }\n return toReturn;\n }\n}\nclass ListBookedMeetingsResponse {\n static fromProto(proto) {\n let m = new ListBookedMeetingsResponse();\n m = Object.assign(m, proto);\n if (proto.meetings) {\n m.meetings = proto.meetings.map(Meeting.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetings !== 'undefined' && this.meetings !== null) {\n toReturn['meetings'] = 'toApiJson' in this.meetings ? this.meetings.toApiJson() : this.meetings;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListGroupsRequest {\n static fromProto(proto) {\n let m = new ListGroupsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass ListGroupsResponse {\n static fromProto(proto) {\n let m = new ListGroupsResponse();\n m = Object.assign(m, proto);\n if (proto.groups) {\n m.groups = proto.groups.map(Group.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.groups !== 'undefined' && this.groups !== null) {\n toReturn['groups'] = 'toApiJson' in this.groups ? this.groups.toApiJson() : this.groups;\n }\n return toReturn;\n }\n}\nclass ListServicesRequest {\n static fromProto(proto) {\n let m = new ListServicesRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass ListServicesResponse {\n static fromProto(proto) {\n let m = new ListServicesResponse();\n m = Object.assign(m, proto);\n if (proto.services) {\n m.services = proto.services.map(Service.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.services !== 'undefined' && this.services !== null) {\n toReturn['services'] = 'toApiJson' in this.services ? this.services.toApiJson() : this.services;\n }\n return toReturn;\n }\n}\nclass Meeting {\n static fromProto(proto) {\n let m = new Meeting();\n m = Object.assign(m, proto);\n if (proto.start) {\n m.start = new Date(proto.start);\n }\n if (proto.end) {\n m.end = new Date(proto.end);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.attendees) {\n m.attendees = proto.attendees.map(Attendee.fromProto);\n }\n if (proto.formAnswers) {\n m.formAnswers = Answers.fromProto(proto.formAnswers);\n }\n if (proto.metadata) {\n m.metadata = Object.keys(proto.metadata).reduce((obj, k) => {\n obj[k] = proto.metadata[k];\n return obj;\n }, {});\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(Attachment.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.eventTypeId !== 'undefined') {\n toReturn['eventTypeId'] = this.eventTypeId;\n }\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n if (typeof this.start !== 'undefined' && this.start !== null) {\n toReturn['start'] = 'toApiJson' in this.start ? this.start.toApiJson() : this.start;\n }\n if (typeof this.end !== 'undefined' && this.end !== null) {\n toReturn['end'] = 'toApiJson' in this.end ? this.end.toApiJson() : this.end;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.attendees !== 'undefined' && this.attendees !== null) {\n toReturn['attendees'] = 'toApiJson' in this.attendees ? this.attendees.toApiJson() : this.attendees;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.joinMeetingUrl !== 'undefined') {\n toReturn['joinMeetingUrl'] = this.joinMeetingUrl;\n }\n if (typeof this.topic !== 'undefined') {\n toReturn['topic'] = this.topic;\n }\n if (typeof this.formAnswers !== 'undefined' && this.formAnswers !== null) {\n toReturn['formAnswers'] = 'toApiJson' in this.formAnswers ? this.formAnswers.toApiJson() : this.formAnswers;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.attachments !== 'undefined' && this.attachments !== null) {\n toReturn['attachments'] = 'toApiJson' in this.attachments ? this.attachments.toApiJson() : this.attachments;\n }\n if (typeof this.location !== 'undefined') {\n toReturn['location'] = this.location;\n }\n return toReturn;\n }\n}\nclass MeetingTypeList {\n static fromProto(proto) {\n let m = new MeetingTypeList();\n m = Object.assign(m, proto);\n if (proto.meetingTypes) {\n m.meetingTypes = proto.meetingTypes.map(MeetingType.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingTypes !== 'undefined' && this.meetingTypes !== null) {\n toReturn['meetingTypes'] = 'toApiJson' in this.meetingTypes ? this.meetingTypes.toApiJson() : this.meetingTypes;\n }\n return toReturn;\n }\n}\nclass UpdateMeetingMetadataRequestMetadataEntry {\n static fromProto(proto) {\n let m = new UpdateMeetingMetadataRequestMetadataEntry();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass MeetingMetadataEntry {\n static fromProto(proto) {\n let m = new MeetingMetadataEntry();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass RescheduleMeetingRequest {\n static fromProto(proto) {\n let m = new RescheduleMeetingRequest();\n m = Object.assign(m, proto);\n if (proto.start) {\n m.start = new Date(proto.start);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingId !== 'undefined') {\n toReturn['meetingId'] = this.meetingId;\n }\n if (typeof this.start !== 'undefined' && this.start !== null) {\n toReturn['start'] = 'toApiJson' in this.start ? this.start.toApiJson() : this.start;\n }\n return toReturn;\n }\n}\nclass SendMeetingRequestEmailRequest {\n static fromProto(proto) {\n let m = new SendMeetingRequestEmailRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.contactId !== 'undefined') {\n toReturn['contactId'] = this.contactId;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.meetingTypeId !== 'undefined') {\n toReturn['meetingTypeId'] = this.meetingTypeId;\n }\n return toReturn;\n }\n}\nclass SetGeneralAvailabilityRequest {\n static fromProto(proto) {\n let m = new SetGeneralAvailabilityRequest();\n m = Object.assign(m, proto);\n if (proto.days) {\n m.days = proto.days.map(v => enumStringToValue$2(DayOfWeek, v));\n }\n if (proto.timeSlot) {\n m.timeSlot = TimeRange.fromProto(proto.timeSlot);\n }\n if (proto.timeZone) {\n m.timeZone = TimeZone.fromProto(proto.timeZone);\n }\n if (proto.weekdaysAvailability) {\n m.weekdaysAvailability = proto.weekdaysAvailability.map(WeekdayAvailability.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n if (typeof this.meetingTypeId !== 'undefined') {\n toReturn['meetingTypeId'] = this.meetingTypeId;\n }\n if (typeof this.days !== 'undefined') {\n toReturn['days'] = this.days;\n }\n if (typeof this.timeSlot !== 'undefined' && this.timeSlot !== null) {\n toReturn['timeSlot'] = 'toApiJson' in this.timeSlot ? this.timeSlot.toApiJson() : this.timeSlot;\n }\n if (typeof this.timeZone !== 'undefined' && this.timeZone !== null) {\n toReturn['timeZone'] = 'toApiJson' in this.timeZone ? this.timeZone.toApiJson() : this.timeZone;\n }\n if (typeof this.weekdaysAvailability !== 'undefined' && this.weekdaysAvailability !== null) {\n toReturn['weekdaysAvailability'] = 'toApiJson' in this.weekdaysAvailability ? this.weekdaysAvailability.toApiJson() : this.weekdaysAvailability;\n }\n return toReturn;\n }\n}\nclass UpdateAvailabilityRequest {\n static fromProto(proto) {\n let m = new UpdateAvailabilityRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n return toReturn;\n }\n}\nclass UpdateCalendarRequest {\n static fromProto(proto) {\n let m = new UpdateCalendarRequest();\n m = Object.assign(m, proto);\n if (proto.calendarUpdate) {\n m.calendarUpdate = Calendar.fromProto(proto.calendarUpdate);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.calendarId !== 'undefined') {\n toReturn['calendarId'] = this.calendarId;\n }\n if (typeof this.calendarUpdate !== 'undefined' && this.calendarUpdate !== null) {\n toReturn['calendarUpdate'] = 'toApiJson' in this.calendarUpdate ? this.calendarUpdate.toApiJson() : this.calendarUpdate;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpdateGroupRequest {\n static fromProto(proto) {\n let m = new UpdateGroupRequest();\n m = Object.assign(m, proto);\n if (proto.group) {\n m.group = Group.fromProto(proto.group);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.group !== 'undefined' && this.group !== null) {\n toReturn['group'] = 'toApiJson' in this.group ? this.group.toApiJson() : this.group;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass UpdateHostPreferencesRequest {\n static fromProto(proto) {\n let m = new UpdateHostPreferencesRequest();\n m = Object.assign(m, proto);\n if (proto.preferences) {\n m.preferences = Preferences.fromProto(proto.preferences);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n if (typeof this.preferences !== 'undefined' && this.preferences !== null) {\n toReturn['preferences'] = 'toApiJson' in this.preferences ? this.preferences.toApiJson() : this.preferences;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpdateMeetingMetadataRequest {\n static fromProto(proto) {\n let m = new UpdateMeetingMetadataRequest();\n m = Object.assign(m, proto);\n if (proto.metadata) {\n m.metadata = Object.keys(proto.metadata).reduce((obj, k) => {\n obj[k] = proto.metadata[k];\n return obj;\n }, {});\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.meetingId !== 'undefined') {\n toReturn['meetingId'] = this.meetingId;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n return toReturn;\n }\n}\nclass UpdateMeetingTypeRequest {\n static fromProto(proto) {\n let m = new UpdateMeetingTypeRequest();\n m = Object.assign(m, proto);\n if (proto.meetingType) {\n m.meetingType = MeetingType.fromProto(proto.meetingType);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.meetingType !== 'undefined' && this.meetingType !== null) {\n toReturn['meetingType'] = 'toApiJson' in this.meetingType ? this.meetingType.toApiJson() : this.meetingType;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n return toReturn;\n }\n}\nclass UpdateServiceRequest {\n static fromProto(proto) {\n let m = new UpdateServiceRequest();\n m = Object.assign(m, proto);\n if (proto.service) {\n m.service = Service.fromProto(proto.service);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.service !== 'undefined' && this.service !== null) {\n toReturn['service'] = 'toApiJson' in this.service ? this.service.toApiJson() : this.service;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n if (typeof this.hostId !== 'undefined') {\n toReturn['hostId'] = this.hostId;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass WeekdayAvailability {\n static fromProto(proto) {\n let m = new WeekdayAvailability();\n m = Object.assign(m, proto);\n if (proto.day) {\n m.day = enumStringToValue$2(DayOfWeek, proto.day);\n }\n if (proto.timeSlots) {\n m.timeSlots = proto.timeSlots.map(TimeRange.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.day !== 'undefined') {\n toReturn['day'] = this.day;\n }\n if (typeof this.timeSlots !== 'undefined' && this.timeSlots !== null) {\n toReturn['timeSlots'] = 'toApiJson' in this.timeSlots ? this.timeSlots.toApiJson() : this.timeSlots;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$1(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass TimeOfDay {\n static fromProto(proto) {\n let m = new TimeOfDay();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hours !== 'undefined') {\n toReturn['hours'] = this.hours;\n }\n if (typeof this.minutes !== 'undefined') {\n toReturn['minutes'] = this.minutes;\n }\n if (typeof this.seconds !== 'undefined') {\n toReturn['seconds'] = this.seconds;\n }\n if (typeof this.nanos !== 'undefined') {\n toReturn['nanos'] = this.nanos;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass DateTime {\n static fromProto(proto) {\n let m = new DateTime();\n m = Object.assign(m, proto);\n if (proto.timeZone) {\n m.timeZone = TimeZone.fromProto(proto.timeZone);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.year !== 'undefined') {\n toReturn['year'] = this.year;\n }\n if (typeof this.month !== 'undefined') {\n toReturn['month'] = this.month;\n }\n if (typeof this.day !== 'undefined') {\n toReturn['day'] = this.day;\n }\n if (typeof this.hours !== 'undefined') {\n toReturn['hours'] = this.hours;\n }\n if (typeof this.minutes !== 'undefined') {\n toReturn['minutes'] = this.minutes;\n }\n if (typeof this.seconds !== 'undefined') {\n toReturn['seconds'] = this.seconds;\n }\n if (typeof this.nanos !== 'undefined') {\n toReturn['nanos'] = this.nanos;\n }\n if (typeof this.utcOffset !== 'undefined') {\n toReturn['utcOffset'] = this.utcOffset;\n }\n if (typeof this.timeZone !== 'undefined' && this.timeZone !== null) {\n toReturn['timeZone'] = 'toApiJson' in this.timeZone ? this.timeZone.toApiJson() : this.timeZone;\n }\n return toReturn;\n }\n}\nclass TimeZone {\n static fromProto(proto) {\n let m = new TimeZone();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n return toReturn;\n }\n}\n\n// *********************************\n\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'meetings-api.vendasta-local.com',\n 'test': '',\n 'demo': 'meetings-demo.apigateway.co',\n 'prod': 'meetings-prod.apigateway.co',\n 'production': 'meetings-prod.apigateway.co'\n};\nlet HostService$1 = /*#__PURE__*/(() => {\n let HostService$1 = class HostService {\n get host() {\n return hostMap[environment.toLowerCase()];\n }\n get hostWithScheme() {\n return 'https://' + this.host;\n }\n };\n HostService$1.ɵfac = function HostService$1_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HostService$1)();\n };\n HostService$1.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService$1,\n factory: HostService$1.ɵfac,\n providedIn: 'root'\n });\n return HostService$1;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet MeetingSourceAPIApiService = /*#__PURE__*/(() => {\n class MeetingSourceAPIApiService {\n constructor() {\n this.hostService = inject(HostService$1);\n this.http = inject(HttpClient);\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n list(r) {\n const request = r.toApiJson ? r : new MeetingSourceListRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingSourceAPI/List\", request.toApiJson(), this.apiOptions()).pipe(map(resp => MeetingSourceListResponse.fromProto(resp)));\n }\n }\n MeetingSourceAPIApiService.ɵfac = function MeetingSourceAPIApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MeetingSourceAPIApiService)();\n };\n MeetingSourceAPIApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MeetingSourceAPIApiService,\n factory: MeetingSourceAPIApiService.ɵfac,\n providedIn: 'root'\n });\n return MeetingSourceAPIApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet ZoomApiService = /*#__PURE__*/(() => {\n class ZoomApiService {\n constructor() {\n this.hostService = inject(HostService$1);\n this.http = inject(HttpClient);\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n createMeeting(r) {\n const request = r.toApiJson ? r : new CreateZoomMeetingRequest(r);\n return this.http.post(this._host + \"/meetings.v1.Zoom/CreateMeeting\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateZoomMeetingResponse.fromProto(resp)));\n }\n }\n ZoomApiService.ɵfac = function ZoomApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ZoomApiService)();\n };\n ZoomApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ZoomApiService,\n factory: ZoomApiService.ɵfac,\n providedIn: 'root'\n });\n return ZoomApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet GoogleMeetApiService = /*#__PURE__*/(() => {\n class GoogleMeetApiService {\n constructor() {\n this.hostService = inject(HostService$1);\n this.http = inject(HttpClient);\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n createMeeting(r) {\n const request = r.toApiJson ? r : new GoogleMeetCreateMeetingRequest(r);\n return this.http.post(this._host + \"/meetings.v1.GoogleMeet/CreateMeeting\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GoogleMeetCreateMeetingResponse.fromProto(resp)));\n }\n }\n GoogleMeetApiService.ɵfac = function GoogleMeetApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GoogleMeetApiService)();\n };\n GoogleMeetApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GoogleMeetApiService,\n factory: GoogleMeetApiService.ɵfac,\n providedIn: 'root'\n });\n return GoogleMeetApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction generateMeetingPassword() {\n const zoomMaxLength = 10;\n const zoomAllowedChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@-_*';\n try {\n const ints = new Uint8Array(zoomMaxLength);\n crypto.getRandomValues(ints);\n return Array.from(ints).map(v => zoomAllowedChars.charAt(v % zoomAllowedChars.length)).join('');\n } catch (e) {\n console.error('User is probably using an unsupported browser. ' + 'Falling back to less secure password generation', e);\n return new Array(zoomMaxLength).map(() => Math.floor(Math.random() * zoomAllowedChars.length)).join('');\n }\n}\nlet MeetingsService = /*#__PURE__*/(() => {\n class MeetingsService {\n constructor(_api, zoom, meet) {\n this._api = _api;\n this.zoom = zoom;\n this.meet = meet;\n }\n /**\n * @deprecated Use listForUser instead. This method will result in the backend grabbing the userID from the user's JWT\n * This will eventually no longer be supported because it breaks our impersonation workflows.\n */\n list(meetingSources, namespace, origin) {\n return this._api.list({\n queriedSources: meetingSources,\n namespace: namespace,\n origin: origin\n });\n }\n listForUser(iamUserId, namespace, origin, queriedSources) {\n return this._api.list({\n iamUserId: iamUserId,\n namespace: namespace,\n origin: origin,\n queriedSources: queriedSources\n });\n }\n startInstantMeeting(meetingTitle, meetingAgenda, meetingSource, gMeetAttendees) {\n const now = new Date();\n switch (meetingSource) {\n case MeetingSource.MEETING_SOURCE_INVALID:\n return throwError('Meeting source was not specified');\n case MeetingSource.MEETING_SOURCE_ZOOM:\n const req = createZoomInstantMeetingRequest(meetingTitle, now, meetingAgenda);\n return this.zoom.createMeeting(req).pipe(map(resp => ({\n url: resp.joinUrl,\n password: resp.password,\n joinURL: resp.joinUrl\n })));\n case MeetingSource.MEETING_SOURCE_GOOGLE_MEET:\n if (!gMeetAttendees) {\n return throwError('Attendees are required to start a Meet Hangout');\n }\n const meetReq = createMeetInstantMeetingRequest(meetingTitle, now, gMeetAttendees);\n return this.meet.createMeeting(meetReq).pipe(map(resp => ({\n url: resp.meeting.hangoutLink,\n joinURL: resp.meeting.hangoutLink\n })));\n default:\n // eslint-disable-next-line\n return throwError(`Unrecognized meeting source ${meetingSource}`);\n }\n }\n createBasicZoomScheduledMeeting(topic, agenda, startDateTime, duration, timezone, meetingPassword) {\n const req = new CreateZoomMeetingRequest({\n topic: topic,\n type: ZoomMeetingType.ZOOM_MEETING_TYPE_SCHEDULED,\n startTime: startDateTime,\n duration: duration,\n timezone: timezone,\n password: meetingPassword ? meetingPassword : generateMeetingPassword(),\n agenda: agenda,\n settings: {\n joinBeforeHost: true,\n enforceLogin: false\n },\n recurrence: {\n type: ZoomMeetingRecurrenceType.ZOOM_MEETING_RECURRENCE_TYPE_DAILY\n }\n });\n return this.zoom.createMeeting(req);\n }\n createBasicGoogleMeeting(topic, agenda, startDateTime, endDateTime, timezone, attendees) {\n const req = new GoogleMeetCreateMeetingRequest({\n meeting: {\n attendees: attendees,\n description: agenda,\n start: {\n dateTime: startDateTime,\n timeZone: timezone\n },\n end: {\n dateTime: endDateTime,\n timeZone: timezone\n },\n summary: topic\n }\n });\n return this.meet.createMeeting(req);\n }\n }\n MeetingsService.ɵfac = function MeetingsService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MeetingsService)(i0.ɵɵinject(MeetingSourceAPIApiService), i0.ɵɵinject(ZoomApiService), i0.ɵɵinject(GoogleMeetApiService));\n };\n MeetingsService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MeetingsService,\n factory: MeetingsService.ɵfac,\n providedIn: 'root'\n });\n return MeetingsService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction createZoomInstantMeetingRequest(meetingTitle, now, meetingAgenda) {\n const recurrence = {\n type: ZoomMeetingRecurrenceType.ZOOM_MEETING_RECURRENCE_TYPE_DAILY,\n repeatInterval: 0\n };\n const req = {\n topic: meetingTitle,\n type: ZoomMeetingType.ZOOM_MEETING_TYPE_INSTANT,\n startTime: now.toISOString(),\n duration: undefined,\n timezone: 'UTC',\n password: generateMeetingPassword(),\n agenda: meetingAgenda,\n trackingFields: [],\n recurrence: recurrence,\n settings: undefined // Only used with recurring meetings\n };\n return new CreateZoomMeetingRequest(req);\n}\nfunction createMeetInstantMeetingRequest(meetingTitle, startDateTime, attendees) {\n const start = {\n dateTime: startDateTime.toISOString(),\n timeZone: 'UTC'\n };\n const endTime = new Date(startDateTime.setMinutes(startDateTime.getMinutes() + 30));\n const end = {\n dateTime: endTime.toISOString(),\n timeZone: 'UTC'\n };\n const conferenceData = {\n createRequest: {\n requestId: 'instant-meet-meeting'\n },\n conferenceSolution: {\n key: {\n type: 'eventHangout'\n }\n }\n };\n const meeting = {\n summary: meetingTitle,\n start: start,\n end: end,\n conferenceData: conferenceData,\n attendees: attendees\n };\n const req = {\n meeting: meeting\n };\n return new GoogleMeetCreateMeetingRequest(req);\n}\n\n// *********************************\nlet MeetingGuestApiService = /*#__PURE__*/(() => {\n class MeetingGuestApiService {\n constructor() {\n this.hostService = inject(HostService$1);\n this.http = inject(HttpClient);\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n listMeetingTypes(r) {\n const request = r.toApiJson ? r : new ListMeetingTypesRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingGuest/ListMeetingTypes\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListMeetingTypesResponse.fromProto(resp)));\n }\n getMeetingType(r) {\n const request = r.toApiJson ? r : new GetMeetingTypeRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingGuest/GetMeetingType\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMeetingTypeResponse.fromProto(resp)));\n }\n listAvailableTimeSlots(r) {\n const request = r.toApiJson ? r : new ListAvailableTimeSlotsRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingGuest/ListAvailableTimeSlots\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListAvailableTimeSlotsResponse.fromProto(resp)));\n }\n bookMeeting(r) {\n const request = r.toApiJson ? r : new BookMeetingRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingGuest/BookMeeting\", request.toApiJson(), this.apiOptions()).pipe(map(resp => BookMeetingResponse.fromProto(resp)));\n }\n cancelMeeting(r) {\n const request = r.toApiJson ? r : new GuestCancelMeetingRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingGuest/CancelMeeting\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n rescheduleMeeting(r) {\n const request = r.toApiJson ? r : new GuestRescheduleMeetingRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingGuest/RescheduleMeeting\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getGuestBookedMeeting(r) {\n const request = r.toApiJson ? r : new GuestGetBookedMeetingRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingGuest/GetGuestBookedMeeting\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GuestGetBookedMeetingResponse.fromProto(resp)));\n }\n getCalendar(r) {\n const request = r.toApiJson ? r : new GetCalendarRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingGuest/GetCalendar\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCalendarResponse.fromProto(resp)));\n }\n getHost(r) {\n const request = r.toApiJson ? r : new GetHostRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingGuest/GetHost\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetHostResponse.fromProto(resp)));\n }\n getGroup(r) {\n const request = r.toApiJson ? r : new GetGroupRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingGuest/GetGroup\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetGroupResponse.fromProto(resp)));\n }\n isHostConfigured(r) {\n const request = r.toApiJson ? r : new GuestIsHostConfiguredRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingGuest/IsHostConfigured\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GuestIsHostConfiguredResponse.fromProto(resp)));\n }\n getService(r) {\n const request = r.toApiJson ? r : new GetServiceRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingGuest/GetService\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetServiceResponse.fromProto(resp)));\n }\n }\n MeetingGuestApiService.ɵfac = function MeetingGuestApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MeetingGuestApiService)();\n };\n MeetingGuestApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MeetingGuestApiService,\n factory: MeetingGuestApiService.ɵfac,\n providedIn: 'root'\n });\n return MeetingGuestApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet MeetingHostApiService = /*#__PURE__*/(() => {\n class MeetingHostApiService {\n constructor() {\n this.hostService = inject(HostService$1);\n this.http = inject(HttpClient);\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n buildHostId(r) {\n const request = r.toApiJson ? r : new BuildHostIdRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/BuildHostId\", request.toApiJson(), this.apiOptions()).pipe(map(resp => BuildHostIdResponse.fromProto(resp)));\n }\n doesCalendarExist(r) {\n const request = r.toApiJson ? r : new DoesCalendarExistRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/DoesCalendarExist\", request.toApiJson(), this.apiOptions()).pipe(map(resp => DoesCalendarExistResponse.fromProto(resp)));\n }\n createCalendar(r) {\n const request = r.toApiJson ? r : new CreateCalendarRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/CreateCalendar\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateCalendarResponse.fromProto(resp)));\n }\n updateCalendar(r) {\n const request = r.toApiJson ? r : new UpdateCalendarRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/UpdateCalendar\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getCalendar(r) {\n const request = r.toApiJson ? r : new HostGetCalendarRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/GetCalendar\", request.toApiJson(), this.apiOptions()).pipe(map(resp => HostGetCalendarResponse.fromProto(resp)));\n }\n ensurePersonalCalendarExists(r) {\n const request = r.toApiJson ? r : new EnsurePersonalCalendarExistsRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/EnsurePersonalCalendarExists\", request.toApiJson(), this.apiOptions()).pipe(map(resp => EnsurePersonalCalendarExistsResponse.fromProto(resp)));\n }\n ensureGroupCalendarsExist(r) {\n const request = r.toApiJson ? r : new EnsureGroupCalendarsExistRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/EnsureGroupCalendarsExist\", request.toApiJson(), this.apiOptions()).pipe(map(resp => EnsureGroupCalendarsExistResponse.fromProto(resp)));\n }\n getHostsForCalendar(r) {\n const request = r.toApiJson ? r : new GetHostsForCalendarRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/GetHostsForCalendar\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetHostsForCalendarResponse.fromProto(resp)));\n }\n getMeetingTypesForCalendars(r) {\n const request = r.toApiJson ? r : new GetMeetingTypesForCalendarsRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/GetMeetingTypesForCalendars\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMeetingTypesForCalendarsResponse.fromProto(resp)));\n }\n listAvailability(r) {\n const request = r.toApiJson ? r : new ListAvailabilityRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/ListAvailability\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListAvailabilityResponse.fromProto(resp)));\n }\n hostBookMeeting(r) {\n const request = r.toApiJson ? r : new BookMeetingRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/HostBookMeeting\", request.toApiJson(), this.apiOptions()).pipe(map(resp => BookMeetingResponse.fromProto(resp)));\n }\n bookMeeting(r) {\n const request = r.toApiJson ? r : new HostBookMeetingRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/BookMeeting\", request.toApiJson(), this.apiOptions()).pipe(map(resp => HostBookMeetingResponse.fromProto(resp)));\n }\n getHostMeeting(r) {\n const request = r.toApiJson ? r : new GetHostMeetingRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/GetHostMeeting\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetHostMeetingResponse.fromProto(resp)));\n }\n listBookedMeetings(r) {\n const request = r.toApiJson ? r : new ListBookedMeetingsRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/ListBookedMeetings\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListBookedMeetingsResponse.fromProto(resp)));\n }\n cancelMeeting(r) {\n const request = r.toApiJson ? r : new CancelMeetingRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/CancelMeeting\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n rescheduleMeeting(r) {\n const request = r.toApiJson ? r : new RescheduleMeetingRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/RescheduleMeeting\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateMeetingMetadata(r) {\n const request = r.toApiJson ? r : new UpdateMeetingMetadataRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/UpdateMeetingMetadata\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n setGeneralAvailability(r) {\n const request = r.toApiJson ? r : new SetGeneralAvailabilityRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/SetGeneralAvailability\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n createAvailability(r) {\n const request = r.toApiJson ? r : new CreateAvailabilityRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/CreateAvailability\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateAvailabilityResponse.fromProto(resp)));\n }\n updateAvailability(r) {\n const request = r.toApiJson ? r : new UpdateAvailabilityRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/UpdateAvailability\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n deleteAvailability(r) {\n const request = r.toApiJson ? r : new DeleteAvailabilityRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/DeleteAvailability\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n isHostConfigured(r) {\n const request = r.toApiJson ? r : new IsHostConfiguredRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/IsHostConfigured\", request.toApiJson(), this.apiOptions()).pipe(map(resp => IsHostConfiguredResponse.fromProto(resp)));\n }\n getHostPreferences(r) {\n const request = r.toApiJson ? r : new GetHostPreferencesRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/GetHostPreferences\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetHostPreferencesResponse.fromProto(resp)));\n }\n updateHostPreferences(r) {\n const request = r.toApiJson ? r : new UpdateHostPreferencesRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/UpdateHostPreferences\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getMeetingType(r) {\n const request = r.toApiJson ? r : new HostGetMeetingTypeRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/GetMeetingType\", request.toApiJson(), this.apiOptions()).pipe(map(resp => HostGetMeetingTypeResponse.fromProto(resp)));\n }\n listMeetingTypes(r) {\n const request = r.toApiJson ? r : new HostListMeetingTypesRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/ListMeetingTypes\", request.toApiJson(), this.apiOptions()).pipe(map(resp => HostListMeetingTypesResponse.fromProto(resp)));\n }\n createMeetingType(r) {\n const request = r.toApiJson ? r : new CreateMeetingTypeRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/CreateMeetingType\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateMeetingTypeResponse.fromProto(resp)));\n }\n updateMeetingType(r) {\n const request = r.toApiJson ? r : new UpdateMeetingTypeRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/UpdateMeetingType\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n deleteMeetingType(r) {\n const request = r.toApiJson ? r : new DeleteMeetingTypeRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/DeleteMeetingType\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n createDefaultMeetingTypes(r) {\n const request = r.toApiJson ? r : new CreateDefaultMeetingTypesRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/CreateDefaultMeetingTypes\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n sendMeetingRequestEmail(r) {\n const request = r.toApiJson ? r : new SendMeetingRequestEmailRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/SendMeetingRequestEmail\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n isCalendarConfigured(r) {\n const request = r.toApiJson ? r : new IsCalendarConfiguredRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/IsCalendarConfigured\", request.toApiJson(), this.apiOptions()).pipe(map(resp => IsCalendarConfiguredResponse.fromProto(resp)));\n }\n createGroup(r) {\n const request = r.toApiJson ? r : new CreateGroupRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/CreateGroup\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateGroupResponse.fromProto(resp)));\n }\n updateGroup(r) {\n const request = r.toApiJson ? r : new UpdateGroupRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/UpdateGroup\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n deleteGroup(r) {\n const request = r.toApiJson ? r : new DeleteGroupRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/DeleteGroup\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listGroups(r) {\n const request = r.toApiJson ? r : new ListGroupsRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/ListGroups\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListGroupsResponse.fromProto(resp)));\n }\n createService(r) {\n const request = r.toApiJson ? r : new CreateServiceRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/CreateService\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateServiceResponse.fromProto(resp)));\n }\n updateService(r) {\n const request = r.toApiJson ? r : new UpdateServiceRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/UpdateService\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n deleteService(r) {\n const request = r.toApiJson ? r : new DeleteServiceRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/DeleteService\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listServices(r) {\n const request = r.toApiJson ? r : new ListServicesRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/ListServices\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListServicesResponse.fromProto(resp)));\n }\n calendarMigration() {\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/CalendarMigration\", {}, this.apiOptions()).pipe(map(resp => CalendarMigrationResponse.fromProto(resp)));\n }\n getGroup(r) {\n const request = r.toApiJson ? r : new GetGroupRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/GetGroup\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetGroupResponse.fromProto(resp)));\n }\n getService(r) {\n const request = r.toApiJson ? r : new GetServiceRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/GetService\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetServiceResponse.fromProto(resp)));\n }\n checkGroupOrServiceSlugExist(r) {\n const request = r.toApiJson ? r : new CheckGroupOrServiceSlugExistRequest(r);\n return this.http.post(this._host + \"/meetings.v1.MeetingHost/CheckGroupOrServiceSlugExist\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CheckGroupOrServiceSlugExistResponse.fromProto(resp)));\n }\n }\n MeetingHostApiService.ɵfac = function MeetingHostApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MeetingHostApiService)();\n };\n MeetingHostApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MeetingHostApiService,\n factory: MeetingHostApiService.ɵfac,\n providedIn: 'root'\n });\n return MeetingHostApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n\nfunction TimeSpanFromApi(tsAPI) {\n return {\n start: tsAPI.start,\n end: tsAPI.end\n };\n}\nfunction HostFromApi(hostAPI) {\n return {\n displayName: hostAPI.displayName,\n displayProfileUrl: hostAPI.displayProfileUrl,\n displayLogoUrl: hostAPI.displayLogoUrl\n };\n}\n\n// Copied from core\nvar Environment = /*#__PURE__*/function (Environment) {\n Environment[Environment[\"LOCAL\"] = 0] = \"LOCAL\";\n Environment[Environment[\"TEST\"] = 1] = \"TEST\";\n Environment[Environment[\"DEMO\"] = 2] = \"DEMO\";\n Environment[Environment[\"PROD\"] = 3] = \"PROD\";\n return Environment;\n}(Environment || {});\nfunction onProduction(env) {\n return env === Environment.PROD || env === 'prod';\n}\nfunction onProductionGlobal() {\n // environment expected to be set in the app in globals.ts\n // eslint-disable-next-line\n return typeof window !== 'undefined' && window.environment === 'prod';\n}\n\n// A temporary method for building the url for a host, eventTypeId, and metadata\nfunction getBookingUrlImplementation(req) {\n const domain = getDomainFromEnvironment(req.environment);\n const meetingType = req.meetingTypeSlug || req.meetingTypeId || '30-minutes';\n const calendarSlug = req.calendarSlug || req.calendarId;\n let url = `https://${domain}/book/${calendarSlug}/${meetingType}`;\n if (calendarSlug.startsWith(\"GRP-\")) {\n url = `https://${domain}/group/${calendarSlug}/${meetingType}`;\n }\n if (calendarSlug.startsWith(\"SVS-\")) {\n url = `https://${domain}/service/${calendarSlug}/${meetingType}`;\n }\n if (!req.metadata) {\n return url;\n }\n return addMetadataToBookingLink({\n link: url,\n metadata: req.metadata\n });\n}\nfunction getGeneralBookingUrlImplementation(req) {\n const url = `https://${getDomainFromEnvironment(req.environment)}/${req.calendarSlug || req.calendarId}`;\n return req.metadata ? addMetadataToBookingLink({\n link: url,\n metadata: req.metadata\n }) : url;\n}\nfunction getDomainFromEnvironment(env) {\n if (env === Environment.PROD) {\n return 'bookmenow.info';\n }\n return 'meetings-demo.apigateway.co';\n}\nfunction addMetadataToBookingLink(req) {\n if (!req.metadata) {\n return req.link;\n }\n const m = req.metadata;\n const queryParams = Object.keys(m).reduce((params, key) => {\n if (!params) {\n if (req.link.indexOf('?') >= 0) {\n return `&${key}=${m[key]}`;\n }\n return `?${key}=${m[key]}`;\n }\n return `${params}&${key}=${m[key]}`;\n }, '');\n return `${req.link}${queryParams}`;\n}\nfunction MeetingTypeFromApi(req) {\n let bookingUrl = req?.meetingTypeApi?.bookingUrl || '';\n if (bookingUrl === '') {\n bookingUrl = getBookingUrlImplementation({\n environment: req.environment,\n calendarId: req.calendarId,\n meetingTypeSlug: req.meetingTypeApi.meetingTypeSlug || req.meetingTypeApi.id || '',\n metadata: req.metadata,\n calendarSlug: req.calendarSlug\n });\n } else {\n bookingUrl = addMetadataToBookingLink({\n link: bookingUrl,\n metadata: req.metadata || {}\n });\n }\n const form = {\n ...(req.meetingTypeApi.form || {\n fields: []\n }),\n fields: (req.meetingTypeApi.form && req.meetingTypeApi.form.fields ? req.meetingTypeApi.form.fields : []).map(field => {\n return {\n ...field,\n id: field.id || '',\n label: field.label || '',\n type: field.type || FormFieldType.FORM_FIELD_TYPE_INVALID,\n required: field.required || false\n };\n })\n };\n return {\n id: req.meetingTypeApi.id || '',\n calendarId: req.meetingTypeApi.calendarId || '',\n name: req.meetingTypeApi.name || '',\n duration: req.meetingTypeApi.duration || '',\n bookingUrl: bookingUrl,\n bookingLink: req.meetingTypeApi.meetingTypeSlug || '',\n meetingTypeSlug: req.meetingTypeApi.meetingTypeSlug || '',\n description: req.meetingTypeApi.description || '',\n hexColor: req.meetingTypeApi.hexColor || '',\n form: form,\n hostUserIds: req.meetingTypeApi.hostUserIds || [],\n availabilityIncrement: req.meetingTypeApi.availabilityIncrement || -1,\n bufferDurationAfterMeeting: req.meetingTypeApi.bufferDurationAfterMeeting || 0,\n bufferDurationBeforeMeeting: req.meetingTypeApi.bufferDurationBeforeMeeting || 0,\n noticeTime: req.meetingTypeApi.noticeTime || 0,\n location: req.meetingTypeApi.location || '',\n locationGuidelines: req.meetingTypeApi.locationGuidelines || '',\n isClientChoice: req.meetingTypeApi.isClientChoice || false,\n emailSubject: req.meetingTypeApi.emailSubject || '',\n emailDescription: req.meetingTypeApi.emailDescription || '',\n isPinned: req.meetingTypeApi.isPinned || false,\n CalendarType: req.meetingTypeApi.calendarType || '',\n hostUsers: req.meetingTypeApi.hostUsers || [],\n teamName: req.meetingTypeApi.teamName || '',\n isVideoLinkDisabled: req.meetingTypeApi.isVideoLinkDisabled || false,\n locationType: req.meetingTypeApi.locationType || MeetingLocationType.VIDEO\n };\n}\nfunction MeetingTypeToApi(req) {\n const m = req.meetingType;\n if (!m) {\n return {};\n }\n return {\n id: m.id || undefined,\n name: m.name || undefined,\n hexColor: m.hexColor || undefined,\n meetingTypeSlug: m.meetingTypeSlug || m.bookingLink || undefined,\n calendarId: m.calendarId || undefined,\n description: m.description || undefined,\n duration: m.duration ? m.duration : undefined,\n form: m.form || undefined,\n hostUserIds: m.hostUserIds || undefined,\n availabilityIncrement: m.availabilityIncrement || undefined,\n bufferDurationAfterMeeting: m.bufferDurationAfterMeeting || 0,\n noticeTime: m.noticeTime || 0,\n location: m.location || undefined,\n locationGuidelines: m.locationGuidelines || undefined,\n emailSubject: m.emailSubject || undefined,\n emailDescription: m.emailDescription || undefined,\n isClientChoice: m.isClientChoice || undefined,\n isPinned: m.isPinned || undefined,\n calendarType: m.CalendarType || undefined,\n hostUsers: m.hostUsers || undefined,\n teamName: m.teamName || undefined,\n isVideoLinkDisabled: m.isVideoLinkDisabled || false,\n locationType: m.locationType || MeetingLocationType.VIDEO,\n bufferDurationBeforeMeeting: m.bufferDurationBeforeMeeting || 0\n };\n}\n\n// These represent well-known metadata keys used for more than just tracking\nvar WellKnownMeetingMetadataKeys = /*#__PURE__*/function (WellKnownMeetingMetadataKeys) {\n // This is the business (AG) attached to a meeting. This is attached via sending msm_business as a query param during booking\n WellKnownMeetingMetadataKeys[\"BUSINESS\"] = \"msm_business\";\n return WellKnownMeetingMetadataKeys;\n}(WellKnownMeetingMetadataKeys || {});\n// These are part of the standard Meeting Scheduler form.\n// If you are trying to pre-fill these fields use the helper formFieldIdToMetadataParam\nvar WellKnownFormFieldIds = /*#__PURE__*/function (WellKnownFormFieldIds) {\n WellKnownFormFieldIds[\"FIRST_NAME\"] = \"firstName\";\n WellKnownFormFieldIds[\"LAST_NAME\"] = \"lastName\";\n WellKnownFormFieldIds[\"EMAIL\"] = \"email\";\n WellKnownFormFieldIds[\"PHONE_NUMBER\"] = \"phoneNumber\";\n WellKnownFormFieldIds[\"COMMENT\"] = \"comment\";\n WellKnownFormFieldIds[\"INVITEE_EMAILS\"] = \"inviteeEmail\";\n return WellKnownFormFieldIds;\n}(WellKnownFormFieldIds || {});\n// Converts the given id into a metadata key that can be sent on the url.\n// This means the key will be used to pre-fill those form fields.\n// This can also be used on fields that are not metadata to ensure they will come across in metadata.\nfunction meetingSchedulerIdToMetadataKey(id) {\n if (!id) {\n return '';\n }\n return id.startsWith('msm_') || id.startsWith('utm_') ? id : `msm_${id}`;\n}\nfunction meetingFromApi(meetingApi) {\n return {\n id: meetingApi.id,\n eventTypeId: meetingApi.eventTypeId,\n hostId: meetingApi.hostId,\n start: meetingApi.start,\n end: meetingApi.end,\n description: meetingApi.description || '',\n joinMeetingUrl: meetingApi.joinMeetingUrl || '',\n attendees: meetingApi.attendees ? meetingApi.attendees.map(a => ({\n firstName: a.firstName,\n lastName: a.lastName,\n email: a.email,\n phoneNumber: a.phoneNumber,\n timeZone: a.timeZone,\n isPrimary: a.isPrimary || false\n })) : [],\n created: meetingApi.created,\n updated: meetingApi.updated,\n topic: meetingApi.topic,\n formAnswers: answersFromAPI(meetingApi.formAnswers),\n metadata: meetingApi.metadata || {},\n attachments: (meetingApi.attachments || []).map(a => {\n return {\n fileTitle: a.fileTitle || '',\n fileUrl: a.fileUrl || '',\n fileType: a.fileType || ''\n };\n }),\n location: meetingApi.location || ''\n };\n}\nfunction answersFromAPI(formAnswers) {\n if (!formAnswers) {\n return {\n formAnswers: []\n };\n }\n return {\n formAnswers: (formAnswers.formAnswers ? formAnswers.formAnswers : []).map(a => {\n return {\n id: a.id || '',\n label: a.label || '',\n type: a.type || FormFieldType.FORM_FIELD_TYPE_INVALID,\n answer: a.answer || []\n };\n })\n };\n}\nfunction answersToAPI(formAnswers) {\n if (!formAnswers) {\n return {\n formAnswers: []\n };\n }\n return {\n formAnswers: (formAnswers.formAnswers || []).map(a => {\n return {\n id: a.id || undefined,\n label: a.label || undefined,\n type: a.type,\n answer: a.answer || undefined\n };\n })\n };\n}\nclass PagedResponse {\n constructor(results, nextCursor, hasMore) {\n this.results = results;\n this.nextCursor = nextCursor;\n this.hasMore = hasMore;\n }\n}\nfunction CalendarFromApi(calendarAPI) {\n return {\n id: calendarAPI.id || '',\n calendarType: calendarAPI.calendarType || CalendarType.CALENDAR_TYPE_INVALID,\n displayName: calendarAPI.displayName || '',\n displayProfileUrl: calendarAPI.displayProfileUrl || '',\n displayLogoUrl: calendarAPI.displayLogoUrl || '',\n bookingUrl: calendarAPI.bookingUrl || '',\n slug: calendarAPI.slug || '',\n externalId: calendarAPI.externalId || '',\n creatorUserId: calendarAPI.creatorUserId || '',\n hostUserIds: calendarAPI.hostUserIds || [],\n applicationContext: calendarAPI.applicationContext || {},\n encodedApplicationContext: ''\n };\n}\n// From meetings/internal/meetingscheduler/calendar/model.go\nvar KnownCalendarApplicationContextKeys = /*#__PURE__*/function (KnownCalendarApplicationContextKeys) {\n KnownCalendarApplicationContextKeys[\"ExternalIntegration\"] = \"external_integration\";\n KnownCalendarApplicationContextKeys[\"Business\"] = \"business_id\";\n KnownCalendarApplicationContextKeys[\"SalesTeam\"] = \"sales_team_id\";\n return KnownCalendarApplicationContextKeys;\n}(KnownCalendarApplicationContextKeys || {});\nvar KnownCalendarExternalIntegrations = /*#__PURE__*/function (KnownCalendarExternalIntegrations) {\n KnownCalendarExternalIntegrations[\"VSalesTeam\"] = \"v_sales_team\";\n KnownCalendarExternalIntegrations[\"VBusiness\"] = \"v_business\";\n return KnownCalendarExternalIntegrations;\n}(KnownCalendarExternalIntegrations || {});\nfunction PreferencesFromApi(preferences) {\n return {\n timezone: preferences.timezone,\n meetingIntegration: preferences.meetingIntegration || MeetingSource.MEETING_SOURCE_INVALID,\n availabilityIncrement: preferences.availabilityIncrement || 0,\n bufferDurationAfterMeeting: preferences.bufferDurationAfterMeeting || 0,\n bufferDurationBeforeMeeting: preferences.bufferDurationBeforeMeeting || 0,\n noticeTime: preferences.noticeTime || 0,\n calendarSlug: preferences.calendarSlug || ''\n };\n}\n\n/**\n In JSON format, the Duration type is encoded as a string rather than an\n object, where the string ends in the suffix \"s\" (indicating seconds) and\n is preceded by the number of seconds, with nanoseconds expressed as\n fractional seconds. For example, 3 seconds with 0 nanoseconds should be\n encoded in JSON format as \"3s\", while 3 seconds and 1 nanosecond should\n be expressed in JSON format as \"3.000000001s\", and 3 seconds and 1\n microsecond should be expressed in JSON format as \"3.000001s\".\n https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/Duration\n */\nfunction durationFromString(durationString) {\n if (!durationString) {\n return {\n seconds: 0,\n nanoseconds: 0\n };\n }\n const [secondsString, nanosecondString] = durationString.replace(/s/g, '') // the end of the string has an s\n .split('.'); // before the decimal is seconds, after is nanoseconds\n const seconds = Number(secondsString);\n const nanoseconds = parseFloat('0.' + nanosecondString) * 1e9;\n return {\n seconds: isNaN(seconds) ? 0 : seconds,\n nanoseconds: isNaN(nanoseconds) ? 0 : nanoseconds\n };\n}\nfunction durationToString(duration) {\n if (!duration) {\n return '0s';\n }\n const seconds = duration.seconds || 0;\n const nanoseconds = duration.nanoseconds || 0;\n return `${seconds + nanoseconds / 1e9}s`;\n}\nfunction durationStringToMinutes(req) {\n const d = durationFromString(req.duration);\n const minutes = d.seconds / 60 + d.nanoseconds / 6e+10;\n if (req.round) {\n return Math.round(minutes);\n }\n return minutes;\n}\nfunction getFieldMask(req) {\n const keysToUpdate = req.updateFields || Object.keys(req.o || {});\n return new FieldMask({\n paths: keysToUpdate || []\n });\n}\nfunction newBusinessCenterApplicationContextProperties(req) {\n return {\n business_id: req.business_id,\n user_context: 'SMB'\n };\n}\nfunction newSalesCenterApplicationContextProperties(req) {\n return {\n partner_id: req.partner_id,\n market_id: req.market_id,\n user_context: 'SALES'\n };\n}\nfunction newPartnerCenterApplicationContextProperties(req) {\n return {\n partner_id: req.partner_id,\n user_context: 'PARTNER'\n };\n}\nfunction hostUserFromApi(hostUser) {\n return {\n userId: hostUser.userId || '',\n displayName: hostUser.displayName || '',\n isConfigured: hostUser.isConfigured || false\n };\n}\nfunction GroupTypeToAPi(req) {\n const m = req.group;\n if (!m) {\n return {};\n }\n return {\n id: m.id || undefined,\n name: m.name || undefined,\n description: m.description || undefined,\n slug: m.slug || undefined,\n isPinned: m.isPinned || undefined,\n associations: m.associations ? m.associations.map(AssociationTypeToApi) : undefined,\n hexColor: m.hexColor || undefined\n };\n}\nfunction ServiceTypeToApi(req) {\n const m = req.service;\n if (!m) {\n return {};\n }\n return {\n id: m.id || undefined,\n name: m.name || undefined,\n description: m.description || undefined,\n slug: m.slug || undefined,\n isPinned: m.isPinned || undefined,\n associations: m.associations ? m.associations.map(AssociationTypeToApi) : undefined,\n hexColor: m.hexColor || undefined\n };\n}\nfunction AssociationTypeToApi(association) {\n return {\n id: association.id || undefined,\n name: association.name || undefined,\n eventType: association.eventType || undefined,\n identifier: association.identifier || undefined,\n isEditable: association.isEditable || false,\n creatorUserName: association.creatorUserName || undefined,\n calendarId: association.calendarId || undefined,\n hexColor: association.hexColor || undefined,\n duration: association.duration || undefined,\n description: association.description || undefined,\n bookingUrl: association.bookingUrl || undefined\n };\n}\nfunction AssociationFromApi(associationApi) {\n return {\n id: associationApi.id || '',\n name: associationApi.name || '',\n eventType: associationApi.eventType || '',\n identifier: associationApi.identifier || '',\n isEditable: associationApi.isEditable || false,\n creatorUserName: associationApi.creatorUserName || '',\n calendarId: associationApi.calendarId || '',\n hexColor: associationApi.hexColor || '',\n duration: associationApi.duration || '',\n description: associationApi.description || '',\n bookingUrl: associationApi.bookingUrl || ''\n };\n}\nfunction GroupFromApi(req) {\n const groupId = req.groupApi.id || '';\n const groupSlug = req.groupApi.slug || '';\n const bookingUrl = req?.groupApi?.bookingUrl || getBookingURL(req.environment, groupSlug, groupId);\n return {\n id: groupId,\n name: req.groupApi.name || '',\n description: req.groupApi.description || '',\n slug: groupSlug,\n isPinned: req.groupApi.isPinned || false,\n associations: req.groupApi.associations ? req.groupApi.associations.map(AssociationFromApi) : [],\n hexColor: req.groupApi.hexColor || '',\n bookingUrl: bookingUrl\n };\n}\nfunction getBookingURL(environment, slug, calendarId) {\n let bookingUrl = '';\n if (slug != '') {\n bookingUrl = getBookingUrlImplementation({\n environment: environment,\n calendarId: calendarId,\n meetingTypeSlug: slug\n });\n }\n return bookingUrl;\n}\nfunction ServiceFromApi(req) {\n const serviceId = req.serviceApi.id || '';\n const serviceSlug = req.serviceApi.slug || '';\n const bookingUrl = req?.serviceApi?.bookingUrl || getBookingURL(req.environment, serviceSlug, serviceId);\n return {\n id: req.serviceApi.id || '',\n name: req.serviceApi.name || '',\n description: req.serviceApi.description || '',\n slug: req.serviceApi.slug || '',\n isPinned: req.serviceApi.isPinned || false,\n associations: req.serviceApi.associations ? req.serviceApi.associations.map(AssociationFromApi) : [],\n hexColor: req.serviceApi.hexColor || '',\n bookingUrl: bookingUrl\n };\n}\nvar MeetingSourceOrigin = /*#__PURE__*/function (MeetingSourceOrigin) {\n MeetingSourceOrigin[\"TaskManager\"] = \"task-manager\";\n MeetingSourceOrigin[\"PartnerCenter\"] = \"partner-center\";\n MeetingSourceOrigin[\"BusinessApp\"] = \"business-app\";\n MeetingSourceOrigin[\"SalesCenter\"] = \"sales-center\";\n return MeetingSourceOrigin;\n}(MeetingSourceOrigin || {});\nlet GuestService = /*#__PURE__*/(() => {\n class GuestService {\n constructor(guestAPIService) {\n this.guestAPIService = guestAPIService;\n }\n getMeetingType(req) {\n return this.guestAPIService.getMeetingType(req).pipe(map(resp => {\n if (!resp || !resp.meetingType) {\n return {};\n }\n return MeetingTypeFromApi({\n environment: onProductionGlobal() ? Environment.PROD : Environment.DEMO,\n calendarId: req.calendarSlug,\n meetingTypeApi: resp.meetingType,\n metadata: req.metadata,\n calendarSlug: req.calendarSlug\n });\n }));\n }\n listMeetingTypes(req) {\n return this.guestAPIService.listMeetingTypes(req).pipe(map(resp => {\n if (!resp || !resp.meetingTypes) {\n return [];\n }\n return resp.meetingTypes.map(mt => {\n return MeetingTypeFromApi({\n environment: onProductionGlobal() ? Environment.PROD : Environment.DEMO,\n calendarId: req.hostId,\n meetingTypeApi: mt,\n metadata: req.metadata,\n calendarSlug: req.calendarSlug\n });\n });\n }));\n }\n listAvailableTimeSlots(req) {\n return this.guestAPIService.listAvailableTimeSlots(req).pipe(map(resp => resp.timeSlots ? resp.timeSlots.map(ts => TimeSpanFromApi(ts)) : []));\n }\n bookMeeting(req) {\n return this.guestAPIService.bookMeeting({\n ...req,\n attendees: req.attendees,\n formAnswers: answersToAPI(req.formAnswers)\n });\n }\n cancelMeeting(req) {\n return this.guestAPIService.cancelMeeting(req).pipe(mapTo(null));\n }\n rescheduleMeeting(req) {\n return this.guestAPIService.rescheduleMeeting(req).pipe(mapTo(null));\n }\n // getHost returns an individual host by their hostId\n getHost(req) {\n return this.guestAPIService.getHost(req).pipe(map(resp => HostFromApi(resp.host)));\n }\n // getCalendar returns a Calendar, which may represent an individual host OR a grouping of hosts (I.e., a team)\n getCalendar(req) {\n return this.guestAPIService.getCalendar(req).pipe(map(resp => CalendarFromApi(resp.calendar)));\n }\n getBookedMeetingInfo(meetingId, authToken) {\n return this.guestAPIService.getGuestBookedMeeting({\n meetingId: meetingId,\n authToken: authToken\n }).pipe(map(resp => ({\n start: resp.startTime,\n end: resp.endTime,\n timeZone: resp.timeZone,\n meetingTypeId: resp.meetingTypeId,\n location: resp.location,\n locationGuideline: resp.locationGuideline,\n locationType: resp.locationType\n })));\n }\n isHostConfigured(req) {\n return this.guestAPIService.isHostConfigured(req).pipe(map(resp => resp.isConfigured));\n }\n getGroup(req) {\n return this.guestAPIService.getGroup(req);\n }\n getService(req) {\n return this.guestAPIService.getService(req);\n }\n }\n GuestService.ɵfac = function GuestService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GuestService)(i0.ɵɵinject(MeetingGuestApiService));\n };\n GuestService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GuestService,\n factory: GuestService.ɵfac,\n providedIn: 'root'\n });\n return GuestService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet HostService = /*#__PURE__*/(() => {\n class HostService {\n constructor(hostAPIService) {\n this.hostAPIService = hostAPIService;\n }\n // Use buildHostId to get an identifier that can be used in subsequent requests. See vendastaapis for more details\n buildHostId(req) {\n return this.hostAPIService.buildHostId({\n userId: req.userId,\n // Gross typecast exists because I want to restrict the properties on the map (for now).\n applicationContextProperties: req.applicationContextProperties\n }).pipe(map(res => res.hostId || \"\"));\n }\n doesCalendarExist(calendarIdentifier) {\n return this.hostAPIService.doesCalendarExist({\n calendarIdentifier: calendarIdentifier\n }).pipe(map(resp => resp.exists));\n }\n getCalendar(req) {\n return this.hostAPIService.getCalendar({\n calendarId: req.calendarId\n }).pipe(map(res => CalendarFromApi(res?.calendar)));\n }\n ensurePersonalCalendarExists(req) {\n return this.hostAPIService.ensurePersonalCalendarExists({\n userId: req.userId,\n applicationContextProperties: req.applicationContextProperties\n }).pipe(map(res => res ? res.calendarId : \"\"));\n }\n ensureGroupCalendarsExist(req) {\n return this.hostAPIService.ensureGroupCalendarsExist({\n externalIds: req.externalIds\n }).pipe(map(res => res?.calendarIds || []));\n }\n /*\n createCalendar creates a calendar which meeting types can be created for and events can be booked on\n The fields of a calendar are documented in https://github.com/vendasta/vendastaapis/blob/master/meetings/v1/shared.proto\n */\n createCalendar(req) {\n return this.hostAPIService.createCalendar(req);\n }\n updateCalendarSlug(calendarId, newSlug) {\n return this.hostAPIService.updateCalendar({\n calendarId: calendarId,\n calendarUpdate: {\n slug: newSlug\n },\n fieldMask: {\n paths: [\"slug\"]\n }\n }).pipe(mapTo(undefined));\n }\n updateCalendarHostUserIDs(calendarId, replacementHostUserIds) {\n return this.hostAPIService.updateCalendar({\n calendarId: calendarId,\n calendarUpdate: {\n hostUserIds: replacementHostUserIds\n },\n fieldMask: {\n paths: [\"host_user_ids\"]\n }\n }).pipe(mapTo(undefined));\n }\n getMeetingTypesForCalendars(req) {\n return this.hostAPIService.getMeetingTypesForCalendars({\n calendarIds: req.calendarIds\n }).pipe(map(res => {\n if (!res?.calendarMeetingTypesMap) {\n return {};\n }\n return Object.keys(res.calendarMeetingTypesMap).reduce((calendarToMeetingTypeMap, calendarId) => {\n const meetingTypes = (res.calendarMeetingTypesMap[calendarId]?.meetingTypes || []).map(mt => MeetingTypeFromApi({\n meetingTypeApi: mt,\n environment: onProductionGlobal() ? Environment.PROD : Environment.DEMO,\n calendarId,\n metadata: req.metadata\n }));\n return {\n ...calendarToMeetingTypeMap,\n [calendarId]: meetingTypes\n };\n }, {});\n }));\n }\n /*\n listMeetingTypes returns a list of meeting types for a host\n @param hostId: An identifier for an individual host\n @param metadata: optional metadata to include on the meeting type booking link\n @param calendarSlug: used to replace hostId in the url. Use it when you are confident you know the host's slug.\n - calendarSlug IS NOT USED TO RETRIEVE MEETING TYPES, ONLY TO MAKE THE BOOKING URLS\n */\n listMeetingTypes(req) {\n return this.hostAPIService.listMeetingTypes(req).pipe(map(resp => {\n if (!resp || !resp.meetingTypes) {\n return [];\n }\n return resp.meetingTypes.map(mt => {\n return MeetingTypeFromApi({\n meetingTypeApi: mt,\n calendarId: req.hostId,\n environment: onProductionGlobal() ? Environment.PROD : Environment.DEMO,\n metadata: req.metadata,\n calendarSlug: req.calendarSlug\n });\n });\n }));\n }\n /*\n getBookingUrl returns a link that can be used to book a meeting with this host.\n @param calendarId: An identifier for an individual host or grouping of hosts (i.e., team).\n @param @deprecated hostId: An identifier for an individual host.\n @param meetingTypeId: An optional identifier for the meeting type. Default: 30-minutes.\n @param metadata: optional metadata to include in the url.\n - metadata can be used to pre-fill certain form fields and will be stored during the booking process.\n - metadata can be obtained by subscribing to the booking event.\n @param calendarSlug: used to replace hostId in the url. Use it when you are confident you know the host's slug.\n */\n getBookingUrl(req) {\n return of(getBookingUrlImplementation({\n ...req,\n calendarId: req.calendarId || req.hostId,\n environment: onProductionGlobal() ? Environment.PROD : Environment.DEMO,\n calendarSlug: req.calendarSlug\n }));\n }\n /*\n getGeneralBookingUrl returns a link that can be used to select a meeting type to book with the given calendar.\n @param calendarId: An identifier for an individual host or grouping of hosts (i.e., team).\n @param metadata: optional metadata to include in the url.\n - metadata can be used to pre-fill certain form fields and will be stored during the booking process.\n - metadata can be obtained by subscribing to the booking event.\n @param calendarSlug: used to replace hostId in the url. Use it when you are confident you know the host's slug.\n */\n getGeneralBookingUrl(req) {\n return of(getGeneralBookingUrlImplementation({\n environment: onProductionGlobal() ? Environment.PROD : Environment.DEMO,\n calendarId: req.calendarId,\n metadata: req.metadata,\n calendarSlug: req.calendarSlug\n }));\n }\n /*\n getBookingUrlsMulti returns a mapping of hosts -> event types -> booking links.\n @param calendarId: An identifier for an individual host or grouping of hosts.\n @param meetingTypeSlug: meetingTypeSlugs are passed in the form {hostId: [meetingTypeSlug1, meetingTypeSlug2]}\n @param metadata: optional metadata to include in the url.\n - metadata can be used to pre-fill certain form fields and will be stored during the booking process.\n - metadata can be obtained by subscribing to the booking event.\n @param calendarSlug: used to replace hostId in the url. Use it when you are confident you know the host's slug.\n */\n getBookingUrlsMulti(req, metadata, calendarSlug) {\n return of(Object.keys(req).reduce((hostMap, calendarId) => {\n return {\n ...hostMap,\n [calendarId]: req[calendarId].reduce((meetingTypeMap, meetingTypeSlug) => {\n return {\n ...meetingTypeMap,\n [meetingTypeSlug]: getBookingUrlImplementation({\n calendarId,\n meetingTypeSlug,\n metadata,\n environment: onProductionGlobal() ? Environment.PROD : Environment.DEMO,\n calendarSlug\n })\n };\n }, {})\n };\n }, {}));\n }\n isHostConfigured(req) {\n return this.hostAPIService.isHostConfigured(req).pipe(map(resp => resp.isConfigured));\n }\n setGeneralAvailability(req) {\n const apiReq = {\n ...req,\n timeZone: new TimeZone(req.timeZone)\n };\n if (req.timeSlot) {\n apiReq.timeSlot = new TimeRange(req.timeSlot);\n }\n return this.hostAPIService.setGeneralAvailability(apiReq).pipe(mapTo(null));\n }\n listBookedMeetings(req) {\n return this.hostAPIService.listBookedMeetings({\n ...req,\n pagingOptions: new PagedRequestOptions({\n cursor: req.cursor,\n pageSize: req.pageSize\n }),\n filters: new ListBookedMeetingsRequestFilters(req.filters),\n timeZone: new TimeZone(req.timeZone)\n }).pipe(map(resp => {\n const meetings = (resp.meetings || []).map(meeting => meetingFromApi(meeting));\n return new PagedResponse(meetings, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore);\n }));\n }\n cancelMeeting(req) {\n return this.hostAPIService.cancelMeeting({\n ...req\n }).pipe(mapTo(null));\n }\n rescheduleMeeting(req) {\n return this.hostAPIService.rescheduleMeeting({\n ...req\n }).pipe(mapTo(null));\n }\n listAvailability(req) {\n return this.hostAPIService.listAvailability(req).pipe(map(response => {\n const results = (response.availabilityRules || []).filter(Boolean).map(a => {\n return {\n hostId: a.hostId || \"\",\n meetingTypeId: a.meetingTypeId || \"\",\n day: a.day,\n timeSlot: a.timeSlot,\n timeZone: a.timeZone\n };\n });\n return new PagedResponse(results, response.metadata.nextCursor, response.metadata.hasMore);\n }));\n }\n /* updatePreferences will update the host's preferences.\n * It is guaranteed to only update the fields provided.\n * For example:\n * updatePreferences({meetingIntegration: MeetingSource.MEETING_SOURCE_GOOGLE_MEET})\n * will only update the preference meetingIntegration to Google Meet. Keeping the other preferences the same.\n *\n * Alternatively, you can provide a list of keys to update as the second argument.\n * For example:\n * updatePreferences({...object with all fields}, ['meetingIntegration'])\n * will only update the field 'meetingIntegration' to the value in preferences.\n *\n * Calling with an empty object and no keys is a no-op, or an undefined object.\n * Calling with an object containing fields not in `Preferences` or with updateFields not linked to properties in\n * `Preferences` is an error.\n */\n updatePreferences(req) {\n const fieldMask = getFieldMask({\n o: req.preferences,\n updateFields: req.updateFields\n });\n if (fieldMask.paths.length === 0) {\n return of();\n }\n return this.hostAPIService.updateHostPreferences({\n hostId: req.hostId,\n preferences: req.preferences,\n fieldMask\n }).pipe(mapTo(undefined));\n }\n getPreferences(req) {\n return this.hostAPIService.getHostPreferences({\n hostId: req.hostId\n }).pipe(map(response => PreferencesFromApi(response.preferences)));\n }\n getMeeting(meetingId, location) {\n return this.hostAPIService.getHostMeeting({\n meetingId: meetingId,\n location: location\n }).pipe(map(resp => meetingFromApi(resp.meeting)));\n }\n updateMeetingMetadata(req) {\n return this.hostAPIService.updateMeetingMetadata({\n meetingId: req.meetingId,\n metadata: req.metadata\n }).pipe(mapTo(undefined));\n }\n hostBookMeeting(req) {\n return this.hostAPIService.hostBookMeeting({\n ...req,\n attendees: req.attendees\n });\n }\n bookMeeting(req) {\n return this.hostAPIService.bookMeeting(req).pipe(map(resp => resp.meetingId));\n }\n // createDefaultMeetingTypes will create what Meeting Scheduler deems to be the default meeting types.\n // If the calendar already has meeting types, this is guaranteed to be a no-op.\n createDefaultMeetingTypes(req) {\n return this.hostAPIService.createDefaultMeetingTypes({\n calendarIds: req.calendarIds\n }).pipe(mapTo(undefined));\n }\n createMeetingType(req) {\n const fieldMask = getFieldMask({\n o: req.meetingType,\n updateFields: req.updateFields\n });\n if (fieldMask.paths.length === 0) {\n return of();\n }\n return this.hostAPIService.createMeetingType({\n meetingType: MeetingTypeToApi({\n meetingType: req.meetingType\n }),\n fieldMask,\n hostId: req.HostId\n }).pipe(map(res => res.id));\n }\n /* updateMeetingType will update the meeting type fields.\n * It is guaranteed to only update the fields provided.\n * For example:\n * updateMeetingType({name: 'Onboarding'})\n * will only update the field 'name' to 'Onboarding'. Keeping the other fields the same.\n *\n * Alternatively, you can provide a list of keys to update as the second argument.\n * For example:\n * updateMeetingType({...object with all fields}, ['name'])\n * will only update the field 'name' to the value passed in.\n *\n * Calling with an empty object and no keys is a no-op, or an undefined object.\n * Calling with an object containing fields not in `MeetingType` or with updateFields not linked to properties in\n * `MeetingType` is an error.\n */\n updateMeetingType(req) {\n const fieldMask = getFieldMask({\n o: req.meetingType,\n updateFields: req.updateFields\n });\n if (fieldMask.paths.length === 0) {\n return of();\n }\n return this.hostAPIService.updateMeetingType({\n id: req.id,\n meetingType: MeetingTypeToApi({\n meetingType: req.meetingType\n }),\n fieldMask,\n hostId: req.HostId\n }).pipe(mapTo(undefined));\n }\n deleteMeetingType(req) {\n return this.hostAPIService.deleteMeetingType({\n id: req.id\n }).pipe(mapTo(undefined));\n }\n getHostsForCalendar(req) {\n return this.hostAPIService.getHostsForCalendar({\n calendarId: req.calendarId\n }).pipe(map(res => {\n return (res.hostUsers || []).map(hostuser => {\n return hostUserFromApi(hostuser);\n });\n }));\n }\n IsCalendarConfigured(req) {\n return this.hostAPIService.isCalendarConfigured(req);\n }\n sendMeetingRequestEmail(req) {\n return this.hostAPIService.sendMeetingRequestEmail(req);\n }\n createService(req) {\n const fieldMask = getFieldMask({\n o: req.service,\n updateFields: req.updateFields\n });\n if (fieldMask.paths.length === 0) {\n return of();\n }\n return this.hostAPIService.createService({\n service: ServiceTypeToApi({\n service: req.service\n }),\n fieldMask,\n hostId: req.HostId\n }).pipe(map(res => res.id));\n }\n updateService(req) {\n const fieldMask = getFieldMask({\n o: req.service,\n updateFields: req.updateFields\n });\n if (fieldMask.paths.length === 0) {\n return of();\n }\n return this.hostAPIService.updateService({\n id: req.id,\n service: ServiceTypeToApi({\n service: req.service\n }),\n fieldMask,\n hostId: req.HostId\n }).pipe(mapTo(undefined));\n }\n deleteService(req) {\n return this.hostAPIService.deleteService({\n id: req.id,\n hostId: req.hostId\n }).pipe(mapTo(undefined));\n }\n listServices(req) {\n return this.hostAPIService.listServices({\n hostId: req.hostId\n }).pipe(map(res => {\n if (!res || !res.services) {\n return [];\n }\n return res.services.map(service => ServiceFromApi({\n serviceApi: service,\n environment: onProductionGlobal() ? Environment.PROD : Environment.DEMO\n }));\n }));\n }\n createGroup(req) {\n const fieldMask = getFieldMask({\n o: req.group,\n updateFields: req.updateFields\n });\n if (fieldMask.paths.length === 0) {\n return of();\n }\n return this.hostAPIService.createGroup({\n group: GroupTypeToAPi({\n group: req.group\n }),\n fieldMask,\n hostId: req.HostId\n }).pipe(map(res => res.id));\n }\n updateGroup(req) {\n const fieldMask = getFieldMask({\n o: req.group,\n updateFields: req.updateFields\n });\n if (fieldMask.paths.length === 0) {\n return of();\n }\n return this.hostAPIService.updateGroup({\n id: req.id,\n group: GroupTypeToAPi({\n group: req.group\n }),\n fieldMask,\n hostId: req.HostId\n }).pipe(mapTo(undefined));\n }\n deleteGroup(req) {\n return this.hostAPIService.deleteGroup({\n id: req.id,\n hostId: req.hostId\n }).pipe(mapTo(undefined));\n }\n listGroups(req) {\n return this.hostAPIService.listGroups({\n hostId: req.hostId\n }).pipe(map(res => {\n if (!res || !res.groups) {\n return [];\n }\n return res.groups.map(group => GroupFromApi({\n groupApi: group,\n environment: onProductionGlobal() ? Environment.PROD : Environment.DEMO\n }));\n }));\n }\n getGroup(req) {\n return this.hostAPIService.getGroup(req);\n }\n getService(req) {\n return this.hostAPIService.getService(req);\n }\n checkGroupOrServiceSlugExist(req) {\n return this.hostAPIService.checkGroupOrServiceSlugExist(req).pipe(map(res => res.exists));\n }\n }\n HostService.ɵfac = function HostService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HostService)(i0.ɵɵinject(MeetingHostApiService));\n };\n HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: \"root\"\n });\n return HostService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CalendarType, Contact, CreateCalendarRequest, CreateCalendarResponse, DayOfWeek, FormFieldType, GuestService, HostService, KnownCalendarApplicationContextKeys, KnownCalendarExternalIntegrations, MeetingLocationType, MeetingSource, MeetingSourceInfo, MeetingSourceListResponse, MeetingSourceOrigin, MeetingSourceQuery, MeetingSourceStatus, MeetingsService, PagedResponse, WeekdayAvailability, WellKnownFormFieldIds, WellKnownMeetingMetadataKeys, addMetadataToBookingLink, durationFromString, durationStringToMinutes, durationToString, meetingSchedulerIdToMetadataKey, newBusinessCenterApplicationContextProperties, newPartnerCenterApplicationContextProperties, newSalesCenterApplicationContextProperties };\n"],"mappings":"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","names":["enumStringToValue$b","enumRef","value","enumStringToValue$a","enumStringToValue$8","enumStringToValue$7","enumStringToValue$4","enumStringToValue$2","generateMeetingPassword","zoomAllowedChars","ints","v","createZoomInstantMeetingRequest","meetingTitle","now","meetingAgenda","recurrence","ZoomMeetingRecurrenceType","req","ZoomMeetingType","CreateZoomMeetingRequest","createMeetInstantMeetingRequest","startDateTime","attendees","start","end","GoogleMeetCreateMeetingRequest","TimeSpanFromApi","tsAPI","HostFromApi","hostAPI","onProductionGlobal","getBookingUrlImplementation","domain","getDomainFromEnvironment","meetingType","calendarSlug","url","addMetadataToBookingLink","getGeneralBookingUrlImplementation","env","Environment","m","queryParams","params","key","MeetingTypeFromApi","bookingUrl","form","__spreadProps","__spreadValues","field","FormFieldType","MeetingLocationType","MeetingTypeToApi","meetingFromApi","meetingApi","a","answersFromAPI","formAnswers","answersToAPI","CalendarFromApi","calendarAPI","CalendarType","PreferencesFromApi","preferences","MeetingSource","durationFromString","durationString","secondsString","nanosecondString","seconds","nanoseconds","durationStringToMinutes","d","minutes","getFieldMask","keysToUpdate","FieldMask","newBusinessCenterApplicationContextProperties","newPartnerCenterApplicationContextProperties","hostUserFromApi","hostUser","GroupTypeToAPi","AssociationTypeToApi","ServiceTypeToApi","association","AssociationFromApi","associationApi","GroupFromApi","groupId","groupSlug","getBookingURL","environment","slug","calendarId","ServiceFromApi","serviceId","serviceSlug","MeetingSourceStatus","ZoomApprovalType","ZoomMonthlyWeek","ZoomMonthlyWeekDay","ZoomRegistrationType","DayOfWeek","MeetingSourceInfo","MeetingSourceListRequest","MeetingSourceListResponse","MeetingSourceQuery","CreateZoomMeetingResponse","ZoomMeetingRecurrence","ZoomMeetingSettings","ZoomMeetingTrackingField","ZoomOccurrence","GoogleMeetConferenceData","GoogleMeetConferenceRequestStatus","GoogleMeetConferenceSolution","GoogleMeetConferenceSolutionKey","GoogleMeetCreateConferenceRequest","GoogleMeetCreateMeetingResponse","GoogleMeetEntryPoint","GoogleMeetMeeting","GoogleMeetMeetingAttendee","GoogleMeetMeetingCreator","GoogleMeetMeetingDateTime","GoogleMeetMeetingReminder","GoogleMeetMeetingReminders","Answer","Answers","Attachment","Attendee","Calendar","Contact","Host","HostUser","PagedRequestOptions","PagedResponseMetadata","Preferences","TimeRange","Field","Form","MeetingType","DateRange","EventGroupAndServiceAssociations","Group","Service","BookMeetingRequest","BookMeetingResponse","GetCalendarRequest","GetCalendarResponse","GetGroupRequest","GetGroupResponse","GetHostRequest","GetHostResponse","GetMeetingTypeRequest","GetMeetingTypeResponse","GetServiceRequest","GetServiceResponse","GuestCancelMeetingRequest","GuestGetBookedMeetingRequest","GuestGetBookedMeetingResponse","GuestIsHostConfiguredRequest","GuestIsHostConfiguredResponse","GuestRescheduleMeetingRequest","ListAvailableTimeSlotsRequest","ListAvailableTimeSlotsResponse","ListMeetingTypesRequest","ListMeetingTypesResponse","AvailabilityRule","BuildHostIdRequest","BuildHostIdResponse","CalendarMigrationResponse","CancelMeetingRequest","CheckGroupOrServiceSlugExistRequest","CheckGroupOrServiceSlugExistResponse","CreateAvailabilityRequest","CreateAvailabilityResponse","CreateCalendarRequest","CreateCalendarResponse","CreateDefaultMeetingTypesRequest","CreateGroupRequest","CreateGroupResponse","CreateMeetingTypeRequest","CreateMeetingTypeResponse","CreateServiceRequest","CreateServiceResponse","DeleteAvailabilityRequest","DeleteGroupRequest","DeleteMeetingTypeRequest","DeleteServiceRequest","DoesCalendarExistRequest","DoesCalendarExistResponse","EnsureGroupCalendarsExistRequest","EnsureGroupCalendarsExistResponse","EnsurePersonalCalendarExistsRequest","EnsurePersonalCalendarExistsResponse","ListBookedMeetingsRequestFilters","ListAvailabilityRequestFilters","GetHostMeetingRequest","GetHostMeetingResponse","GetHostPreferencesRequest","GetHostPreferencesResponse","GetHostsForCalendarRequest","GetHostsForCalendarResponse","GetMeetingTypesForCalendarsRequest","GetMeetingTypesForCalendarsResponse","HostBookMeetingRequest","HostBookMeetingResponse","HostGetCalendarRequest","HostGetCalendarResponse","HostGetMeetingTypeRequest","HostGetMeetingTypeResponse","HostListMeetingTypesRequest","HostListMeetingTypesResponse","IsCalendarConfiguredRequest","IsCalendarConfiguredResponse","IsHostConfiguredRequest","IsHostConfiguredResponse","ListAvailabilityRequest","ListAvailabilityResponse","ListBookedMeetingsRequest","ListBookedMeetingsResponse","ListGroupsRequest","ListGroupsResponse","ListServicesRequest","ListServicesResponse","Meeting","MeetingTypeList","RescheduleMeetingRequest","SendMeetingRequestEmailRequest","SetGeneralAvailabilityRequest","UpdateAvailabilityRequest","UpdateCalendarRequest","UpdateGroupRequest","UpdateHostPreferencesRequest","UpdateMeetingMetadataRequest","UpdateMeetingTypeRequest","UpdateServiceRequest","WeekdayAvailability","TimeOfDay","TimeZone","hostMap","HostService$1","MeetingSourceAPIApiService","ZoomApiService","GoogleMeetApiService","MeetingsService","MeetingGuestApiService","MeetingHostApiService","WellKnownMeetingMetadataKeys","PagedResponse","MeetingSourceOrigin","GuestService","HostService","init_vendasta_meetings","__esmMin","init_core","init_esm","init_operators","init_http","_MeetingSourceInfo","proto","kwargs","toReturn","_MeetingSourceListRequest","_MeetingSourceListResponse","_MeetingSourceQuery","_CreateZoomMeetingRequest","_CreateZoomMeetingResponse","_ZoomMeetingRecurrence","_ZoomMeetingSettings","_ZoomMeetingTrackingField","_ZoomOccurrence","_GoogleMeetConferenceData","_GoogleMeetConferenceRequestStatus","_GoogleMeetConferenceSolution","_GoogleMeetConferenceSolutionKey","_GoogleMeetCreateConferenceRequest","_GoogleMeetCreateMeetingRequest","_GoogleMeetCreateMeetingResponse","_GoogleMeetEntryPoint","_GoogleMeetMeeting","_GoogleMeetMeetingAttendee","_GoogleMeetMeetingCreator","_GoogleMeetMeetingDateTime","_GoogleMeetMeetingReminder","_GoogleMeetMeetingReminders","_Answer","_Answers","_Attachment","_Attendee","_Calendar","obj","k","_Contact","_Host","_HostUser","_PagedRequestOptions","_PagedResponseMetadata","_Preferences","_TimeRange","_Field","_Form","_MeetingType","_DateRange","_EventGroupAndServiceAssociations","_Group","_Service","_BookMeetingRequest","_BookMeetingResponse","_GetCalendarRequest","_GetCalendarResponse","_GetGroupRequest","_GetGroupResponse","_GetHostRequest","_GetHostResponse","_GetMeetingTypeRequest","_GetMeetingTypeResponse","_GetServiceRequest","_GetServiceResponse","_GuestCancelMeetingRequest","_GuestGetBookedMeetingRequest","_GuestGetBookedMeetingResponse","_GuestIsHostConfiguredRequest","_GuestIsHostConfiguredResponse","_GuestRescheduleMeetingRequest","_ListAvailableTimeSlotsRequest","_ListAvailableTimeSlotsResponse","_ListMeetingTypesRequest","_ListMeetingTypesResponse","_FieldMask","_AvailabilityRule","_BuildHostIdRequest","_BuildHostIdResponse","_CalendarMigrationResponse","_CancelMeetingRequest","_CheckGroupOrServiceSlugExistRequest","_CheckGroupOrServiceSlugExistResponse","_CreateAvailabilityRequest","_CreateAvailabilityResponse","_CreateCalendarRequest","_CreateCalendarResponse","_CreateDefaultMeetingTypesRequest","_CreateGroupRequest","_CreateGroupResponse","_CreateMeetingTypeRequest","_CreateMeetingTypeResponse","_CreateServiceRequest","_CreateServiceResponse","_DeleteAvailabilityRequest","_DeleteGroupRequest","_DeleteMeetingTypeRequest","_DeleteServiceRequest","_DoesCalendarExistRequest","_DoesCalendarExistResponse","_EnsureGroupCalendarsExistRequest","_EnsureGroupCalendarsExistResponse","_EnsurePersonalCalendarExistsRequest","_EnsurePersonalCalendarExistsResponse","_ListBookedMeetingsRequestFilters","_ListAvailabilityRequestFilters","_GetHostMeetingRequest","_GetHostMeetingResponse","_GetHostPreferencesRequest","_GetHostPreferencesResponse","_GetHostsForCalendarRequest","_GetHostsForCalendarResponse","_GetMeetingTypesForCalendarsRequest","_GetMeetingTypesForCalendarsResponse","_HostBookMeetingRequest","_HostBookMeetingResponse","_HostGetCalendarRequest","_HostGetCalendarResponse","_HostGetMeetingTypeRequest","_HostGetMeetingTypeResponse","_HostListMeetingTypesRequest","_HostListMeetingTypesResponse","_IsCalendarConfiguredRequest","_IsCalendarConfiguredResponse","_IsHostConfiguredRequest","_IsHostConfiguredResponse","_ListAvailabilityRequest","_ListAvailabilityResponse","_ListBookedMeetingsRequest","_ListBookedMeetingsResponse","_ListGroupsRequest","_ListGroupsResponse","_ListServicesRequest","_ListServicesResponse","_Meeting","_MeetingTypeList","_RescheduleMeetingRequest","_SendMeetingRequestEmailRequest","_SetGeneralAvailabilityRequest","_UpdateAvailabilityRequest","_UpdateCalendarRequest","_UpdateGroupRequest","_UpdateHostPreferencesRequest","_UpdateMeetingMetadataRequest","_UpdateMeetingTypeRequest","_UpdateServiceRequest","_WeekdayAvailability","_TimeOfDay","_TimeZone","__ngFactoryType__","ɵɵdefineInjectable","inject","HttpClient","HttpHeaders","r","request","map","resp","_api","zoom","meet","meetingSources","namespace","origin","iamUserId","queriedSources","meetingSource","gMeetAttendees","throwError","meetReq","topic","agenda","duration","timezone","meetingPassword","endDateTime","ɵɵinject","results","nextCursor","hasMore","guestAPIService","mt","ts","mapTo","meetingId","authToken","hostAPIService","res","calendarIdentifier","newSlug","replacementHostUserIds","calendarToMeetingTypeMap","meetingTypes","of","metadata","meetingTypeMap","meetingTypeSlug","apiReq","meetings","meeting","response","fieldMask","location","hostuser","service","group"],"x_google_ignoreList":[0]}