{ "version": 3, "sources": ["src/app/routes/availability/favorites/favorites-list.component.ts", "src/app/routes/availability/favorites/favorites-list.component.html", "src/app/routes/availability/favorites/components/availability-list-item/availability-list-item.component.ts", "src/app/routes/availability/favorites/components/availability-list-item/availability-list-item.component.html", "src/app/routes/availability/favorites/services/favorites-list.service.ts"], "sourcesContent": ["import { Component, HostListener, Input, OnInit } from '@angular/core'\nimport { ActivatedRoute, RouterModule } from '@angular/router'\nimport { UserService } from '@app/core/_services/user.service'\nimport { firstValueFrom, forkJoin, Subject } from 'rxjs'\nimport { take, takeUntil } from 'rxjs/operators'\nimport { User } from '@app/core/_models/user'\nimport moment from 'moment-timezone/builds/moment-timezone-with-data-10-year-range.min'\nimport { BookSessionsService, BookSessionInfo } from '@app/core/_services/book-sessions.service'\nimport { faStar } from '@fortawesome/pro-solid-svg-icons'\n\nimport { BookingSource, SessionTileSource } from '@app/core/_services/analytics.service'\nimport { Title } from '@angular/platform-browser'\nimport { DialogService } from '@app/core/_services/dialog.service'\nimport { CancelSessionService, ConfirmedSessionsService } from '@app/core/_services'\nimport { UserAvailabiltyService } from '@app/core/_services/user-availabilty.service'\nimport {\n DURATION_FILTER_INCLUDE_25,\n DURATION_FILTER_INCLUDE_50,\n DURATION_FILTER_INCLUDE_75,\n DURATION_FILTER_INCLUDE_ALL,\n} from '@app/shared-availability-list/components/availability-list-controls/availability-list-controls.component'\nimport { SESSION_STATE_DIRECT_BOOKER } from '@app/core/_services/session-state.service'\nimport { faCalendarExclamation, faCalendarStar } from '@fortawesome/pro-regular-svg-icons'\nimport {\n BookSessionPreferences,\n BookSessionsResponse,\n FavoritesAvailabilityResponse,\n SESSION_ACTIVITY_TYPE_ANYTHING,\n SessionActivityType,\n} from '@app/core/_models'\nimport { faRefresh } from '@fortawesome/pro-solid-svg-icons'\nimport { SelectButtonChangeEvent, SelectButtonModule } from 'primeng/selectbutton'\nimport { ToggleSwitchChangeEvent, ToggleSwitchModule } from 'primeng/toggleswitch'\nimport { ContentStackService } from '@app/core/_services/content-stack.service'\nimport { ScrollPanelModule } from 'primeng/scrollpanel'\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome'\nimport { CommonModule } from '@angular/common'\nimport { SelectModule } from 'primeng/select'\nimport { FormsModule } from '@angular/forms'\nimport { DividerModule } from 'primeng/divider'\nimport {\n AvailabilityListBookSession,\n AvailabilityListCancelSession,\n AvailabilityListItemComponent,\n AvailabilityListSelectedSession,\n AvailabilitySessionListItem,\n} from './components/availability-list-item/availability-list-item.component'\nimport {\n FavoritesAvailabilityList,\n FavoritesAvailabilityListTimes,\n FavoritesListService,\n} from './services/favorites-list.service'\nimport { MenuItem } from 'primeng/api'\nimport { BreadcrumbModule } from 'primeng/breadcrumb'\n\ntype AvailabilityListContentState =\n | 'loading'\n | 'emptyList'\n | 'validList'\n | 'noFavorites'\n | 'emptyForSelectedDuration'\n\ninterface DurationOption {\n labelDropdown: string\n labelButton: string\n value: number\n}\n\nconst DURATION_OPTIONS: DurationOption[] = [\n { labelDropdown: 'All durations', labelButton: 'All', value: DURATION_FILTER_INCLUDE_ALL },\n { labelDropdown: '25 minutes', labelButton: '25m', value: DURATION_FILTER_INCLUDE_25 },\n { labelDropdown: '50 minutes', labelButton: '50m', value: DURATION_FILTER_INCLUDE_50 },\n { labelDropdown: '75 minutes', labelButton: '75m', value: DURATION_FILTER_INCLUDE_75 },\n]\n\n@Component({\n selector: 'fm-favorites-list',\n templateUrl: './favorites-list.component.html',\n styleUrls: ['./favorites-list.component.scss'],\n imports: [\n RouterModule,\n BreadcrumbModule,\n AvailabilityListItemComponent,\n CommonModule,\n FormsModule,\n FontAwesomeModule,\n SelectModule,\n SelectButtonModule,\n ToggleSwitchModule,\n ScrollPanelModule,\n DividerModule,\n ],\n standalone: true,\n})\nexport class FavoritesListComponent implements OnInit {\n @Input() dynamicPanel: boolean = false\n\n public currentUser: User\n public listContentState: AvailabilityListContentState = 'loading'\n public filteredFavoritesSessionList: FavoritesAvailabilityList[] =\n new Array()\n public completeList: AvailabilitySessionListItem[] = []\n public hasFavorites: boolean\n public selectedSession: number = 0\n public selectedUserId: string\n public disableBookSessions: boolean = false\n public faStar = faStar\n public faRefresh = faRefresh\n public faCalendarStar = faCalendarStar\n public faCalendarExclamation = faCalendarExclamation\n private ngUnsubscribe: Subject = new Subject()\n private favoritesAvailabilityResponse: FavoritesAvailabilityResponse\n public selectedQuietMode: boolean = false\n\n public startDate: moment\n public endDate: moment\n\n // Consolidate this when only the new layout is available\n public selectedOption = DURATION_FILTER_INCLUDE_ALL\n public durationOptions = DURATION_OPTIONS\n public selectedDurationOption = this.durationOptions[0]\n\n // Breadcrumbs\n breadcrumbItems: MenuItem[] = [\n { label: 'People', routerLink: '/people', queryParams: { type: 'favorites' } },\n { label: 'Favorites schedule' },\n ]\n\n constructor(\n public userService: UserService,\n private route: ActivatedRoute,\n private bookSessionService: BookSessionsService,\n private titleService: Title,\n private dialogService: DialogService,\n private confirmedSessionsService: ConfirmedSessionsService,\n private cancelSessionService: CancelSessionService,\n private userAvailabiltyService: UserAvailabiltyService,\n private favoritesListService: FavoritesListService,\n private contentStackService: ContentStackService,\n ) {}\n\n @HostListener('click')\n clicked() {\n this.selectedSession = 0\n }\n\n ngOnInit(): void {\n this.currentUser = this.route.snapshot.data['currentUser']\n if (this.currentUser) {\n this.continueInit()\n } else {\n this.userService.currentUser.pipe(take(1)).subscribe({\n next: (user) => {\n this.currentUser = user\n this.continueInit()\n },\n })\n }\n }\n\n private continueInit(): void {\n this.startDate = moment.tz(this.currentUser.timeZone).startOf('day')\n this.endDate = this.startDate.clone().add(14, 'days')\n this.titleService.setTitle(\"Favorites' availability - Focusmate\")\n this.queryFavoritesAvailability()\n\n this.contentStackService.refresh$.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.queryFavoritesAvailability()\n })\n }\n\n reloadSelect() {\n this.queryFavoritesAvailability()\n }\n\n onQuietModeToggleSwtichChange(event: ToggleSwitchChangeEvent): void {\n this.selectedQuietMode = event.checked\n if (this.listContentState !== 'loading') {\n this.populateSessionList()\n }\n }\n onQuietModeChanged(e) {\n this.selectedQuietMode = e\n if (this.listContentState !== 'loading') {\n this.populateSessionList()\n }\n }\n\n clearList() {\n this.completeList = this.favoritesListService.removeConfirmedSessionsFromList(\n this.completeList,\n )\n this.completeList = this.favoritesListService.removeAvailableSessionsFromList(\n this.completeList,\n )\n this.filteredFavoritesSessionList.length = 0\n }\n\n private queryFavoritesAvailability() {\n this.listContentState = 'loading'\n this.clearList()\n let start = this.startDate.valueOf()\n let end = this.endDate.valueOf()\n\n this.userAvailabiltyService.queryAvailableTimesWithFavorites(start, end).subscribe({\n next: (v) => this.receivedFavoriteUserAvailability(v),\n error: (e) => this.receivedFavoriteUserAvailabilityError(e),\n })\n }\n\n private receivedFavoriteUserAvailability(\n favoriteUsersAvailability: FavoritesAvailabilityResponse,\n ) {\n this.favoritesAvailabilityResponse = favoriteUsersAvailability\n this.favoritesListService.populateListFromFavoritesAvailabilityResponse(\n favoriteUsersAvailability,\n this.completeList,\n this.currentUser.timeZone,\n )\n this.hasFavorites = favoriteUsersAvailability.availability.favoritesCount > 0\n\n if (this.hasFavorites) {\n this.queryUserConfirmedSessions()\n } else {\n this.populateSessionList()\n }\n }\n\n private receivedFavoriteUserAvailabilityError(e) {}\n\n private queryUserConfirmedSessions() {\n this.confirmedSessionsService.getConfirmedSessions().subscribe({\n next: (v) => this.receivedConfirmedSessions(v),\n error: (e) => this.receivedConfirmedSessions([]),\n })\n }\n\n private receivedConfirmedSessions(confirmedSesions) {\n const start = this.startDate.valueOf()\n const end = this.endDate.valueOf()\n this.favoritesListService.populateListFromConfirmedSessionsResponse(\n confirmedSesions,\n this.completeList,\n start,\n end,\n this.currentUser.timeZone,\n )\n this.populateSessionList()\n }\n\n private populateSessionList() {\n this.favoritesListService.populateFilteredDisplayList(\n this.filteredFavoritesSessionList,\n this.completeList,\n this.currentUser.timeZone,\n this.selectedOption,\n this.selectedQuietMode,\n )\n this.setContentStateEmptyOrValid()\n }\n\n onDurationDropDownChanged(event: SelectButtonChangeEvent): void {\n this.selectedDurationOption = this.durationOptions.find(\n (element) => element.value == event.value,\n )\n if (this.selectedOption !== event.value) {\n this.selectedOption = event.value\n this.populateSessionList()\n }\n }\n\n durationFilterSelected(value: number): void {\n if (this.selectedOption !== value) {\n this.selectedOption = value\n this.populateSessionList()\n }\n }\n\n private setContentStateEmptyOrValid() {\n if (!this.hasFavorites) {\n this.listContentState = 'noFavorites'\n } else if (this.completeList.length === 0) {\n this.listContentState = 'emptyList'\n } else if (this.filteredFavoritesSessionList.length === 0) {\n this.listContentState = 'emptyForSelectedDuration'\n } else {\n this.listContentState = 'validList'\n }\n }\n\n public selectSession(sessionInfo: AvailabilityListSelectedSession) {\n this.selectedSession = sessionInfo.sessionTime\n this.selectedUserId = sessionInfo.userId\n }\n\n public bookSession(availabilityListBookSession: AvailabilityListBookSession) {\n const preferences: BookSessionPreferences = {\n favorites: { value: 'preferred' },\n quietMode: { value: this.selectedQuietMode },\n }\n let sessionTime = availabilityListBookSession.sessionTime\n let duration = availabilityListBookSession.duration\n let bookSessionInfo: BookSessionInfo = {\n sessionTime: sessionTime,\n userAvailabilityCode: '',\n duration: duration,\n userId: availabilityListBookSession.userId,\n title: '',\n preferences,\n activityType: SESSION_ACTIVITY_TYPE_ANYTHING,\n }\n this.disableBookSessions = true\n\n this.bookSessionService\n .bookSessions(\n [bookSessionInfo],\n this.currentUser.timeZone,\n BookingSource.ConsolidatedFavoritesList,\n )\n .pipe(take(1))\n .subscribe({\n next: (v) => this.receivedBookSessionResult(availabilityListBookSession, v),\n error: (e) => this.receivedBookSessionError(sessionTime, e),\n complete: () => this.receivedBookSessionComplete(sessionTime),\n })\n }\n\n public receivedBookSessionResult(\n availabilityListBookSession: AvailabilityListBookSession,\n result: BookSessionsResponse[],\n ) {\n let sessionTime = availabilityListBookSession.sessionTime\n let duration = availabilityListBookSession.duration\n let userId = availabilityListBookSession.userId\n let parsedRes = this.bookSessionService.parseBookResponse(result)\n\n if (parsedRes['numSuccess'] !== 0) {\n const sessionInfo = result.find((element) => element.sessionTime == sessionTime)\n this.updateSessionListWithBookedSession(sessionTime, userId, sessionInfo)\n this.dialogService.openConfirmTransaction('Session booked!')\n }\n\n if (parsedRes['planLimitReached'] === true) {\n this.dialogService.openPlanLimitReachedDialog()\n } else if (parsedRes['sessionConflict'] === true) {\n const conflictTimes = parsedRes['conflicts'].map((conflict) => conflict.sessionTime)\n this.dialogService\n .openSessionConflictWithCancel(conflictTimes, this.currentUser.timeZone)\n .afterClosed()\n .pipe(take(1))\n .subscribe((actionResult) => {\n if (actionResult.action === 'cancelAndBook') {\n const preferences: BookSessionPreferences = {\n favorites: { value: 'preferred' },\n quietMode: { value: this.selectedQuietMode },\n }\n\n let bookSessionInfo: BookSessionInfo = {\n sessionTime: sessionTime,\n userAvailabilityCode: '',\n duration: duration,\n userId: userId,\n title: '',\n preferences,\n activityType: SESSION_ACTIVITY_TYPE_ANYTHING,\n }\n this.bookAndCancel(bookSessionInfo, parsedRes['conflicts'])\n }\n })\n } else if (\n parsedRes['inviterNoLongerAvailable'] === true ||\n parsedRes['alreadyStarted'] === true\n ) {\n this.dialogService.openInviterMeetingNoLongerAvailable()\n this.queryFavoritesAvailability()\n }\n }\n\n public updateSessionListWithBookedSession(\n sessionTime: number,\n userId: string,\n sessionInfo: BookSessionsResponse,\n ) {\n /* Booking a session via availabiity list will hardcode activityType to anything */\n this.completeList.forEach((session) => {\n if (session.sessionTime === sessionTime && session.partnerUserId == userId) {\n session.externalId = sessionInfo.externalId\n session.confirmed = true\n session.actionComplete = true\n session.sessionState = SESSION_STATE_DIRECT_BOOKER\n session.activityType = SESSION_ACTIVITY_TYPE_ANYTHING\n }\n })\n\n this.filteredFavoritesSessionList.forEach((day) => {\n day.times.forEach((time) => {\n time.sessions25.forEach((session) => {\n if (session.sessionTime === sessionTime && session.partnerUserId == userId) {\n session.externalId = sessionInfo.externalId\n session.confirmed = true\n session.actionComplete = true\n session.sessionState = SESSION_STATE_DIRECT_BOOKER\n session.activityType = SESSION_ACTIVITY_TYPE_ANYTHING\n }\n })\n time.sessions50.forEach((session) => {\n if (session.sessionTime === sessionTime && session.partnerUserId == userId) {\n session.externalId = sessionInfo.externalId\n session.confirmed = true\n session.actionComplete = true\n session.sessionState = SESSION_STATE_DIRECT_BOOKER\n session.activityType = SESSION_ACTIVITY_TYPE_ANYTHING\n }\n })\n time.sessions75.forEach((session) => {\n if (session.sessionTime === sessionTime && session.partnerUserId == userId) {\n session.externalId = sessionInfo.externalId\n session.confirmed = true\n session.actionComplete = true\n session.sessionState = SESSION_STATE_DIRECT_BOOKER\n session.activityType = SESSION_ACTIVITY_TYPE_ANYTHING\n }\n })\n })\n })\n }\n\n public receivedBookSessionError(sessionTime: number, e) {\n this.disableBookSessions = false\n this.updateActionComplete(true, sessionTime)\n }\n\n public receivedBookSessionComplete(sessionTime: number) {\n this.selectedSession = 0\n this.disableBookSessions = false\n this.updateActionComplete(true, sessionTime)\n }\n\n private bookAndCancel(\n bookInfo: BookSessionInfo,\n sessionsToCancel: { externalId: string; sessionTime: number }[],\n ) {\n let cancelRequests = []\n for (let { externalId, sessionTime } of sessionsToCancel) {\n cancelRequests.push(\n this.cancelSessionService.cancelSession(\n externalId,\n SessionTileSource.AvailabilityConflictModal,\n ),\n )\n }\n\n forkJoin(cancelRequests).subscribe({\n next: (v) => {\n for (let { externalId, sessionTime } of sessionsToCancel) {\n this.updateSessionListWithCanceledSession(sessionTime)\n }\n this.bookSession(bookInfo)\n },\n error: (e) => {\n this.bookSession(bookInfo)\n },\n })\n }\n\n updateActionComplete(complete: boolean, sessionTime: number) {\n for (let day of this.filteredFavoritesSessionList) {\n for (let time of day.times) {\n for (let session of time.sessions25) {\n if (session.sessionTime === sessionTime) {\n session.actionComplete = complete\n return\n }\n }\n for (let session of time.sessions50) {\n if (session.sessionTime === sessionTime) {\n session.actionComplete = complete\n return\n }\n }\n for (let session of time.sessions75) {\n if (session.sessionTime === sessionTime) {\n session.actionComplete = complete\n return\n }\n }\n }\n }\n }\n\n cancelSession(availabilityListcancelSession: AvailabilityListCancelSession) {\n this.cancelSessionService\n .cancelSession(\n availabilityListcancelSession.externalId,\n SessionTileSource.ConsolidatedFavoritesList,\n )\n .subscribe({\n next: (v) =>\n this.receivedCancelSessionSuccess(\n availabilityListcancelSession.sessionTime,\n availabilityListcancelSession.userId,\n ),\n error: (e) => this.queryFavoritesAvailability(),\n })\n }\n\n private receivedCancelSessionSuccess(sessionTime: number, userId: string) {\n this.updateSessionListWithCanceledSession(sessionTime)\n\n this.dialogService.openConfirmTransaction('Session canceled')\n }\n\n private getOriginalActivityTypeFromList(\n availabiityList: FavoritesAvailabilityResponse,\n sessionTime: number,\n ): SessionActivityType | null {\n let session = availabiityList.availability.availableSessions.find(\n (element) => element.sessionTime == sessionTime,\n )\n return session?.activityType || null\n }\n\n private async updateSessionListWithCanceledSession(sessionTime: number) {\n /*\n\t\tUse Case 1: Session canceled had no partner, remove it from the list completely\n\t\tUse Case 2: Session canceled had a partner, but was not a favorite partner that\n\t\t shares their calendar, remove it from the list completely\n\t\tUse Case 3: Session canceled was with a saved partner that is sharing their calendar\n\t\t update state and keep in list\n\t\t\n\t\tNOTE: When canceling a session we must ensure to show the correct\n\t\tactivity icon for the available session.\n\t\tCase 1: When we first loaded the list, this session was not booked and\n\t\twe have saved off the original activity type. Update it from our saved list\n\t\tCase 2: When we first loaded the list, this session was booked. In this case\n\t\twe do not know the activity type the partner had set, so querying it again and\n\t\trefresh the list\n\t\t*/\n let partnersActivityType = this.getOriginalActivityTypeFromList(\n this.favoritesAvailabilityResponse,\n sessionTime,\n )\n\n if (!partnersActivityType) {\n const start = this.startDate.valueOf()\n const end = this.endDate.valueOf()\n this.favoritesAvailabilityResponse = await firstValueFrom(\n this.userAvailabiltyService.queryAvailableTimesWithFavorites(start, end),\n )\n partnersActivityType = this.getOriginalActivityTypeFromList(\n this.favoritesAvailabilityResponse,\n sessionTime,\n )\n }\n\n for (let i = 0; i < this.completeList.length; ++i) {\n if (\n this.completeList[i].sessionTime === sessionTime &&\n this.completeList[i].confirmed\n ) {\n if (this.completeList[i].saved && this.completeList[i].sharedAvailability) {\n this.completeList[i].confirmed = false\n this.completeList[i].cancelConfirm = false\n this.completeList[i].actionComplete = true\n this.completeList[i].activityType = partnersActivityType\n this.completeList[i].externalId = null\n } else {\n this.completeList.splice(i, 1)\n }\n break\n }\n }\n\n let found = false\n for (let day = 0; day < this.filteredFavoritesSessionList.length; ++day) {\n for (let time = 0; time < this.filteredFavoritesSessionList[day].times.length; ++time) {\n if (this.filteredFavoritesSessionList[day].times[time].sessionTime == sessionTime) {\n found = this.updateOrRemoveCanceledSession(\n this.filteredFavoritesSessionList[day].times[time].sessions25,\n partnersActivityType,\n )\n found =\n found ||\n this.updateOrRemoveCanceledSession(\n this.filteredFavoritesSessionList[day].times[time].sessions50,\n partnersActivityType,\n )\n found =\n found ||\n this.updateOrRemoveCanceledSession(\n this.filteredFavoritesSessionList[day].times[time].sessions75,\n partnersActivityType,\n )\n\n if (found) {\n if (\n this.isTimeNodeEmpty(this.filteredFavoritesSessionList[day].times[time])\n ) {\n this.filteredFavoritesSessionList[day].times.splice(time, 1)\n\n if (this.isDayNodeEmpty(this.filteredFavoritesSessionList[day])) {\n this.filteredFavoritesSessionList.splice(day, 1)\n }\n }\n break\n }\n }\n }\n if (found) {\n break\n }\n }\n }\n\n private isSavedWithSharedAvailabilityPartner(session: AvailabilitySessionListItem): boolean {\n return session.saved && session.sharedAvailability\n }\n\n private updateSessionToAvailable(\n session: AvailabilitySessionListItem,\n activityType: SessionActivityType,\n ): void {\n session.confirmed = false\n session.cancelConfirm = false\n session.actionComplete = true\n session.activityType = activityType\n session.externalId = null\n }\n\n private updateOrRemoveCanceledSession(\n sessionList: AvailabilitySessionListItem[],\n activityType: SessionActivityType,\n ): boolean {\n let found = false\n\n for (let session = 0; session < sessionList.length; ++session) {\n let checkSession = sessionList[session]\n if (checkSession.confirmed) {\n if (this.isSavedWithSharedAvailabilityPartner(checkSession)) {\n this.updateSessionToAvailable(checkSession, activityType)\n found = true\n break\n } else {\n sessionList.splice(session, 1)\n found = true\n break\n }\n }\n }\n return found\n }\n\n private isTimeNodeEmpty(node: FavoritesAvailabilityListTimes): boolean {\n if (\n node.sessions25.length === 0 &&\n node.sessions50.length === 0 &&\n node.sessions75.length === 0\n ) {\n return true\n } else {\n return false\n }\n }\n\n private isDayNodeEmpty(node: FavoritesAvailabilityList): boolean {\n if (node.times.length === 0) {\n return true\n } else {\n false\n }\n }\n\n dontPropagate(e: Event) {\n e.stopPropagation()\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next(null)\n this.ngUnsubscribe.complete()\n }\n}\n", "\n
\n
\n @if (!dynamicPanel) {\n \n }\n\n
Favorites schedule
\n \n @if (dynamicPanel) {\n \n } @else {\n \n \n
{{\n item.labelButton\n }}
\n
\n \n }\n \n Quiet\n \n
\n
\n \n\n @if (filteredFavoritesSessionList.length > 0) {\n
\n \n \n \n {{ day.dayLabel }}\n\n \n {{ time.timeLabel }}\n\n
\n \n 0\"\n class=\"w-full flex flex-col items-center justify-start h-screen max-h-max\">\n \n \n 25m\n \n\n \n \n \n
\n
\n \n \n \n 0\"\n class=\"w-full flex flex-col items-center justify-start h-screen max-h-max\">\n \n \n 50m\n \n\n \n \n \n \n \n \n \n\n \n 0\"\n class=\"w-full flex flex-col items-center justify-start h-screen max-h-max\">\n \n \n 75m\n \n\n \n \n \n \n \n \n \n \n \n \n \n Showing sessions scheduled over
\n the next two weeks.
\n \n \n \n } @else {\n
\n \n \n \n \n
\n
\n \n
\n Sessions booked by your Favorites
\n appear here, but looks like you
\n haven’t Favorited anyone yet.\n Learn more about Favorite Partners\n
\n
\n \n
\n
\n \n
\n Hmm...none of your Favorites have
\n any sessions scheduled in the next
\n couple of weeks.\n Let’s book with someone else on
\n the calendar?
\n
\n
\n \n \n
\n
\n No sessions available at the moment!\n
\n
\n
\n
\n }\n
\n\n", "import { CommonModule } from '@angular/common'\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'\nimport {\n SESSION_ACTIVITY_TYPE_ANYTHING,\n SESSION_ACTIVITY_TYPE_DESK,\n SESSION_ACTIVITY_TYPE_MOVING,\n SessionActivityType,\n} from '@app/core/_models'\nimport { PartnerSessionPreferences } from '@app/core/_services/available-times.service'\nimport {\n SessionStateService,\n SESSION_STATE_LATE,\n SESSION_STATE_SEARCHING,\n} from '@app/core/_services/session-state.service'\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome'\nimport { UserService } from '@app/core/_services/user.service'\nimport { faLock, faTimes } from '@fortawesome/pro-solid-svg-icons'\nimport { FmAvatarComponent } from '@app/shared/components/fm-avatar/fm-avatar.component'\nimport { ActionsMenuAvailabilityListComponent } from '../actions-menu-availability-list/actions-menu-availability-list.component'\nimport { MatTooltipModule } from '@angular/material/tooltip'\nimport { ButtonModule } from 'primeng/button'\nimport { faLampDesk, faPersonWalking, faShuffle } from '@fortawesome/pro-solid-svg-icons'\n\nexport interface AvailabilityListBookSession {\n sessionTime: number\n duration: number\n userId: string\n activityType: SessionActivityType\n}\n\nexport interface AvailabilityListCancelSession {\n externalId: string\n sessionTime: number\n userId: string\n}\n\nexport interface AvailabilityListSelectedSession {\n sessionTime: number\n sessionDuration: number\n userId: string\n}\n\nexport interface AvailabilitySessionListItem {\n timeLabel: string\n externalId: string | null\n sessionTime: number\n sessionDuration: number\n sessionState: number | null\n sessionDurationLabel: string\n actionComplete: boolean\n confirmed: boolean\n cancelConfirm: boolean\n profilePhoto: string\n partnerUserId: string\n partnerDisplayName: string\n partnerProfileSlug: string\n partnerPreferences: PartnerSessionPreferences\n quietModeMatchAllowed: boolean\n saved: boolean\n sharedAvailability: boolean\n activityType: number\n}\n\ntype ButtonState =\n | 'bookedMatched'\n | 'bookedNoPartner'\n | 'available'\n | 'confirmCancel'\n | 'viewingSelf'\n\nconst BUTTON_TEXT_MATCHING = 'Matching...'\nconst BUTTON_TEXT_SEARCHING = 'Searching...'\nconst BUTTON_TEXT_LATE = 'Late'\n\n@Component({\n selector: 'fm-availability-list-item',\n templateUrl: './availability-list-item.component.html',\n styleUrls: ['./availability-list-item.component.scss'],\n imports: [\n CommonModule,\n FmAvatarComponent,\n ActionsMenuAvailabilityListComponent,\n FontAwesomeModule,\n MatTooltipModule,\n ButtonModule,\n ],\n})\nexport class AvailabilityListItemComponent implements OnInit {\n @Input() externalId: string\n @Input() sessionTime: number\n @Input() sessionDuration: number\n @Input() sessionState: number | null = null\n @Input() sessionActivityType: SessionActivityType\n @Input() durationLabel: string\n @Input() sessionTimeLabel: string\n @Input() booked: boolean\n @Input() selected: boolean\n @Input() bookingComplete: boolean\n @Input() disable: boolean\n @Input() viewingSelf: boolean = false\n @Input() userId: string\n @Input() displayName: string\n @Input() profileSlug: string\n @Input() profilePhoto: string\n @Input() saved: boolean = false\n @Input() useTimeLabel: boolean = false\n @Input() partnerQuietMode: boolean = false\n @Input() dynamicPanel: boolean = false\n @Output() onCancelSession = new EventEmitter()\n @Output() onBookSession = new EventEmitter()\n @Output() onSelectSession = new EventEmitter()\n\n constructor(\n private sessionStateService: SessionStateService,\n public userService: UserService,\n ) {}\n\n public faLock = faLock\n public faTimes = faTimes\n public confirmCancel = false\n public cancelInProgress = false\n public buttonText: string = ''\n public isLockedIn: boolean = false\n\n public buttonState: ButtonState = 'available'\n public activityIcon\n\n ngOnInit(): void {\n this.setState()\n this.setActivityIcon()\n }\n\n ngOnChanges(e) {\n if (e.hasOwnProperty('booked')) {\n if (e.booked.previousValue === true && e.booked.currentValue == false) {\n this.confirmCancel = false\n this.cancelInProgress = false\n }\n }\n this.setState()\n this.setActivityIcon()\n }\n\n setState() {\n this.isLockedIn = this.sessionStateService.isLockedInState(this.sessionState)\n if (this.viewingSelf) {\n this.buttonState = 'viewingSelf'\n } else if (this.confirmCancel) {\n this.buttonState = 'confirmCancel'\n } else if (this.booked) {\n if (this.displayName) {\n this.buttonText = this.displayName\n this.buttonState = 'bookedMatched'\n } else {\n if (this.sessionStateService.isPendingPartnerState(this.sessionState)) {\n this.buttonText = BUTTON_TEXT_MATCHING\n } else if (this.sessionState === SESSION_STATE_SEARCHING) {\n this.buttonText = BUTTON_TEXT_SEARCHING\n } else if (this.sessionState === SESSION_STATE_LATE) {\n this.buttonText = BUTTON_TEXT_LATE\n } else {\n // Shouldn't get here but if we do, indicate matching\n this.buttonText = BUTTON_TEXT_MATCHING\n }\n this.buttonState = 'bookedNoPartner'\n }\n } else {\n this.buttonState = 'available'\n }\n }\n\n onKeepSession(e: Event) {\n e.stopPropagation()\n this.confirmCancel = false\n this.setState()\n }\n\n onCancelSessionSelected(e: Event) {\n this.confirmCancel = true\n this.setState()\n }\n\n onCancelConfirmed() {\n this.cancelInProgress = true\n this.onCancelSession.emit({\n externalId: this.externalId,\n sessionTime: this.sessionTime,\n userId: this.userId,\n })\n this.setState()\n }\n\n bookSession(e: Event) {\n e.stopPropagation()\n this.onBookSession.emit({\n sessionTime: this.sessionTime,\n duration: this.sessionDuration,\n userId: this.userId,\n activityType: this.sessionActivityType,\n })\n }\n\n selectSession(e: Event) {\n e.stopPropagation()\n this.onSelectSession.emit({\n sessionTime: this.sessionTime,\n userId: this.userId,\n sessionDuration: this.sessionDuration,\n })\n }\n\n private setActivityIcon(): void {\n switch (this.sessionActivityType) {\n case SESSION_ACTIVITY_TYPE_ANYTHING:\n this.activityIcon = faShuffle\n break\n\n case SESSION_ACTIVITY_TYPE_DESK:\n this.activityIcon = faLampDesk\n break\n\n case SESSION_ACTIVITY_TYPE_MOVING:\n this.activityIcon = faPersonWalking\n break\n }\n }\n}\n", "\n \n \n
\n \n
\n
\n \n \n
\n \n {{ displayName }}\n
\n @if (!dynamicPanel && activityIcon) {\n
\n \n
\n }\n
\n
\n \n \n
\n\n \n \n \n\n \n \n \n \n \n
\n @if (!selected) {\n \n
\n \n \n
{{ displayName }}
\n
\n @if (!dynamicPanel && activityIcon) {\n
\n \n
\n }\n
\n \n } @else {\n \n }\n \n \n
\n
\n", "import { Injectable } from '@angular/core'\nimport {\n ConfirmedSessionsResponse,\n FavoritesAvailabilityPartner,\n FavoritesAvailabilityResponse,\n FavoritesAvailabilitySessionInfo,\n SESSION_DURATION_25_MINS,\n SESSION_DURATION_50_MINS,\n SESSION_DURATION_75_MINS,\n} from '@app/core/_models'\nimport { UtilsService } from '@app/core/_services'\n\nimport { SessionStateService } from '@app/core/_services/session-state.service'\nimport { TimeUtilitiesService } from '@app/core/_services/time-utilities.service'\nimport { UserDateFormattingService } from '@app/core/_services/user-date-formatting.service'\nimport {\n DURATION_FILTER_INCLUDE_25,\n DURATION_FILTER_INCLUDE_50,\n DURATION_FILTER_INCLUDE_75,\n DURATION_FILTER_INCLUDE_ALL,\n} from '@app/shared-availability-list/components/availability-list-controls/availability-list-controls.component'\nimport { AvailabilitySessionListItem } from '@app/shared-availability-list/components/availability-list-item/availability-list-item.component'\nimport moment from 'moment-timezone/builds/moment-timezone-with-data-10-year-range.min'\n\nconst SESSION_DURATION_50_MINS_LABEL: string = '50m'\nconst SESSION_DURATION_25_MINS_LABEL: string = '25m'\nconst SESSION_DURATION_75_MINS_LABEL: string = '75m'\n\nexport interface FavoritesAvailabilityList {\n dayLabel: string\n times: FavoritesAvailabilityListTimes[]\n}\n\nexport interface FavoritesAvailabilityListTimes {\n timeLabel: string\n sessionTime: number\n sessions25: AvailabilitySessionListItem[]\n sessions50: AvailabilitySessionListItem[]\n sessions75: AvailabilitySessionListItem[]\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FavoritesListService {\n constructor(\n private utilsService: UtilsService,\n private timeUtils: TimeUtilitiesService,\n private sessionStateService: SessionStateService,\n private dateFormat: UserDateFormattingService,\n ) {}\n\n public populateListFromFavoritesAvailabilityResponse(\n favoriteUsersAvailability: FavoritesAvailabilityResponse,\n currentList: AvailabilitySessionListItem[],\n timezone: string,\n ) {\n const partners = favoriteUsersAvailability.availability.partners || {}\n const sessions = favoriteUsersAvailability.availability.availableSessions || []\n\n for (let session of sessions) {\n const partner = partners[session.userId]\n\n if (partner.saved) {\n currentList.push({\n timeLabel: this.dateFormat.format(session.sessionTime, 'h:mma', timezone),\n externalId: null,\n sessionTime: session.sessionTime,\n sessionDuration: session.duration,\n sessionState: null,\n sessionDurationLabel: this.getSessionDurationLabel(session.duration),\n actionComplete: false,\n confirmed: false,\n cancelConfirm: false,\n profilePhoto: partner.profilePhoto,\n partnerUserId: session.userId,\n partnerDisplayName: partner.displayName,\n partnerProfileSlug: partner.profileSlug,\n saved: true,\n sharedAvailability: partner.sharedAvailability,\n activityType: session.activityType,\n partnerPreferences: session.preferences,\n quietModeMatchAllowed: partner.quietModeMatchAllowed,\n })\n }\n }\n }\n\n public populateListFromConfirmedSessionsResponse(\n confirmedSesions: ConfirmedSessionsResponse[],\n currentList: AvailabilitySessionListItem[],\n startTimeInMsecs: number,\n endTimeInMsecs: number,\n timezone: string,\n ) {\n let confirmedList = confirmedSesions || []\n\n for (let session of confirmedList) {\n if (\n !this.utilsService.hasSessionTimePassed(\n session.sessionTime,\n this.utilsService.getCurrentTimestamp(),\n ) &&\n session.sessionTime >= startTimeInMsecs &&\n session.sessionTime <= endTimeInMsecs &&\n this.sessionStateService.isLockedInState(session.state)\n ) {\n currentList.push({\n timeLabel: this.dateFormat.format(session.sessionTime, 'h:mma', timezone),\n externalId: session.externalId,\n sessionTime: session.sessionTime,\n sessionDuration: session.duration,\n sessionState: session.state,\n sessionDurationLabel: this.getSessionDurationLabel(session.duration),\n actionComplete: false,\n confirmed: true,\n cancelConfirm: false,\n profilePhoto: session.partnerPhoto,\n partnerUserId: session.partnerId,\n partnerDisplayName: session.partnerDisplayName,\n partnerProfileSlug: session.partnerProfileUrl,\n saved: session.saved,\n sharedAvailability: session.sharedAvailability,\n activityType: session.activityType,\n partnerPreferences: session.partnerPreferences,\n quietModeMatchAllowed: true, // We do not receive this info currently from the API, default to true as it won't have any effect here\n })\n }\n }\n }\n\n public populateFilteredDisplayList(\n filteredFavoritesSessionList: FavoritesAvailabilityList[],\n completeList: AvailabilitySessionListItem[],\n timezone: string,\n filterOption,\n quietModeSelected,\n ) {\n filteredFavoritesSessionList.length = 0\n let tempList: FavoritesAvailabilityList[] = []\n\n completeList.sort(\n (a, b) => a.sessionTime - b.sessionTime || a.sessionDuration - b.sessionDuration,\n )\n for (let meeting of completeList) {\n if (\n !this.filterSessionDuration(meeting.sessionDuration, filterOption) &&\n !this.filterSessionBasedOnQuietModeSettings(meeting, quietModeSelected)\n ) {\n this.addSessionToList(tempList, meeting, timezone)\n }\n }\n filteredFavoritesSessionList.push(...tempList)\n }\n\n public removeAvailableSessionsFromList(currentList: AvailabilitySessionListItem[]) {\n return currentList.filter((session) => session.confirmed !== false)\n }\n\n public removeConfirmedSessionsFromList(currentList: AvailabilitySessionListItem[]) {\n return currentList.filter((session) => session.confirmed !== true)\n }\n\n private getSessionDurationLabel(sessionDuration: number) {\n if (sessionDuration === SESSION_DURATION_50_MINS) {\n return SESSION_DURATION_50_MINS_LABEL\n } else if (sessionDuration == SESSION_DURATION_75_MINS) {\n return SESSION_DURATION_75_MINS_LABEL\n } else {\n return SESSION_DURATION_25_MINS_LABEL\n }\n }\n\n private filterSessionDuration(duration: number, filterOption): boolean {\n if (filterOption === DURATION_FILTER_INCLUDE_ALL) {\n return false\n }\n if (filterOption === DURATION_FILTER_INCLUDE_50 && duration === SESSION_DURATION_50_MINS) {\n return false\n }\n if (filterOption === DURATION_FILTER_INCLUDE_25 && duration === SESSION_DURATION_25_MINS) {\n return false\n }\n\n if (filterOption === DURATION_FILTER_INCLUDE_75 && duration === SESSION_DURATION_75_MINS) {\n return false\n }\n return true\n }\n\n private filterSessionBasedOnQuietModeSettings(\n meeting: AvailabilitySessionListItem,\n quietModeSelected: boolean,\n ): boolean {\n /* Do not include sessions in this list if the following conditions are met:\n\t\t1. Potential partner has quietModeMatchAllowed setting set to False\n\t\t2. Current user has selected quietMode\n\t\t3. Potential partner's session is not set to Quiet Mode\n\t\t*/\n if (\n !meeting.quietModeMatchAllowed &&\n quietModeSelected &&\n !meeting.partnerPreferences.quietMode.value\n ) {\n return true\n }\n return false\n }\n\n private addSessionToList(filteredFavoritesSessionList, meeting, timezone: string) {\n let currentDate = this.genereateDateLabel(meeting.sessionTime, timezone)\n\n if (\n filteredFavoritesSessionList.length === 0 ||\n filteredFavoritesSessionList[filteredFavoritesSessionList.length - 1].dayLabel !==\n currentDate\n ) {\n let timeEntry: FavoritesAvailabilityListTimes = {\n sessionTime: meeting.sessionTime,\n timeLabel: meeting.timeLabel,\n sessions25: [],\n sessions50: [],\n sessions75: [],\n }\n\n if (meeting.sessionDuration == SESSION_DURATION_25_MINS) {\n timeEntry.sessions25.push(meeting)\n } else if (meeting.sessionDuration == SESSION_DURATION_50_MINS) {\n timeEntry.sessions50.push(meeting)\n } else {\n timeEntry.sessions75.push(meeting)\n }\n\n filteredFavoritesSessionList.push({\n dayLabel: currentDate,\n times: [timeEntry],\n })\n } else {\n const lastFavoritesSession =\n filteredFavoritesSessionList[filteredFavoritesSessionList.length - 1]\n const lastSessionTime =\n lastFavoritesSession.times[lastFavoritesSession.times.length - 1]\n const lastTimeLabel = lastSessionTime.timeLabel\n\n if (lastTimeLabel !== meeting.timeLabel) {\n let timeEntry: FavoritesAvailabilityListTimes = {\n sessionTime: meeting.sessionTime,\n timeLabel: meeting.timeLabel,\n sessions25: [],\n sessions50: [],\n sessions75: [],\n }\n\n if (meeting.sessionDuration == SESSION_DURATION_25_MINS) {\n timeEntry.sessions25.push(meeting)\n } else if (meeting.sessionDuration == SESSION_DURATION_50_MINS) {\n timeEntry.sessions50.push(meeting)\n } else {\n timeEntry.sessions75.push(meeting)\n }\n filteredFavoritesSessionList[filteredFavoritesSessionList.length - 1].times.push(\n timeEntry,\n )\n } else {\n const lastFavoritesSession =\n filteredFavoritesSessionList[filteredFavoritesSessionList.length - 1]\n const times = lastFavoritesSession.times\n const slot = times[times.length - 1]\n\n if (meeting.sessionDuration == SESSION_DURATION_25_MINS) {\n if (!this.handledDuplicateEntry(slot.sessions25, meeting)) {\n slot.sessions25.push(meeting)\n }\n } else if (meeting.sessionDuration == SESSION_DURATION_50_MINS) {\n if (!this.handledDuplicateEntry(slot.sessions50, meeting)) {\n slot.sessions50.push(meeting)\n }\n } else {\n if (!this.handledDuplicateEntry(slot.sessions75, meeting)) {\n slot.sessions75.push(meeting)\n }\n }\n }\n }\n }\n\n private handledDuplicateEntry(\n sessionList: AvailabilitySessionListItem[],\n sessionToCheck: AvailabilitySessionListItem,\n ): boolean {\n for (let session of sessionList) {\n if (\n session.sessionTime == sessionToCheck.sessionTime &&\n session.sessionDuration == sessionToCheck.sessionDuration &&\n session.partnerUserId == sessionToCheck.partnerUserId\n ) {\n // This can occur if a favorited user, that is sharing their calendar, is a currnt\n // match, but not locked in. If this happens, only preset the matched session and not\n // the available one\n if (sessionToCheck.confirmed) {\n Object.assign(session, sessionToCheck)\n }\n return true\n }\n }\n return false\n }\n\n private genereateDateLabel(sessionTime: number, timezone: string): string {\n if (this.timeUtils.isToday(sessionTime, timezone)) {\n return moment(sessionTime).tz(timezone).format('[Today], MMMM D')\n } else if (this.timeUtils.isTomorrow(sessionTime, timezone)) {\n return moment(sessionTime).tz(timezone).format('[Tomorrow], MMMM D')\n } else return moment(sessionTime).tz(timezone).format('dddd, MMMM D')\n }\n}\n"], "mappings": "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", "names": ["import_moment_timezone_with_data_10_year_range", "\u0275\u0275element", "\u0275\u0275propertyInterpolate1", "ctx_r1", "displayName", "\u0275\u0275property", "faLock", "\u0275\u0275elementStart", "\u0275\u0275elementEnd", "\u0275\u0275advance", "activityIcon", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "AvailabilityListItemComponent_ng_container_1_fa_icon_8_Template", "\u0275\u0275text", "AvailabilityListItemComponent_ng_container_1_Conditional_10_Template", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "onCancelSessionSelected", "profilePhoto", "saved", "isLockedIn", "\u0275\u0275textInterpolate1", "\u0275\u0275conditional", "dynamicPanel", "externalId", "profileSlug", "sessionActivityType", "partnerQuietMode", "_r3", "onCancelConfirmed", "onKeepSession", "cancelInProgress", "_r5", "selectSession", "AvailabilityListItemComponent_ng_container_3_Conditional_2_Conditional_6_Template", "disable", "\u0275\u0275textInterpolate", "_r6", "bookSession", "sessionTimeLabel", "AvailabilityListItemComponent_ng_container_3_Conditional_2_Template", "AvailabilityListItemComponent_ng_container_3_Conditional_3_Template", "_r4", "selected", "BUTTON_TEXT_MATCHING", "BUTTON_TEXT_SEARCHING", "BUTTON_TEXT_LATE", "AvailabilityListItemComponent", "constructor", "sessionStateService", "userService", "sessionState", "viewingSelf", "useTimeLabel", "onCancelSession", "EventEmitter", "onBookSession", "onSelectSession", "faTimes", "confirmCancel", "buttonText", "buttonState", "ngOnInit", "setState", "setActivityIcon", "ngOnChanges", "e", "hasOwnProperty", "booked", "previousValue", "currentValue", "isLockedInState", "isPendingPartnerState", "SESSION_STATE_SEARCHING", "SESSION_STATE_LATE", "stopPropagation", "emit", "sessionTime", "userId", "duration", "sessionDuration", "activityType", "SESSION_ACTIVITY_TYPE_ANYTHING", "faShuffle", "SESSION_ACTIVITY_TYPE_DESK", "faLampDesk", "SESSION_ACTIVITY_TYPE_MOVING", "faPersonWalking", "\u0275\u0275directiveInject", "SessionStateService", "UserService", "selectors", "inputs", "durationLabel", "bookingComplete", "outputs", "features", "\u0275\u0275NgOnChangesFeature", "decls", "vars", "consts", "template", "rf", "ctx", "AvailabilityListItemComponent_ng_container_1_Template", "AvailabilityListItemComponent_ng_container_2_Template", "AvailabilityListItemComponent_ng_container_3_Template", "CommonModule", "NgIf", "NgSwitch", "NgSwitchCase", "FmAvatarComponent", "ActionsMenuAvailabilityListComponent", "FontAwesomeModule", "FaIconComponent", "MatTooltipModule", "MatTooltip", "ButtonModule", "Button", "encapsulation", "_AvailabilityListItemComponent", "import_moment_timezone_with_data_10_year_range", "SESSION_DURATION_50_MINS_LABEL", "SESSION_DURATION_25_MINS_LABEL", "SESSION_DURATION_75_MINS_LABEL", "FavoritesListService", "constructor", "utilsService", "timeUtils", "sessionStateService", "dateFormat", "populateListFromFavoritesAvailabilityResponse", "favoriteUsersAvailability", "currentList", "timezone", "partners", "availability", "sessions", "availableSessions", "session", "partner", "userId", "saved", "push", "timeLabel", "format", "sessionTime", "externalId", "sessionDuration", "duration", "sessionState", "sessionDurationLabel", "getSessionDurationLabel", "actionComplete", "confirmed", "cancelConfirm", "profilePhoto", "partnerUserId", "partnerDisplayName", "displayName", "partnerProfileSlug", "profileSlug", "sharedAvailability", "activityType", "partnerPreferences", "preferences", "quietModeMatchAllowed", "populateListFromConfirmedSessionsResponse", "confirmedSesions", "startTimeInMsecs", "endTimeInMsecs", "confirmedList", "hasSessionTimePassed", "getCurrentTimestamp", "isLockedInState", "state", "partnerPhoto", "partnerId", "partnerProfileUrl", "populateFilteredDisplayList", "filteredFavoritesSessionList", "completeList", "filterOption", "quietModeSelected", "length", "tempList", "sort", "a", "b", "meeting", "filterSessionDuration", "filterSessionBasedOnQuietModeSettings", "addSessionToList", "removeAvailableSessionsFromList", "filter", "removeConfirmedSessionsFromList", "SESSION_DURATION_50_MINS", "SESSION_DURATION_75_MINS", "DURATION_FILTER_INCLUDE_ALL", "DURATION_FILTER_INCLUDE_50", "DURATION_FILTER_INCLUDE_25", "SESSION_DURATION_25_MINS", "DURATION_FILTER_INCLUDE_75", "quietMode", "value", "currentDate", "genereateDateLabel", "dayLabel", "timeEntry", "sessions25", "sessions50", "sessions75", "times", "lastFavoritesSession", "slot", "handledDuplicateEntry", "sessionList", "sessionToCheck", "Object", "assign", "isToday", "moment", "tz", "isTomorrow", "\u0275\u0275inject", "UtilsService", "TimeUtilitiesService", "SessionStateService", "UserDateFormattingService", "factory", "\u0275fac", "providedIn", "_FavoritesListService", "\u0275\u0275element", "\u0275\u0275property", "ctx_r1", "breadcrumbItems", "\u0275\u0275pureFunction0", "_c4", "\u0275\u0275elementStart", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r3", "\u0275\u0275nextContext", "\u0275\u0275resetView", "onDurationDropDownChanged", "\u0275\u0275elementEnd", "durationOptions", "selectedDurationOption", "value", "\u0275\u0275text", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "item_r5", "labelButton", "_r4", "\u0275\u0275template", "FavoritesListComponent_Conditional_8_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "_r6", "cancelSession", "bookSession", "selectSession", "\u0275\u0275pureFunction2", "_c8", "dynamicPanel", "session_r7", "externalId", "sessionTime", "sessionDuration", "sessionState", "sessionDurationLabel", "timeLabel", "activityType", "confirmed", "selectedSession", "partnerUserId", "selectedUserId", "disableBookSessions", "partnerDisplayName", "partnerProfileSlug", "profilePhoto", "saved", "actionComplete", "partnerPreferences", "quietMode", "FavoritesListComponent_Conditional_14_div_3_div_4_div_5_div_6_Template", "time_r8", "sessions25", "_r9", "session_r10", "FavoritesListComponent_Conditional_14_div_3_div_4_div_6_div_6_Template", "sessions50", "_r11", "session_r12", "FavoritesListComponent_Conditional_14_div_3_div_4_div_7_div_6_Template", "sessions75", "FavoritesListComponent_Conditional_14_div_3_div_4_div_5_Template", "FavoritesListComponent_Conditional_14_div_3_div_4_div_6_Template", "FavoritesListComponent_Conditional_14_div_3_div_4_div_7_Template", "length", "FavoritesListComponent_Conditional_14_div_3_div_4_Template", "_c7", "day_r13", "dayLabel", "times", "FavoritesListComponent_Conditional_14_div_3_Template", "\u0275\u0275styleMap", "_c5", "_c6", "filteredFavoritesSessionList", "faCalendarStar", "faCalendarExclamation", "FavoritesListComponent_Conditional_15_div_2_Template", "FavoritesListComponent_Conditional_15_div_3_Template", "FavoritesListComponent_Conditional_15_div_4_Template", "listContentState", "DURATION_OPTIONS", "labelDropdown", "DURATION_FILTER_INCLUDE_ALL", "DURATION_FILTER_INCLUDE_25", "DURATION_FILTER_INCLUDE_50", "DURATION_FILTER_INCLUDE_75", "FavoritesListComponent", "constructor", "userService", "route", "bookSessionService", "titleService", "dialogService", "confirmedSessionsService", "cancelSessionService", "userAvailabiltyService", "favoritesListService", "contentStackService", "Array", "completeList", "faStar", "faRefresh", "ngUnsubscribe", "Subject", "selectedQuietMode", "selectedOption", "label", "routerLink", "queryParams", "type", "clicked", "ngOnInit", "currentUser", "snapshot", "data", "continueInit", "pipe", "take", "subscribe", "next", "user", "startDate", "moment", "tz", "timeZone", "startOf", "endDate", "clone", "add", "setTitle", "queryFavoritesAvailability", "refresh$", "takeUntil", "reloadSelect", "onQuietModeToggleSwtichChange", "event", "checked", "populateSessionList", "onQuietModeChanged", "e", "clearList", "removeConfirmedSessionsFromList", "removeAvailableSessionsFromList", "start", "valueOf", "end", "queryAvailableTimesWithFavorites", "v", "receivedFavoriteUserAvailability", "error", "receivedFavoriteUserAvailabilityError", "favoriteUsersAvailability", "favoritesAvailabilityResponse", "populateListFromFavoritesAvailabilityResponse", "hasFavorites", "availability", "favoritesCount", "queryUserConfirmedSessions", "getConfirmedSessions", "receivedConfirmedSessions", "confirmedSesions", "populateListFromConfirmedSessionsResponse", "populateFilteredDisplayList", "setContentStateEmptyOrValid", "find", "element", "durationFilterSelected", "sessionInfo", "userId", "availabilityListBookSession", "preferences", "favorites", "duration", "bookSessionInfo", "userAvailabilityCode", "title", "SESSION_ACTIVITY_TYPE_ANYTHING", "bookSessions", "BookingSource", "ConsolidatedFavoritesList", "receivedBookSessionResult", "receivedBookSessionError", "complete", "receivedBookSessionComplete", "result", "parsedRes", "parseBookResponse", "updateSessionListWithBookedSession", "openConfirmTransaction", "openPlanLimitReachedDialog", "conflictTimes", "map", "conflict", "openSessionConflictWithCancel", "afterClosed", "actionResult", "action", "bookAndCancel", "openInviterMeetingNoLongerAvailable", "forEach", "session", "SESSION_STATE_DIRECT_BOOKER", "day", "time", "updateActionComplete", "bookInfo", "sessionsToCancel", "cancelRequests", "push", "SessionTileSource", "AvailabilityConflictModal", "forkJoin", "updateSessionListWithCanceledSession", "availabilityListcancelSession", "receivedCancelSessionSuccess", "getOriginalActivityTypeFromList", "availabiityList", "availableSessions", "__async", "partnersActivityType", "firstValueFrom", "i", "sharedAvailability", "cancelConfirm", "splice", "found", "updateOrRemoveCanceledSession", "isTimeNodeEmpty", "isDayNodeEmpty", "isSavedWithSharedAvailabilityPartner", "updateSessionToAvailable", "sessionList", "checkSession", "node", "dontPropagate", "stopPropagation", "ngOnDestroy", "\u0275\u0275directiveInject", "UserService", "ActivatedRoute", "BookSessionsService", "Title", "DialogService", "ConfirmedSessionsService", "CancelSessionService", "UserAvailabiltyService", "FavoritesListService", "ContentStackService", "selectors", "hostBindings", "rf", "ctx", "FavoritesListComponent_Conditional_3_Template", "FavoritesListComponent_Conditional_7_Template", "FavoritesListComponent_Conditional_8_Template", "i0", "_r1", "\u0275\u0275twoWayListener", "\u0275\u0275twoWayBindingSet", "FavoritesListComponent_Conditional_14_Template", "FavoritesListComponent_Conditional_15_Template", "\u0275\u0275pureFunction1", "_c0", "\u0275\u0275conditional", "_c1", "_c2", "_c3", "\u0275\u0275twoWayProperty", "RouterModule", "RouterLink", "BreadcrumbModule", "Breadcrumb", "AvailabilityListItemComponent", "CommonModule", "NgClass", "NgForOf", "NgIf", "FormsModule", "NgControlStatus", "NgModel", "FontAwesomeModule", "FaIconComponent", "SelectModule", "Select", "SelectButtonModule", "SelectButton", "ToggleSwitchModule", "ToggleSwitch", "ScrollPanelModule", "ScrollPanel", "DividerModule", "Divider", "styles", "_FavoritesListComponent"] }