{"version":3,"sources":["../../widgets.react/dist/index.js","../../api/dist/index.js","../../widgets.react/dist/components/controls/index.js","../../widgets.react/dist/store/index.js","../../api/dist/code/SoundbiteApiConfig.js","../../widgets.react/dist/components/ErrorDlg.js","../../api/dist/code/HttpService.js","../../widgets.react/dist/styles/index.js","../../widgets.react/dist/components/index.js","../../widgets.react/dist/components/controls/ShowWhen.js","../../widgets.react/dist/store/WidgetStore.js","../../widgets.react/dist/dialogs/DialogStyleType.js","../../widgets.react/dist/components/controls/Loader.js","../../widgets.react/dist/components/SbButton.js","../../widgets.react/dist/dialogs/DialogHelper.js","../../widgets.react/dist/dialogs/DialogButtonStyleType.js","../../widgets.react/dist/enums.js","../../widgets.react/dist/styles/GlobalTheme.js","../../widgets.react/dist/dialogs/index.js","../../widgets.react/dist/components/video/context/MediaPlayerContext.js","../../api/dist/generated/enums/index.js","../../widgets.react/dist/store/OrganizationStore.js","../../widgets.react/dist/modules/HashHelper.js","../../widgets.react/dist/components/RecordBtn.js","../../widgets.react/dist/components/video/VideoEditorContext.js","../../widgets.react/dist/store/GroupStore.js","../../widgets.react/dist/modules/ConcurrentCache.js","../../widgets.react/dist/modules/StorageValue.js","../../widgets.react/dist/dialogs/DialogManagerLink.js","../../widgets.react/dist/components/controls/InfiniteTable.js","../../widgets.react/dist/components/controls/LabelInfo.js","../../widgets.react/dist/components/reports/KpiCard.js","../../widgets.react/dist/components/RecordDlg.js","../../widgets.react/dist/components/EmptyCardBody.js","../../widgets.react/dist/dialogs/SingletonDialogBase.js","../../widgets.react/dist/components/themes/ThemeConfig.js","../../widgets.react/dist/components/SoundScrubber2.js","../../api.axios/dist/index.js","../../api/dist/code/Logger.js","../../api/dist/code/PublicError.js","../../widgets.react/dist/styles/ThemeProcessor.js","../../widgets.react/dist/styles/ThemeTest.js","../../widgets.react/dist/store/MemberStore.js","../../widgets.react/dist/store/PersonStore.js","../../widgets.react/dist/store/SeriesStore.js","../../widgets.react/dist/store/SessionStore.js","../../widgets.react/dist/store/SyncStore.js","../../widgets.react/dist/store/UserStore.js","../../widgets.react/dist/dialogs/DialogManager.js","../../widgets.react/dist/components/PlayDlg.js","../../widgets.react/dist/widgets/PlayerWidget.js","../../widgets.react/dist/components/controls/Avatar.js","../../widgets.react/dist/components/controls/FaPrepend.js","../../widgets.react/dist/components/controls/ParticipantSummary.js","../../widgets.react/dist/components/controls/SbProgressButton.js","../../widgets.react/dist/components/controls/SeriesDetailsBtn.js","../../widgets.react/dist/components/pickers/index.js","../../widgets.react/dist/components/pickers/DateTimePicker.js","../../widgets.react/dist/components/pickers/TimePicker.js","../../widgets.react/dist/components/pickers/ItemPicker.js","../../widgets.react/dist/components/pickers/PeoplePicker.js","../../widgets.react/dist/components/select/index.js","../../widgets.react/dist/components/select/useAsyncPaginate.js","../../widgets.react/dist/components/select/useAsyncPaginateBase.js","../../widgets.react/dist/components/select/useComponents.js","../../widgets.react/dist/components/select/wrapMenuList.js","../../widgets.react/dist/components/reports/ActivityCards.js","../../widgets.react/dist/components/reports/ContentCards.js","../../widgets.react/dist/widgets/index.js","../../widgets.react/dist/widgets/FeedWidget.js","../../widgets.react/dist/widgets/RecordWidget.js","../../widgets.react/dist/widgets/PastSessionsWidget.js","../../widgets.react/dist/components/SessionTable.js","../../widgets.react/dist/widgets/PendingSessionsWidget.js","../../widgets.react/dist/widgets/SeriesWidget.js","../../widgets.react/dist/dialogs/ProfileDialog.js","../../widgets.react/dist/dialogs/SeriesDeleteDialog.js","../../widgets.react/dist/dialogs/SessionDeleteDialog.js","../../widgets.react/dist/dialogs/SessionNewDialog.js","../../widgets.react/dist/widgets/SessionEditorWidget.js","../../widgets.react/dist/dialogs/SessionReportDialog.js","../../widgets.react/dist/components/reports/GraphCard.js","../../widgets.react/dist/components/SessionReactions.js","../../widgets.react/dist/modules/InfiniteScrollDataHelper.js","../../widgets.react/dist/components/controls/TranscriptViewer.js","../../widgets.react/dist/components/themes/ColorConfig.js","../../widgets.react/dist/components/themes/ColorPicker.js","../../widgets.react/dist/components/RecordAndPlay.js","../../widgets.react/dist/components/SoundScrubber.js","../../widgets.react/dist/components/Player.js","../../widgets.react/dist/components/controls/DownloadBtn.js","../../widgets.react/dist/components/video/context/MediaPlayerContextFactory.js","../../widgets.react/dist/components/video/context/HlsMediaPlayerContext.js","../../widgets.react/dist/components/video/context/SbMediaPlayerContext.js","../../widgets.react/dist/components/video/RecorderState.js","../../widgets.react/dist/components/GroupPlayerRow.js","../../api/dist/code/ClientOpRunInfo.js","../../api/dist/code/IHttpAdapter.js","../../api/dist/code/IHttpRequestOptions.js","../../api/dist/code/PageUtils.js","../../api/dist/code/ThemeName.js","../../api/dist/code/Utils.js","../../api/dist/generated/enums/AuthProviderType.enum.js","../../api/dist/generated/enums/AutoFlagStateType.enum.js","../../api/dist/generated/enums/CalendarInteractionType.enum.js","../../api/dist/generated/enums/ClipEventType.enum.js","../../api/dist/generated/enums/ClipHostingType.enum.js","../../api/dist/generated/enums/ClipOperationStateType.enum.js","../../api/dist/generated/enums/ClipOperationType.enum.js","../../api/dist/generated/enums/ClipSource.enum.js","../../api/dist/generated/enums/ClipState.enum.js","../../api/dist/generated/enums/ClipType.enum.js","../../api/dist/generated/enums/CodeGenScenarioType.enum.js","../../api/dist/generated/enums/CollectionSyncMode.enum.js","../../api/dist/generated/enums/EventType.enum.js","../../api/dist/generated/enums/FileType.enum.js","../../api/dist/generated/enums/HttpStatusCode.enum.js","../../api/dist/generated/enums/JobStatusType.enum.js","../../api/dist/generated/enums/MediaProcessingState.enum.js","../../api/dist/generated/enums/MemberRole.enum.js","../../api/dist/generated/enums/MemberSyncOpType.enum.js","../../api/dist/generated/enums/NotificationChannel.enum.js","../../api/dist/generated/enums/NotificationStatus.enum.js","../../api/dist/generated/enums/OrgSyncState.enum.js","../../api/dist/generated/enums/ParticipantReactionType.enum.js","../../api/dist/generated/enums/ParticipantRole.enum.js","../../api/dist/generated/enums/ParticipantState.enum.js","../../api/dist/generated/enums/PersonRole.enum.js","../../api/dist/generated/enums/ProviderType.enum.js","../../api/dist/generated/enums/Recurrence.enum.js","../../api/dist/generated/enums/SecurityOpType.enum.js","../../api/dist/generated/enums/SessionCommentPolicy.enum.js","../../api/dist/generated/enums/SessionLifecycleStage.enum.js","../../api/dist/generated/enums/SessionNotificationType.enum.js","../../api/dist/generated/enums/SessionSecurityType.enum.js","../../api/dist/generated/enums/SessionSummaryType.enum.js","../../api/dist/generated/enums/SessionType.enum.js","../../api/dist/generated/enums/SyncOpType.enum.js","../../api/dist/generated/enums/SyncScope.enum.js","../../api/dist/generated/enums/TokenSecurityLevel.enum.js","../../api/dist/generated/enums/TokenSecurityType.enum.js","../../api/dist/generated/enums/TranscriptState.enum.js","../../api/dist/generated/enums/UserRole.enum.js","../../api/dist/generated/models/index.js","../../api/dist/generated/models/AadOrgConfig.model.js","../../api/dist/generated/models/ActivityHighlight.model.js","../../api/dist/generated/models/ActivityRange.model.js","../../api/dist/generated/models/ActivityRangeItem.model.js","../../api/dist/generated/models/ActivityReport.model.js","../../api/dist/generated/models/AdClientConfig.model.js","../../api/dist/generated/models/AdPlatformConfig.model.js","../../api/dist/generated/models/ApiError.model.js","../../api/dist/generated/models/AppPayload.model.js","../../api/dist/generated/models/AppPayload_Obsolete.model.js","../../api/dist/generated/models/CalendarEntry.model.js","../../api/dist/generated/models/ClientOp.model.js","../../api/dist/generated/models/ClientOpWrapper.model.js","../../api/dist/generated/models/Clip.model.js","../../api/dist/generated/models/ClipDetails.model.js","../../api/dist/generated/models/ClipWithContributor.model.js","../../api/dist/generated/models/ContentReport.model.js","../../api/dist/generated/models/ContentResult.model.js","../../api/dist/generated/models/FeatureFlags.model.js","../../api/dist/generated/models/Group.model.js","../../api/dist/generated/models/GroupDetails.model.js","../../api/dist/generated/models/GroupFields.model.js","../../api/dist/generated/models/GroupSyncConfig.model.js","../../api/dist/generated/models/IAppPayload.model.js","../../api/dist/generated/models/IMediaEffect.model.js","../../api/dist/generated/models/IndexPageRequest.model.js","../../api/dist/generated/models/IndexPageResponse.model.js","../../api/dist/generated/models/Invite.model.js","../../api/dist/generated/models/InviteLifecycle.model.js","../../api/dist/generated/models/InviteResult.model.js","../../api/dist/generated/models/IOrgSettings.model.js","../../api/dist/generated/models/IUserNotifications.model.js","../../api/dist/generated/models/Member.model.js","../../api/dist/generated/models/NewClip.model.js","../../api/dist/generated/models/NewGroup.model.js","../../api/dist/generated/models/NewMember.model.js","../../api/dist/generated/models/NewParticipant.model.js","../../api/dist/generated/models/NewParticipantGroup.model.js","../../api/dist/generated/models/NewSession.model.js","../../api/dist/generated/models/NewSessionComment.model.js","../../api/dist/generated/models/OktaOrgSyncConfig.model.js","../../api/dist/generated/models/Organization.model.js","../../api/dist/generated/models/OrganizationDetails.model.js","../../api/dist/generated/models/OrganizationDetails_Obsolete.model.js","../../api/dist/generated/models/OrganizationExtended.model.js","../../api/dist/generated/models/OrganizationWithPermissions.model.js","../../api/dist/generated/models/OrganizationWithPermissions_Obsolete.model.js","../../api/dist/generated/models/OrganizationWithSettings.model.js","../../api/dist/generated/models/OrgAzureSettings.model.js","../../api/dist/generated/models/OrgContentReport.model.js","../../api/dist/generated/models/OrgNotificationChannels.model.js","../../api/dist/generated/models/OrgNotificationSettings.model.js","../../api/dist/generated/models/OrgOktaSettings.model.js","../../api/dist/generated/models/OrgOktaSettingsWithOrgRoute.model.js","../../api/dist/generated/models/OrgPermissions.model.js","../../api/dist/generated/models/OrgSessionSettings.model.js","../../api/dist/generated/models/OrgSettings.model.js","../../api/dist/generated/models/OrgSyncConfig.model.js","../../api/dist/generated/models/OrgSyncFields.model.js","../../api/dist/generated/models/OrgSyncResult.model.js","../../api/dist/generated/models/PageRequestBase.model.js","../../api/dist/generated/models/PageResponseBase.model.js","../../api/dist/generated/models/Participant.model.js","../../api/dist/generated/models/ParticipantGroup.model.js","../../api/dist/generated/models/ParticipantStateUpdate.model.js","../../api/dist/generated/models/Person.model.js","../../api/dist/generated/models/Prompt.model.js","../../api/dist/generated/models/PromptWithClips.model.js","../../api/dist/generated/models/ReactionSummary.model.js","../../api/dist/generated/models/ReadAllPeopleIndexPageRequest.model.js","../../api/dist/generated/models/Record.model.js","../../api/dist/generated/models/RecurrencePattern.model.js","../../api/dist/generated/models/ReportBase.model.js","../../api/dist/generated/models/Resource.model.js","../../api/dist/generated/models/ResourceBase.model.js","../../api/dist/generated/models/SbClipManifestResult.model.js","../../api/dist/generated/models/Series.model.js","../../api/dist/generated/models/SeriesDetails.model.js","../../api/dist/generated/models/SeriesPreview.model.js","../../api/dist/generated/models/Session.model.js","../../api/dist/generated/models/SessionCalendarEntry.model.js","../../api/dist/generated/models/SessionComment.model.js","../../api/dist/generated/models/SessionContentDetailsReport.model.js","../../api/dist/generated/models/SessionContentNotificiation.model.js","../../api/dist/generated/models/SessionContentPersonEvent.model.js","../../api/dist/generated/models/SessionContentReport.model.js","../../api/dist/generated/models/SessionDetails.model.js","../../api/dist/generated/models/SessionPreview.model.js","../../api/dist/generated/models/SessionSummary.model.js","../../api/dist/generated/models/SessionTypeTranscriptionSettings.model.js","../../api/dist/generated/models/SpaConfig.model.js","../../api/dist/generated/models/SyncedUserInfo.model.js","../../api/dist/generated/models/SyncResultBase.model.js","../../api/dist/generated/models/SyncStrategyConfigBase.model.js","../../api/dist/generated/models/SyncTarget.model.js","../../api/dist/generated/models/SyncValidation.model.js","../../api/dist/generated/models/Theme.model.js","../../api/dist/generated/models/ThemeBootstrap.model.js","../../api/dist/generated/models/ThemeBrand.model.js","../../api/dist/generated/models/ThemeColors.model.js","../../api/dist/generated/models/ThemeFonts.model.js","../../api/dist/generated/models/ThemeHues.model.js","../../api/dist/generated/models/ThemeImages.model.js","../../api/dist/generated/models/ThemeNeutrals.model.js","../../api/dist/generated/models/TokenInfo.model.js","../../api/dist/generated/models/TokenPageRequest.model.js","../../api/dist/generated/models/TokenPageResponse.model.js","../../api/dist/generated/models/User.model.js","../../api/dist/generated/models/UserFields.model.js","../../api/dist/generated/models/UserNotifications.model.js","../../api/dist/generated/models/UserSyncConfig.model.js","../../api/dist/generated/services/index.js","../../api/dist/generated/services/azureauth.service.js","../../api/dist/generated/services/clip.service.js","../../api/dist/generated/services/groups.service.js","../../api/dist/generated/services/mediastreaming.service.js","../../api/dist/generated/services/members.service.js","../../api/dist/generated/services/oktaauth.service.js","../../api/dist/generated/services/organizations.service.js","../../api/dist/generated/services/people.service.js","../../api/dist/generated/services/report.service.js","../../api/dist/generated/services/series.service.js","../../api/dist/generated/services/sessioncomments.service.js","../../api/dist/generated/services/sessions.service.js","../../api/dist/generated/services/spa.service.js","../../api/dist/generated/services/sync.service.js","../../api/dist/generated/services/users.service.js","../../api.axios/dist/AxiosHttpAdapter.js","../../widgets.react/dist/styles/SbBootstrapStyles.js","../../widgets.react/dist/styles/SbDashboardStyles.js","../../widgets.react/dist/styles/SbStyles.js","../../widgets.react/dist/store/StoreUtils.js","../../widgets.react/dist/components/controls/Error.js","../../widgets.react/dist/components/controls/IconLink.js","../../widgets.react/dist/components/controls/PlayBtn.js","../../widgets.react/dist/components/controls/PlayButton.js","../../widgets.react/dist/components/controls/RichText.js","../../widgets.react/dist/components/controls/RecurrenceSummary.js","../../widgets.react/dist/components/controls/SbProgress.js","../../widgets.react/dist/components/controls/SupportLink.js","../../widgets.react/dist/components/controls/Toggle.js","../../widgets.react/dist/components/pickers/EmailPicker.js","../../widgets.react/dist/components/pickers/GroupPicker.js","../../widgets.react/dist/components/pickers/ParticipantGroupPicker.js","../../widgets.react/dist/components/pickers/ParticipantPicker.js","../../widgets.react/dist/components/select/withAsyncPaginate.js","../../widgets.react/dist/components/select/defaultShouldLoadMore.js","../../widgets.react/dist/components/select/defaultReduceOptions.js","../../widgets.react/dist/components/select/reduceGroupedOptions.js","../../widgets.react/dist/components/select/types.js","../../widgets.react/dist/components/pickers/PickerUtils.js","../../widgets.react/dist/components/pickers/SchedulePicker.js","../../widgets.react/dist/components/reports/index.js","../../widgets.react/dist/widgets/TableFeedWidget.js","../../widgets.react/dist/widgets/CardFeedWidget.js","../../widgets.react/dist/widgets/CardFeedWidget.styles.js","../../widgets.react/dist/widgets/MegaWidget.js","../../widgets.react/dist/widgets/PeopleWidget.js","../../widgets.react/dist/dialogs/DeleteUserDialog.js","../../widgets.react/dist/dialogs/DialogAction.js","../../widgets.react/dist/dialogs/DialogBase.js","../../widgets.react/dist/dialogs/DialogManagerUi.js","../../widgets.react/dist/dialogs/InviteUserDialog.js","../../widgets.react/dist/widgets/PublicPlayerWidget.js","../../widgets.react/dist/components/reports/ReportView.js","../../widgets.react/dist/components/reports/ActivityGraphs.js","../../widgets.react/dist/components/themes/index.js","../../widgets.react/dist/components/themes/ThemeBanner.js","../../widgets.react/dist/components/themes/ThemeDemo.js","../../widgets.react/dist/components/video/context/AzureMediaPlayerContext.js","../../widgets.react/dist/components/video/VideoEditor.js","../../widgets.react/dist/components/video/VideoClip.js","../../widgets.react/dist/components/video/VideoEditorButtons.js","../../widgets.react/dist/components/video/VideoEditorService.js","../../widgets.react/dist/components/video/VideoRecorderButtons.js","../../widgets.react/dist/components/react-mic-gold.js","../../widgets.react/dist/components/themes/ThemePicker.js","../../widgets.react/dist/components/video/index.js","../../widgets.react/dist/components/AskAccess.js","../../widgets.react/dist/components/GroupPlayer.js","../../widgets.react/dist/components/SoloPlayer.js","../../widgets.react/dist/components/SessionDetailWidget.js","../../widgets.react/dist/components/controls/SessionSummary.js","../../widgets.react/dist/components/controls/SummaryViewer.js","../../widgets.react/dist/components/controls/SessionComments.js","../../widgets.react/dist/components/controls/SessionCommentCreate.js","../../widgets.react/dist/components/controls/SessionCommentEdit.js","../../widgets.react/dist/components/controls/SessionCommentDelete.js","../../widgets.react/dist/dialogs/ConfirmDialog.js","../../widgets.react/dist/interfaces/index.js","../../widgets.react/dist/interfaces/IGroupStore.js","../../widgets.react/dist/interfaces/IMemberStore.js","../../widgets.react/dist/interfaces/IOrganizationStore.js","../../widgets.react/dist/interfaces/IPersonStore.js","../../widgets.react/dist/interfaces/ISeriesStore.js","../../widgets.react/dist/interfaces/ISessionStore.js","../../widgets.react/dist/interfaces/ISyncStore.js","../../widgets.react/dist/interfaces/IUserStore.js","../../widgets.react/dist/modules/index.js","sdk/BrowserStorageService.ts","sdk/NavService.ts","components/dialogs/NewGroupDialog.tsx","components/controls/InviteBtn.tsx","sdk/providers/auth/AadAuthProvider.ts","sdk/providers/calendar/AadCalendarProvider.ts","sdk/providers/ProviderFactory.ts","sdk/ClientOpService.ts","store/Spa.Store.ts","components/controls/UserMenu.tsx","components/controls/ContactBtn.tsx","components/nav/Footer.tsx","components/nav/SideNav.tsx","components/controls/GroupTabs.tsx","components/controls/OrgTabs.tsx","components/controls/DirectoryTabs.tsx","components/nav/TopNav.tsx","components/nav/Header.tsx","sdk/EnvironmentSettings.ts","components/controls/Background.ts","components/views/Private.tsx","components/views/Calendar.tsx","components/views/Feed.tsx","components/dialogs/DeleteMemberDlg.tsx","components/dialogs/AddMemberDialog.tsx","components/cards/MemberCard.tsx","components/views/Group.tsx","components/dialogs/DeleteGroupDialog.tsx","components/cards/GroupsCard.tsx","components/views/Groups.tsx","components/views/Public.tsx","components/login/SingleSignOn.tsx","components/views/Home.tsx","components/views/IFrameFeed.tsx","components/views/IFrameSessionEditor.tsx","components/login/LoginO365.tsx","sdk/providers/auth/OktaProvider.ts","components/login/LoginOkta.tsx","components/controls/ToggleTable.tsx","components/cards/NotificationsCard.tsx","components/sync/AAD/AadTenantPicker.tsx","components/cards/TeamsNotificationsCard.tsx","components/cards/AcsCard.tsx","components/views/Notifications.tsx","components/views/Past.tsx","components/views/Pending.tsx","components/views/People.tsx","components/cards/PerformanceCard.tsx","components/views/Performance.tsx","components/cards/PermissionsCard.tsx","components/views/Permissions.tsx","components/views/PublicSession.tsx","components/views/Reports.tsx","components/sync/AAD/AadIntro.tsx","components/sync/AAD/AadGrant.tsx","modules/Sync.ts","components/sync/TargetCache.ts","components/sync/TargetPicker.tsx","components/sync/TargetConfig.tsx","components/sync/AAD/AadSync.tsx","components/sync/SyncDisabled.tsx","components/sync/Okta/OktaIntro.tsx","components/sync/Okta/OktaSync.tsx","components/sync/SyncHistory.tsx","components/cards/SyncCard.tsx","components/views/Sync.tsx","admin/components/Layout.tsx","admin/components/views/Home.tsx","admin/store/OrgStore.tsx","admin/store/AdminStore.tsx","modules/PatchService.ts","admin/components/views/OrganizationEdit.tsx","components/dialogs/DeleteOrgDlg.tsx","admin/components/views/OrganizationList.tsx","components/dialogs/SimpleDlg.tsx","components/views/UnAuthorized.tsx","components/cards/SessionSettingsCard.tsx","components/views/SessionSettings.tsx","components/views/AzureSettings.tsx","components/views/OrgTokenSettings.tsx","components/views/Sandbox.tsx","components/views/Theme.tsx","components/views/ViewRouter.tsx","components/dialogs/SingletonDialogs.tsx","components/controls/VersionNumber.tsx","App.tsx","index.tsx"],"names":["__createBinding","this","Object","create","o","m","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","defineProperty","__exportStar","exports","p","prototype","hasOwnProperty","call","value","require","SoundbiteApiConfig","constructor","_httpAdapter","_apiPrefixUrl","imgAvatarUrl","imgEmptyCardArtUrl","getToken","Promise","resolve","clientOpsHandler","clientOps","reject","ApiPrefixUrl","length","substring","httpAdapter","__setModuleDefault","v","__importStar","mod","result","ErrorDlg","api_1","react_1","reactstrap_1","controls_1","Component","show","error","name","message","PublicError","instance","setState","isOpen","props","super","console","close","onClose","state","render","default","createElement","Modal","toggle","bind","backdrop","modalClassName","ModalHeader","className","ModalBody","ModalFooter","SupportLink","type","onClick","Fragment","HttpService","PublicError_1","SoundbiteApiConfig_1","delete","url","options","then","catch","ex","msg","concat","log","patch","data","post","put","__importDefault","ShowWhen","is","display","isDisplayBased","style","width","children","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","next","e","rejected","done","apply","WidgetStore","mobx_1","DialogManager_1","SessionStore_1","GroupStore_1","MemberStore_1","OrganizationStore_1","SyncStore_1","PersonStore_1","SeriesStore_1","UserStore_1","enums_1","styles_1","isInitialized","TokenRefreshTimeout","authState","AuthState","Initializing","members","MemberStore","organizations","OrganizationStore","sync","OrgSyncStore","people","PersonStore","series","SeriesStore","sessions","SessionStore","groups","GroupStore","users","UserStore","showDeleteSession","showDeleteSessionHandler","showDeleteSeries","showDeleteSeriesHandler","showNewSession","showNewSessionHandler","showEditSession","showEditSessionHandler","showEditSeries","showEditSeriesHandler","showPlayer","showPlayerHandler","showRecorder","showRecorderHandler","showReports","showReportsHandler","makeObservable","observable","initialize","action","isUserRole","userRole","_a","_b","currentRole","currentUser","UserRole","Unknown","isPersonRole","personRole","_c","currentOrg","details","me","PersonRole","God","isMemberRole","memberRole","groupDetails","Admin","appPayload","refreshTimeout","arguments","organization","myOrgs","user","orgRoute","route","orgTheme","settings","theme","GlobalTheme","set","clear","token","clearTimeout","Authorized","OrganizationSelect","setTimeout","encodeURIComponent","Logger","LogInfo","err","LogError","AuthRequired","reset","refresh","sessionRoute","DialogManager","ShowPlayerDialog","ShowRecordDialog","session","ShowReportsDialog","ShowSeriesDeleteDialog","ShowSessionDeleteDialog","alert","ShowSeriesEditDialog","groupRoute","isSeries","ShowSessionNewDialog","DialogStyleType","Loader","ShowWhen_1","isLoadedWhen","isMessageInstant","messageDelay","isShowingMessage","setShowingMessage","useState","timeoutHandle","setTimeoutHandle","isMessageEnabled","showMessage","clearTimer","checkMessage","startTimer","delayTimeoutMillis","handle","useEffect","smallClassName","isSmall","minHeight","Spinner","SbButton","SbButtonSize","SbButtonType","react_fontawesome_1","lastEventTime","useRef","TextContent","text","onInteract","event","currentTime","Date","getTime","current","preventDefault","stopPropagation","btnClassName","iconClass","icon","typeClass","sizeClass","Primary","PrimaryOutline","Secondary","SecondaryOutline","size","Large","Small","getClassName","title","onTouchEnd","onPointerUp","disabled","hasText","FontAwesomeIcon","DialogHelper","DialogButtonStyleType_1","DialogStyleType_1","RenderDialog","dialogStyle","actions","body","isActionRunning","setIsActionRunning","closeDialog","RenderDialogWithSubTitle","subTitle","getModalStyle","renderHeader","renderBody","renderFooter","resolveBoolean","defaultValue","buildActionButton","index","isVisible","buttonAction","onSelectedValue","onSelected","isClose","key","getActionButtonStyle","isEnabled","buttonStyle","DialogButtonStyleType","Danger","SessionEditor","SessionEditorBig","getHeaderStyle","renderSubTitle","component","map","DialogState","ClipSource","darkTheme","darkColors","lightTheme","lightColors","uniqueThemeName","defaultFont","moment_1","tinycolor2_1","_1","StorageValue_1","ThemeProcessor_1","ThemeTest_1","fontFamily","fontFamilyMono","uniqueTime","utc","format","neutrals","background","midground","foreground","min","n100","n200","n300","n400","n500","n600","n700","n800","n900","max","hues","red","orange","yellow","green","blue","indigo","violet","pink","teal","cyan","bootstrap","primary","secondary","info","success","danger","warning","brand","first","second","transparent","ThemeName","Light","colors","fonts","images","logo","logoAlt","mark","Dark","getOrgThemeStore","LocalValue","lastTester","_lastTester","lastProcessor","_lastProcessor","isNeedReload","currentOrgRoute","loadedOrgRoute","_instance","lastOrgRoute","lastOrgRouteStore","isThemeValid","Utils","clone","process","test","ThemeProcessor","persist","Draft","processAndSave","publishedUtc","orgStore","remove","setDraft","isLogging","ThemeTest","assert","targetContrastLevel","window","location","reload","mix","weight","color1","color2","toHexString","ContrastLevel","Minimum","sbSetLightTheme","sbSetDarkTheme","sbSetResetTheme","localStorage","MediaPlayerContext","can_autoplay_1","ErrorDlg_1","hasMediaElement","_mediaElement","mediaElement","Error","timeSummary","time","duration","Infinity","timeDisplay","displayDuration","durationDisplay","isVideo","mode","isAudio","resetOnPlay","jumpToContextTime","isPublic","mediaUrl","isPlaying","isMediaLoaded","hasError","supportsScrubbing","isAutoPlayAllowed","computed","Audio","preload","autoplay","playbackRate","autoPlayAllowed","video","load","clip","autoPlay","isNullOrEmpty","localMediaUrl","paused","pause","onended","onPlaybackCompleteInternal","runInAction","src","onerror","onMediaError","oncanplaythrough","play","jumpTo","_timer","setInterval","onPlay","clearInterval","jumpToStart","totalDuration","hours","pad","minutes","seconds","minPad","onPlaybackComplete","ConcurrentCache_1","myGroups","myTargetGroups","orgCache","ConcurrentCache","readMyOrgsAsync","readOrgAsync","onGroupRemoved","getCacheKey","promises","push","readMyGroupsAsync","readGroupsAsync","all","allowCache","ret","OrganizationsService","readAllAsync","cacheKey","getAsync","readAsync","setCurrentOrganization","org","didFilter","filter","g","temp","onGroupChanged","group","groupsPromise","myGroupsPromise","GroupsService","readAllGroupsAsync","readMyTargetGroupsAsync","checkDialogHash","DialogHash","query_string_1","__1","parsedQueryString","parse","hash","playSessionRoute","Play","recordSessionRoute","Record","CreateSession","CreateSessionExpanded","RecordBtn","free_solid_svg_icons_1","RecordDlg_1","SbButton_1","setIsOpen","faMicrophone","RecordDlg","participantRole","onError","onSave","VideoEditorContext","RecorderState_1","VideoClip_1","isMultiDevice","devices","loadDevices","isDeviceListLoaded","navigator","mediaDevices","enumerateDevices","videoDevices","i","kind","isRecording","recorderState","RecorderState","Recording","isPaused","Paused","VideoElement","originalVolume","lastDeviceId","SessionValue","recordingDurationInMs","NotRecording","isWebCamOn","isEditing","currentDevice","videoClips","hasUnsavedRecording","hasValue","lastDevice","find","d","deviceId","isVideoCaptureSupported","getUserMedia","showEditor","stopWebCam","startWebCam","muteVolume","getConstraints","stream","srcObject","switchWebCam","wasRunning","currentDeviceIndex","findIndex","device","stopRecording","getTracks","forEach","t","stop","restoreOriginalVolume","startRecording","chunks","initRecorder","recorder","start","recordingStarted","pauseRecording","storeRecordingDuration","resumeRecording","resume","finalizeRecording","addClip","onClipAdded","removeClipById","id","removeClipAt","splice","playClip","codec","getCodec","ext","getExtensionFromCodec","blob","Blob","file","File","clipId","getNextClipId","VideoClip","URL","createObjectURL","fileFormat","onVideoDataCaptured","hasVideoMimeSignature","indexOf","toLowerCase","volume","MediaRecorder","mimeType","addEventListener","audio","ideal","height","groupDetailsCache","lastGroupRoute","currentGroup","deleteGroupAsync","updateGroupAsync","clearCache","readGroupAsync","createGroupAsync","newGroup","createAsync","refreshPromise","orgChangePromise","deleteAsync","patchAsync","onAnyMemberChanged","objects","Map","wasCached","wasPending","isPendingPromise","currentPromise","reader","cached","promised","newPromise","finally","StorageValue","storage","sessionStorage","getItem","removeItem","json","JSON","stringify","setItem","withDefault","valueName","instanceName","DialogManagerLink","__rest","s","getOwnPropertySymbols","propertyIsEnumerable","InfiniteTable","react_window_infinite_loader_1","react_window_1","react_virtualized_auto_sizer_1","TableContext","createContext","top","setTop","header","footer","Table","forwardRef","ref","rest","useContext","assign","position","WindowWithContext","row","listRef","Provider","FixedSizeList","innerElementType","onItemsRendered","_getItemStyle","overscanStartIndex","el","count","Body","_ref","isItemLoaded","itemCount","loadMoreItems","loadMore","minimumBatchSize","_ref2","itemSize","LabelInfo","label","KpiCard","mobx_react_lite_1","observer","deltaIconClass","deltaIcon","statIconBackClass","statIconBg","Card","statIcon","faChartArea","CardBody","tooltip","Row","Col","stat","delta","deltaTitle","store_1","HashHelper_1","RecordWidget_1","setSession","setHash","sessionDetails","readSessionDetailsAsync","init","formatRelativeDate","publish","RecordWidget","showButtons","EmptyCardBody","showImage","wrapperClassName","hasBorder","prompt","alt","SingletonDialogBase","isBig","headerClassname","submit","onSubmit","open","modalFooter","childFooter","modalHeader","modalBody","_templateObject","_taggedTemplateLiteral","ThemeConfig","ColorConfig_1","WidgetStore_1","baseStyles","css","jsx","ColorConfig","CardFooter","Button","color","Scrubber2","react_2","react_scrubber_1","context","setContext","styles","scrubberClassName","Scrubber","onScrubStart","onScrubEnd","onScrubChange","downloadBlob","setupAxiosAdapter","axios_1","AxiosHttpAdapter_1","AxiosHttpAdapter","medialUrl","method","responseType","LogLevel","Log","level","sbMinLogLevel","trace","warn","LogTrace","LogWarning","Logger_1","innerError","errorJson","apiError","ApiError","isUserSafe","statusCode","path","response","isApiError","defaultContrastPercentage","constrastPercentage","processor","contrastPercentage","originalTheme","isLight","upContrast","percent","tinyColor","darken","lighten","downContrast","baseColor","dangerHigh","dangerLow","defaultHigh","defaultLow","infoHigh","infoLow","primaryHigh","primaryLow","secondaryHigh","secondaryLow","successHigh","successLow","warningHigh","warningLow","ContrastAssert","RelativeContrastAssert","ThemeAssertBase","findContrast","ratioForLevel","contrast","None","Enhanced","targetColor","targetRatio","candidate","baseIsLight","readability","candidateTinycolor","toUpperCase","higherColor","lowerColor","description","baseToA","suggestedColor","colorA","colorB","checkContrast","defaultLevel","checker","asserts","isValid","addNeutral","addBootstrap","add","addContrastAssert","addRelativeContrastAssert","checkHues","readMembersAsync","MembersService","readAllAsync_Obsolete","addMembersAsync","invites","inviteAsync","updateMemberAsync","member","updatedMember","updateAsync","deleteMemberAsync","memberRoute","deletePersonAsync","invitePersonAsync","updatePersonAsync","pageRequest","PeopleService","person","personRoute","seriesCache","seriesRoute","readSeriesAsync","SeriesService","updateSeriesAsync","deleteSeriesAsync","orgSeries","groupSeries","SessionStoreClass","orgFeed","groupFeed","sessionDetailsCache","acknowledgeSessionAsync","createSessionAsync","deleteSessionAsync","readOrgFeedAsync","readOrgSeriesAsync","readGroupFeedAsync","readGroupSeriesAsync","updateParticipantStateAsync","updateSessionAsync","clipState","isReady","clipDraft","ClipState","ClipService","stateAsync","promptRoute","clipRoute","Ready","uploadToStorageIfNeeded","newClip","onProgress","isStorageUpload","isUploaded","maxDirectUploadSize","uploadUrl","headers","onUploadProgress","progressEvent","percentCompleted","Math","round","loaded","total","newPercent","createClipIfNeeded","mediaEffects","formData","isFormUpload","formDataForClip","FormData","append","fileType","toString","clipType","resetCache","orgSecurityType","lastOrgSecurityType","SessionSecurityType","Protected","groupSecurityType","lastGroupSecurityType","sessionSecurity","Public","SessionsService","readPublicFeedAsync","readFeedAsync","readGroupPublicFeedAsync","readAllGroupAsync","removeFromFeeds","ParticipantRole","participantState","ParticipantState","Consumed","newSession","retry","sessionDraft","upload","uploadClipAsync","prompts","updateStateAsync","participants","config","validation","nextConfig","validateConfigAsync","readConfigAsync","updateConfigAsync","syncAsync","updateToNextConfig","validateNextConfig","nextStrategyConfig","syncConfigJson","sortTargets","sort","originalLength","a","b","localeCompare","setNextConfig","orgConfig","setNextStrategyConfig","strategyConfig","SyncService","validateAsync","sanitizedConfig","orgSyncConfig","currentUserIsLoaded","inviteUsersAsync","updateCurrentUserImageUrl","userImgageUrl","imageSrc","UsersService","React","DialogManagerLink_1","PlayDlg_1","SeriesDeleteDialog_1","SessionDeleteDialog_1","SessionNewDialog_1","SessionReportDialog_1","ProfileDialog_1","ConfirmDialog_1","showDialog","Host","SessionReportDialog","PlayDlg","currentUserRoute","openImmediately","ShowProfileDialog","showSettings","ProfileDialog","SeriesDeleteDialog","SessionDeleteDialog","SessionNewDialog","isExpanded","ShowConfirmDialog","onConfirm","buttonTitle","Normal","ConfirmDialog","setCurrentDialogRef","PlayerWidget_1","hasBeenClosed","onContext","componentDidMount","getTitle","getSubtitle","PlayerWidget","components_1","SessionDetailWidget_1","isSolo","setIsSolo","isMediaError","setIsMediaError","isAdminOrMore","currentSession","clips","ClipType","RawClip","RawTranscript","getValidClips","canAcknowledge","myParticipation","some","ConsumptionRequested","errors","SoloPlayer","allowDownload","GroupPlayer","SessionDetailWidget","Avatar","showName","showTitle","showJobTitle","avatarlUrl","displayName","userDisplay","outerClass","paddingRight","sizingClassName","alwaysHasEmail","FaPrepend","fontawesome_svg_core_1","library","faCalendarAlt","faHouseUser","faHourglassHalf","faKey","faPen","faSyncAlt","InputGroupAddon","addonType","prefix","ParticipantSummary","GroupParticipantWrapper","LabelInfo_1","ComponentContent","hostInfo","participantTitle","participantInfo","item","hasMoreMembers","isLoading","totalCount","skipCount","setIsExpanded","reRenderIndex","setReRenderIndex","hosts","setHosts","hostGroups","setHostGroups","setParticipants","participantGroups","setParticipantGroups","toggleExpanded","onToggleExpansion","uniqueGroups","arr","lookForHost","filtered","unique","Array","from","values","fetchMembers","groupToExpand","readPariticpantsInGroup","includesCounts","skip","take","RenderParticipant","faHeadphones","RenderSection","labelDesc","toggleGroupExpanded","faSquareMinus","faSquarePlus","autoExpand","_d","content","sessionType","SessionType","Announcement","Survey","getContent","showRoleWarning","permissions","minRoleForAudience","Person","hideAudienceRoleWarning","isExpandable","outline","renderComponent","SbProgressButton","react_progress_button_1","buttonState","isRunning","isRecordMode","faStop","faPause","faPlay","shouldAllowClickOnLoading","allowClickOnLoading","SeriesDetailsDlg","sanitize_html_1","Loader_1","ParticipantSummary_1","seriesDetails","renderScheduleRow","expandSchedule","recurrenceDescription","template","recurrence","reminder","schedule","slice","showExpandBtn","scope","cleanPromptContext","isAudienceEnabled","trim","dangerouslySetInnerHTML","__html","SeriesDetailsBtn","dialog","createRef","faCalendar","DateTimePicker","react_datetime_1","TimePicker_1","defaultValueDateIsoString","nextHalfHourIsoString","selectedDateIsoString","togglable","onDateChange","onTimeChange","onToggle","isValidDate","minute","toISOString","dateMoment","local","val","arg","argMoment","newMoment","year","month","date","hour","currentDate","selectedDate","renderControls","selectedMoment","selectedHour","timeFormat","onChange","inputProps","TimePicker","noneTitle","FormGroup","InputGroup","Toggle","selectedText","target","selectedOptions","selectedTime","ItemPicker","ListItemActionType","react_select_1","animated_1","mapToOption","items","getName","getValue","placeHolder","isMulti","closeMenuOnSelect","mappedOptions","selectedItems","isMounting","setIsMounting","allOptions","setAllOptions","selectedOrig","setSelectedOrig","selected","setSelected","onChangeList","changes","origSel","selectedOption","curSel","none","currentSelItem","changeEntry","classNamePrefix","components","actionMeta","onItemSelected","isClearable","isDisabled","placeholder","PeoplePicker","PeoplePickerMePolicy","creatable_1","select_1","CreatablePaginatingSelect","withAsyncPaginate","PaginatingSelect","personToOption","peopleToOptions","doPropsOnChange","onCreateOption","onFormatCreateLabel","loadOptions","animatedComponents","mePolicy","Allow","Include","newValue","tokens","myRoute","checkForMeAndFilter","Deny","listOfOptions","option","inputValue","email","validateEmail","newOption","isEmptyMode","prevOptions","hasMore","page","PageUtils","hasMorePages","pendingEmails","emailOptions","staticPicker","formatCreateLabel","pagingPicker","allowInvite","debounceTimeout","shouldLoadMore","shouldLoadMorePickerPages","picker","opt","AsyncPaginate","useComponents","useAsyncPaginate","useAsyncPaginateBase","reduceGroupedOptions","wrapMenuList","withAsyncPaginate_1","wrapMenuList_1","reduceGroupedOptions_1","useAsyncPaginateBase_1","useAsyncPaginate_1","useComponents_1","useAsyncPaginatePure","useStateParam","useCallbackParam","useAsyncPaginateBaseParam","params","deps","inputValueParam","menuIsOpen","menuIsOpenParam","defaultInputValue","defaultInputValueParam","defaultMenuIsOpen","defaultMenuIsOpenParam","onInputChange","onInputChangeParam","onMenuClose","onMenuCloseParam","onMenuOpen","onMenuOpenParam","inputValueState","setInputValue","menuIsOpenState","setMenuIsOpen","nextInputValue","baseResult","useCallback","useAsyncPaginateBasePure","increaseStateId","requestOptions","getInitialCache","getInitialOptionsCache","validateResponse","sleep_promise_1","react_is_mounted_hook_1","defaultShouldLoadMore_1","defaultReduceOptions_1","errorText","isArray","defaultOptions","additional","defaultAdditional","initialOptions","isFirstLoad","caller","paramsRef","optionsCacheRef","sleepParam","setOptionsCache","validateResponseParam","reduceOptions","currentInputValue","isCacheEmpty","currentOptions","prevOptionsCache","newInputValue","newAdditional","prevStateId","useRefParam","useEffectParam","useIsMountedParam","getInitialOptionsCacheParam","requestOptionsParam","loadOptionsOnMenuOpen","filterOption","defaultReduceOptions","defaultShouldLoadMore","isMounted","isInitRef","setStateId","callRequestOptions","reduceState","handleScrolledToBottom","useComponentsPure","MenuList","useMemoParam","useMemo","CHECK_TIMEOUT","compose_react_refs_1","WrappedMenuList","selectProps","innerRef","useEffectProp","useRefProp","useCallbackProp","setTimeoutProp","clearTimeoutProp","checkTimeoutRef","menuListRef","shouldHandle","scrollTop","scrollHeight","clientHeight","checkAndHandle","setCheckAndHandleTimeout","defaultProps","ActivityCards","KpiCard_1","_e","_f","_g","hrs","floor","activityReport","lg","xl","consumerCount","faHeadphonesAlt","unitsConsumed","faHourglassEnd","producerCount","faHeadset","unitsProduced","faHourglassStart","highlights","highlight","ContentCards","widgets_1","_h","_j","contentReport","sessionsCount","seriesCount","faRedo","consumeCount","acknowledgeCount","faCheck","recentSessions","FeedWidget","isReadOnly","FeedMode","TableFeedWidget_1","CardFeedWidget_1","CardFeedWidget","TableFeedWidget","isSaving","setIsSaving","setRecorderState","Empty","recordAndPlay","agendaText","RecordAndPlay","onRecordChange","hostingType","ClipHostingType","AzureStorage","Prompt","FileType","Mp3","PastSessionsWidget","SessionTable_1","readPastSessions","readPastAsync","readGroupPastAsync","setCount","isCreateEnabled","setCreateEnabled","setTitle","tableRef","faCalendarCheck","currentPerson","grp","showCreateButton","newTitle","onRefresh","onOpenNewSession","onFirstLoad","onFurtherLoad","CardHeader","xs","md","faPlus","emptyMsg","SessionTable","RecordBtn_1","InfiniteTable_1","setIsloading","setGroup","showLimit","setShowLimit","showReminder","setShowReminder","showPublish","setShowPublish","maxTake","maxTotalItems","isAdmin","isOwner","MemberRole","Owner","firstLoad","results","firstSessions","publishSent","limit","checkShowColumns","addPageToMap","maxTotalResults","renderButtons","isPrivileged","myParticipants","iAmHost","canRecord","disableRecord","ContributionRequested","isReadyToRecord","canDelete","disableDelete","canReport","disableReport","canPlay","disablePlay","onReport","faSignal","onDeleteSession","faTrash","PlayBtn","useImperativeHandle","SessionRow","rowProps","reminderMoment","reminderTxt","calendar","reminderClass","deadlineMoment","publishTxt","publishClass","isBefore","secondsToString","LoadingRow","LastRow","TableHeader","startIndex","stopIndex","PendingSessionsWidget","readPendingSessions","readPendingAsync","readGroupPendingAsync","faCalendarDay","SeriesWidget","SeriesDetailsBtn_1","setIsLoading","feedSeries","setFeedSeries","emptyMessage","setEmptyMessage","isGroupMode","errorTitle","setErrorTitle","applySeries","feed","loadTitle","inGroup","Member","getGroup","canLoadGroup","loadSeries","noun","noFeedMessage","renderRow","RecurrenceSummary","Alert","classnames_1","DialogHelper_1","PermissionRow","createTab","currentMode","active","NavItem","NavLink","role","Tabs","Nav","setUser","isChanged","setIsChanged","myUser","readMeAsync","updateNotificationAsync","onChangeEmail","allow","allowEmail","onChangeSms","allowSms","getActions","getBody","mailtoLink","telLinks","phone","sm","href","colSpan","SessionEditorWidget_1","setDialogStyle","onExpand","SessionEditorWidget","onSaved","startExpanded","_k","_l","_m","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_0","isOrgSessionAllowed","minRoleToCreateSession","areCommentsAllowed","sessionCommentsEnabled","clipSource","setClipSource","RecordAudio","possibleGroups","setPossibleGroups","agenda","setAgenda","setSchedule","Recurrence","NoRepeat","recurrenceData","setError","setClipState","isTranscribed","setIsTranscribed","transcriptionEnabled","transcriptionOnByDefault","setIsPublic","defaultSessionSecurity","isCommentsEnabled","setIsCommentsEnabled","defaultSessionCommentPolicy","SessionCommentPolicy","Allowed","draftSession","setDraftSession","saveProgress","setSaveProgress","numCols","isPublicEnabled","setIsPublicEnabled","loadPeople","newGroupPromise","minRoleToCreateTeamSession","isInCreateRole","onPeopleChange","peopleRoutes","oldParticipants","filterParticipants","Participant","newParticipants","peopleRoutesToParticipants","onScheduleChange","sessionSchedule","onGroupsChange","oldGroups","filterGroups","newGroups","groupToParticipantGroup","isSaved","getFileType","GetFileTypeFromFileName","parts","split","draftAlert","colorName","draftError","draftMessage","loadParticipants","_2","_3","_4","_5","_6","_7","isPubEnabled","minRoleToCreatePublic","minRoleToCreateTeamPublic","SecurityTypePicker","faLockOpen","faLock","onPublicToggled","TranscriptionPicker","CommentsPicker","canShowPersonPicker","hasPossibleGroups","canShowGroupPicker","canCreate","sessionActionTitle","ParticipantGroupPicker","onChangeGroup","defaultGroups","convertToOptions","onClipSourceChange","RichText","SchedulePicker","allowRecurrence","onSessionChange","ErrorCtrl","AskAccess","roleMsg","firstPrompt","reminderCalEventId","reminderSent","transcribe","sessionCommentPolicy","Disallowed","dayBefore","buildSession","buildClip","progress","hasParticipantHost","hasGroupHost","hasParticipantAudience","hasGroupAudience","deadline","isInvalid","SbProgress","api_2","api_3","moment_timezone_1","GraphCard_1","SessionReactions_1","sessionReport","setSessionReport","audienceCount","Number","audienceSize","listenersCount","csvRow","_len","_key","join","createCsv","reportData","ReportService","sessionDetailsReportAsync","tz","guess","csv","createdUtc","formatDateTime","sessionSummary","audience","part","familyName","givenName","participantRoleString","participantReactionString","reactionType","updatedUtc","audienceGroups","partGrp","plays","playEvents","dateTimeUtc","consumeCountOverTime","timeSeries","fillMissingDates","day","formatDate","acknowledgers","acknowleder","notifications","notification","status","NotificationStatus","Success","Failed","notificationStatusName","channel","NotificationChannel","Email","SMS","Teams","notificationChannelName","notificationType","SessionNotificationType","HostPublish","Publish","Reminder","notificationTypeName","sessionNotifications","download","currentDateInISOFormat","downloadCsv","filename","link","document","setAttribute","appendChild","click","removeChild","replace","newReport","sessionReportAsync","faPercentage","SessionReactions","readOnly","faUsers","GraphCard","fillDateRange","react_chartjs_2_1","chart_js_1","Chart","register","CategoryScale","LinearScale","PointElement","LineElement","font","family","graphData","labels","datasets","graphOptions","responsive","plugins","legend","hover","scales","y","beginAtZero","Line","reactions","setReactions","myReaction","setMyReaction","forceLoad","needToLoad","applyReactions","readReactionsAsync","removeReaction","oldReaction","r","addReaction","onReaction","Audience","ParticipantReactionType","calcNewReaction","updateReactionAsync","reactionBtn","iconName","Like","faThumbsUp","Love","faHeart","Laugh","faFaceLaugh","Wow","faFaceFlushed","Sad","faFrown","iconForReactionType","number","classes","handler","isMyReaction","InfiniteScrollDataHelper","getMoreItemsAction","requestPromise","waitPromise","waitStart","waitStop","getMoreItems","TranscriptViewer","controlState","NotRequested","transcript","setTranscript","RenderTranscript","TranscriptNotAvailable","amsGapThresholdInMs","sections","isNewSectionNeeded","last","currentSection","instances","subtract","asMilliseconds","end","section","RenderAmsTranscriptV1_0_0","version","Retrieved","CannotRequest","Requested","transcriptUrl","getTranscriptUrl","transcriptLocal","includeToken","getTranscript","ColorPicker_1","setColor","colorType","colorVal","colorPicker","ColorPicker","defaultColor","bootstrapColorPicker","lowName","highName","react_color_1","onChangeComplete","hex","offsetColor","swatchClasses","backgroundColor","borderColor","SketchPicker","SoundScrubber_1","Player_1","DownloadBtn_1","VideoEditor_1","rmg","scrubber","defaultTab","videoEnabled","RecordVideo","recordedDuration","audioFile","dlgState","isPlayMode","activeTabValue","uploadFile","uploadDuration","audioError","onAudioRecorded","onVideoRecorded","tick","onResetAudio","onResetVideo","onScrub","onScrubberEnded","componentWillUnmount","timer","limitInSeconds","MAX_SAFE_INTEGER","videoFile","playAsync","loadAudioAsync","audioUrl","Waiting","loadUrlAsync","recordedBlob","blobURL","onFileUploaded","sampleRate","audioCtx","AudioContext","webkitAudioContext","timerText","left","displayTime","right","hasClip","tabValue","toggleTab","recordAndPlayTab","waveColor","waveBackColor","waveBackgroundColor","rowClass","recordTitle","DownloadBtn","ReactMicGold","record","visualSetting","strokeColor","channelCount","onStop","noiseSuppression","echoCancellation","SoundScrubber","onEnded","onAudioError","uploadTab","fileDisplayName","getElementById","accept","files","IsVideo","playsInline","controls","marginTop","marginBottom","objectFit","IsAudio","Player","onDuration","isVideoEnabled","Upload","TabContent","activeTab","TabPane","tabId","VideoEditor","onRecorded","onReset","doLoadAudioAsync","initialMediaUrl","showFileError","onAudioEnded","onTick","jump","hideTime","MediaPlayerContextFactory_1","SoundScrubber2_1","isFirstPlay","setIsFirstPlay","mediaType","setMediaType","MediaPlayerContextFactory","getTypeName","getContext","isShowDownload","commonContextSetup","onFirstPlay","newMediaType","newContext","videoElement","asBlob","PlayButton","api_axios_1","onDownload","downloadUrl","decodeURIComponent","search","pathname","faDownload","AzureMediaPlayerContext_1","HlsMediaPlayerContext_1","MediaPlayerContext_1","SbMediaPlayerContext_1","typeName","AzureMediaPlayerContext","HlsMediaPlayerContext","SbMediaPlayerContext","getTypeNameByClip","getTypeNameByMediaUrl","AzureStreaming","SbStreaming","Hls","isNative","buildMediaUrl","canPlayType","initializeVideoElement","isSupported","initializeHlsPlayer","hlsPlayer","loadSource","attachMedia","azure","streamingEndpointUrlPrefix","readAmsStreamingUrl","azureMediaUrl","hostingData","buildMediaProxyUrl","azureMediaUrlEnc","encodeURI","handleDurationChange","handleTimeUpdate","handleOnPlay","handleOnPause","handleEnded","newDuration","isNaN","isFinite","DefaultConfig","xhrSetup","xhr","includes","setRequestHeader","GroupPlayerRow","contributor","request","enums_2","getOrgRouteFromPath","orgRegexData","RegExp","exec","hashValue","history","pushState","urlWithNewHash","newHash","dateIsoString","monthAndDayNumber","dayOfWeek","dayOfMonth","Daily","Weekday","Weekly","Monthly","totalSeconds","minDisplay","secDisplay","String","addMinutes","diffInMinutes","obj","stringCompare","diff","obj1","obj2","diffs","compare","item1","item2","type1","type2","arraysMatch","arr1","arr2","objDiff","keys","newGuid","c","random","isFirstNameOnly","includeEmail","isEmail","fileName","Avi","F4v","Flv","Mkv","Mov","Mp4","Mpg","Webm","Wmv","stringToHashPercent","charCodeAt","participantStateString","Pending","Contributed","Unsubscribed","reaction","filledItems","currentMoment","nextLabel","AuthProviderType","AutoFlagStateType","CalendarInteractionType","ClipEventType","ClipOperationStateType","ClipOperationType","CodeGenScenarioType","CollectionSyncMode","EventType","HttpStatusCode","JobStatusType","MediaProcessingState","MemberSyncOpType","OrgSyncState","ProviderType","SecurityOpType","SessionLifecycleStage","SessionSummaryType","SyncOpType","SyncScope","TokenSecurityLevel","TokenSecurityType","TranscriptState","AzureAuthService","HttpService_1","loginAzureAD","externalUserInfo","loginToOrgAzureAD","loginTeams","loginSharePoint","loginToOrg","simulateAmsGridEvent","clipOpRoute","createAsync_Obsolete","createAnnouncementClipAsync","MediaStreamingService","sbClipManifest","manifest","sourceUrl","manifestPart","readVariantPlaylist","readVariantPlaylistByClip","readLevelPlaylist","readLevelPlaylistByClip","OktaAuthService","getSettingsByEmail","getSettingsByRoute","login","readAllAsGodAsync","readAllArchivedAsync","readNotificationSettingsAsync","readSessionSettingsAsync","updateNotificationSettingsAsync","updateSessionSettingsAsync","readAzureSettingsAsync","updateAzureSettingsAsync","readPermissionsAsync","updatePermissionsAsync","restoreAsync","uploadImageAsync","updateThemeAsync","setOrgToken","newToken","syncOrgTokenWithAmsContentKeyPolicy","ensureAmsContentKeyPolicy","personFields","activityReportAsync","startUtc","endUtc","contentReportAsync","SessionCommentsService","readAllSessionComments","createSessionComment","newComment","updateSessionComment","commentRoute","deleteSessionComment","index_1","readAllGroupSessionsAsync","readRecentlyPublishedAsync","summaryAsync","summaryType","Paragraph","readPublicAsync","partUpdate","acknowledgePublicSession","userRoute","setReminderCalendarEntryId","reminderCalendarEventId","readParticipants","includeRoles","SpaService","spaInit","ping","readResults","readUsersAsync","skipToken","readUserAsync","userId","groupId","upsertMeAsync","userInfo","notificationSettings","upsertMyImageAsync","getRouteFromUniversalId","universalId","getConfig","onProgressHandler","percentage","hasConfig","Authorization","contentType","onDownloadProgress","SbBootstrapStyles","GlobalTheme_1","bootstrapButton","styleName","neutral","colorHigh","colorLow","setAlpha","toHex8String","disableRepeatWarning","hasRendered","getStyles","Global","SbDashboardStyles","SbStyles","sortSessions","sortBy","compareLex","getFunc","collection","leftVal","rightVal","isShowDetails","showDetails","IconLink","SbProgressButton_1","react_quilljs_1","quill","quillRef","useQuill","modules","toolbar","list","formats","enable","clipboard","dangerouslyPasteHTML","on","root","innerHTML","getBaseStyles","disabledValue","encodedTo","encodedSubject","errName","errMsg","currentUrl","inErrName","inErrMsg","inErrStack","stack","encodedBody","checked","defaultChecked","EmailPicker","firePropsOnChange","emails","GroupPicker","GroupPickerLoadType","ItemPicker_1","isLoaded","setIsLoaded","setGroups","loadMode","MyGroups","AllGroups","removedValue","isFixed","selectedGroups","onChangeParticipantGroup","ParticipantPicker","onParticipantChange","peopleAsOptions","defaultParticipants","SelectComponent","WithAsyncPaginate","selectRef","isLoadingProp","useComponentsProp","useAsyncPaginateProp","cacheUniqs","asyncPaginateProps","processedComponents","loadedOptions","res","mapLabelToIndex","prevOptionsIndex","prevOptionsLength","groupIndex","prevGroup","DateTimePicker_1","onRecurrenceChange","onLimitChange","onReminderChange","onDeadlineChange","isReminderValid","parseInt","currentTarget","Intl","DateTimeFormat","weekday","getDate","daily","weekly","monthly","scheduler","timeLimit","EmptyCardBody_1","setCurrentUser","feedSessions","setFeedSessions","showNoFeedImage","faPodcast","applySessions","orderSessions","securityType","loadSessions","isHost","isRecordable","isRemovable","isReportable","isPlayable","isReadyToPlay","showTime","showDeadline","tableHeader","tableRow","CardFeedWidget_styles_1","contentCard","fromNow","reminderTitle","publishTitle","hostParticipants","Header","MegaWidget","FeedWidget_1","PastSessionsWidget_1","PendingSessionsWidget_1","SeriesWidget_1","TabName","tabs","Feed","Calendar","Scheduled","History","currentTab","setCurrentTab","initialTabValue","getInitialTab","initialTab","suffix","Navbar","expand","Container","tab","xmlns","preserveAspectRatio","viewBox","x","points","PeopleWidget","dialogs_1","InfiniteScrollDataHelper_1","setOrg","myPersonRoute","myPersonRole","firstPeoplePromise","newOrgPromise","firstPeoplePage","newOrg","setPeople","scrollData","onSubmitInviteUser","invite","onInvitePerson","InviteUserDialog","onSubmitDeleteUser","PersonRow","onPersonClick","onToggleAdmin","adminChecked","DeleteUserDialog","onDeleteUser","TableRow","endIndex","SingletonDialogBase_1","DialogBase","headerContent","footerContent","bodyContent","Render","DialogManagerUi","currentDialog","setCurrentDialog","PeoplePicker_1","onPeoplePickerChange","PublicPlayerWidget","TranscriptViewer_1","setHasError","errorMsg","setErrorMsg","showTranscript","setShowTranscript","Agenda","promptText","showCallToAction","callToActionTitle","callToActionText","Title","SubTitle","showSubTitle","getTranscriptButtonMsg","transcriptState","Available","isTranscriptBtnVisible","isTranscriptBtnEnabled","onShowTranscript","TranscriptButton","hideOnError","RenderPlayer","ReportView","ActivityCards_1","ContentCards_1","ActivityGraphs_1","utcNow","startDate","setStartDate","months","endDate","setEndDate","setActivityReport","setContentReport","applyDateToNow","startDateArg","endDateArg","activityPromise","contentPromise","activity","currentDateDisplay","isAfter","ActivityGraphs","sessionsCountOverTime","ThemeBanner","ThemeConfig_1","setIsEditing","Custom","newTheme","ThemeDemo","pickers_1","RecordAndPlay_1","DemoPlayer","neutralRow","backColor","textColor","swatch","gradient","gradientExamples","typography","buttonSet","buttons","faTimesCircle","cards","faSave","fakeUser","allowNews","allowMarketing","User","providerType","AAD","calendarSettings","isAccepting","upn","fakePerson","participantPickers","allPeople","selectedPeople","selectedPeopleOptions","inputs","forms","isLightActive","sound","alerts","logos","playerRef","amp","enabled","sources","origUrl","encodedOrigUrl","proxyUrl","protectionInfo","authenticationToken","logAllEvents","VideoEditorContext_1","VideoEditorButtons_1","VideoRecorderButtons_1","editorContext","videoRef","isVideoLoading","setIsVideoLoading","onLoaded","onLoading","transform","onLoadStart","onLoadedMetadata","VideoEditorButtons","Context","VideoRecorderButtons","VideoSupported","isLocalRecording","durationInMs","VideoEditorService","ffmpeg_1","ffmpeg","createFFmpeg","corePath","origin","loadPromise","ensureLoaded","trimStart","videoClip","originalFile","FS","fetchFile","run","output","buffer","faCameraRotate","faVideo","onToggleRecording","A","I","module","B","Q","l","Symbol","toStringTag","n","TypeError","C","E","ReferenceError","setPrototypeOf","getPrototypeOf","__proto__","iterator","asyncIterator","S","_invoke","w","h","q","delegate","J","sent","_sent","dispatchException","abrupt","D","wrap","G","F","N","R","M","__await","return","resultName","nextLoc","U","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","completion","isGeneratorFunction","awrap","AsyncIterator","async","reverse","pop","prev","charAt","rval","complete","finish","delegateYield","regeneratorRuntime","Function","atob","Uint8Array","Buffer","TYPED_ARRAY_SUPPORT","RangeError","ArrayBuffer","byteLength","isEncoding","write","isBuffer","copy","isView","O","K","L","lastIndexOf","readUInt16BE","substr","W","fromByteArray","fromCharCode","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","kMaxLength","poolSize","_augment","species","fill","allocUnsafe","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","inspect","match","toJSON","_arr","Y","f","H","u","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","read","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","toByteArray","NaN","abs","LN2","createAnalyser","getAudioContextObject","getAudioContext","getAnalyser","createGain","getAudioRecorder","getBufferSize","connect","createMediaStreamSource","createScriptProcessor","createJavaScriptNode","pauseConnection","disconnect","suspend","stopRedDot","getAudioTracks","bufferSize","leftchannel","rightchannel","currentLeftChannelData","currentRightChannelData","prevLeftchannel","prevRightchannel","recordingLength","startTime","onDataCallback","onData","onaudioprocess","inputBuffer","getChannelData","Float32Array","setChannelData","now","exportRealTimeAudio","resetCurrentChannelData","setPreviousChannelArrays","exportAudio","mergeBuffers","interleave","DataView","writeUTFBytes","setUint32","setUint16","setInt16","mergeAllChannelArrays","stopTime","setUint8","postMessage","Uint32Array","vmsg_free","onmessage","wasmBuffer","WebAssembly","Module","Instance","memory","Memory","initial","maximum","exit","powf","exp","sqrtf","sqrt","cos","sin","sbrk","compile","env","vmsg_init","vmsg_encode","shimURL","pitch","mediaOptions","gainNode","pitchFX","encNode","worker","workerURL","recordedBlobs","tid","seal","terminate","revokeObjectURL","Worker","getAllBlobs","updateTime","initAudio","initWorker","reduce","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","wasmRecorder","soundOptions","autoGainControl","onStartCallback","setTimeSliceInterval","timeSlice","onBlockCallback","onStopCallback","onSaveCallback","onPauseCallback","canvas","canvasCtx","clearRect","requestAnimationFrame","fftSize","getByteTimeDomainData","fillStyle","fillRect","lineWidth","strokeStyle","beginPath","moveTo","lineTo","stroke","frequencyBinCount","getByteFrequencyData","arc","PI","visualizer","visualizeSineWave","visualizeFrequencyBars","visualizeFrequencyCircles","audioBitsPerSecond","onStart","onBlock","onPause","visualize","executeRecorderAction","propTypes","bool","isRequired","string","func","ThemePicker","onCancel","onEdit","onPreview","isDraft","admins","setAdmins","actionMsg","onRequestAccess","receiverName","subject","hasMoreThanOneAdmin","GroupPlayerRow_1","contexts","setContexts","currentContextIndex","setCurrentContextIndex","Meeting","trimClipsBySessionType","currentClip","onRowEnded","onPlayToggle","imageUrl","setIsVideo","isVideoValue","SessionSummary_1","SessionComments_1","setCleanPromptContext","showWizard","setShowWizard","showComments","setShowComments","showAudience","setShowAudience","isShow","SessionSummary","SessionComments","SummaryViewer_1","currentType","setCurrentType","Social","Tweet","Blog","Newsletter","SummaryViewer","ControlState","summary","setSummary","sum","whiteSpace","RenderSummary","CommentMode","Avatar_1","SessionCommentCreate_1","SessionCommentEdit_1","SessionCommentDelete_1","faComment","comments","setComments","targetComment","setTargetComment","setMode","Create","scrollableList","actionElem","hasComments","currentPersonRoute","restoreScroll","ensureActionsInView","scrollIntoView","behavior","setCreateMode","setEditMode","comment","Edit","setDeleteMode","Delete","firstCommentsPage","scrollToBottom","onCommit","commentRowContent","isActionable","onDelete","commentsRow","isCurrent","isEdit","isDelete","wrappedCommentRowContent","Comments","commentClass","combinedClass","List","SessionCommentCreate","maxCharacters","SessionCommentEdit","SessionCommentDelete","setNewComment","inputRef","focus","isWarning","isBeyondLimit","warningClass","onKeyDown","maxLength","faArrowUp","FaPrepend_1","faCircleXmark","editedContent","setEditedContent","contentLength","onConfirmEdit","tokenKey","refreshTokenKey","lastOktaSettingsKey","lastSelectedOrgKey","authProviderTypeKey","failedClientOpsKey","returnToPage","BrowserStorageService","clearNonAppLocalStorage","keysToKeep","authProviderType","failedClientOps","lastOktaSettings","lastSelectedOrg","refreshToken","gotoFunc","navToFunc","hasReturnPage","setReturnPage","gotoReturnPage","goto","NewGroupModal","freshNewGroup","_WidgetStore$organiza","newMembers","_WidgetStore$organiza2","myNewMember","personToken","_WidgetStore$organiza3","NavService","invalid","onNameChange","filterOutMembers","mapToMembers","peopleTokens","onMembersChanged","oldMembers","onOwnersChanged","onDescriptionChange","_jsxs","_jsx","NewGroupDialog","InviteDlg","onEmailsChange","defaultState","onSubmitAsync","InviteBtn","isDialogOpen","SbAuthError","AadAuthProvider","msalConfig","msal","accountInfo","scopesGraph","scopesSoundbiteApp","tokenSoundbiteApp","graphUserToken","azureAdAppToken","getMsalConfig","SpaStore","adClientConfig","adScopes","apiScopes","Msal","msalAccount","_this$accountInfo","getAllAccounts","loginAsync","forceReAuth","redirectToLogin","getSoundbiteToken","handleAuthRedirect","handleRedirectPromise","authResult","accessToken","account","logoutAsync","setAuthProvider","logout","grantAdminAsync","appId","adPlatformConfig","tenantId","getTenantId","adminUrl","_this$accountInfo2","wrapGraphCall","simulateFail","getGraphUserToken","isIE","userAgent","auth","clientId","authority","redirectUri","postLogoutRedirectUri","navigateToLoginRequestUrl","cache","cacheLocation","storeAuthStateInCookie","getUserMetaData","userImage","getGraphUserImage","getGraphUserInfo","getGraphAppToken","getAppPayload","processPayload","AuthFailed","scopes","acquireTokenSilent","Axios","Accept","authorization","businessPhones","mail","surname","jobTitle","userInfoToSync","_Utils$getOrgRouteFro","loginRedirect","getAadAuthProvider","acct","AadCalendarProvider","_authProvider","convertDaysOfWeek","daysOfWeek","conversion","convertRecurrencePattern","recurrenceType","recurrencePattern","interval","firstDayOfWeek","createEvent","calendarEntry","dateTime","moment","timeZone","pattern","range","graphToken","ProviderFactory","authProvider","calendarProvider","getProviderType","getAuthProvider","_this$authProvider","getCalendarProvider","_this$calendarProvide","ClientOpService","hasFailedOps","requiresAuthToProcessFailedOps","authRequired","registerFailedClientOp","failedOp","processClientOps","failedOps","clientOp","op","opType","isAuthFailure","clientOpInfo","failCount","processFailedClientOps","toRun","failedAgain","succeeded","CreateSessionReminderCalendarEntry","calendarEntryId","SpaStoreClass","_currentOrg","loginCallbacks","invalidOrgRoute","loginWithThirdParty","localRefreshToken","initialOrgRoute","getInitialOrgRoute","rt","localLoginProvider","payload","provider","ThirdPartyAuthorizing","loginProviderTypeLs","storeTokenInfo","callback","isInit","loadConfig","_window$location$path","pathsToRedirect","currentPath","telemetryKey","appInsights","ApplicationInsights","connectionString","loadAppInsights","trackPageView","_appInsights","debug","_this$_currentOrg","checkClientOpAuthFailures","_WidgetStore$users$cu","_WidgetStore$users$cu2","RouterNavLink","activeClassName","to","rel","featureFlags","referralEnabled","eml","ContactBtn","signature","linkHref","textOnly","FooterBody","onLogout","Footer","MiniFooter","SideNav","_WidgetStore$organiza4","_WidgetStore$organiza5","_WidgetStore$organiza6","_WidgetStore$organiza7","useParams","setMyGroups","flags","isGlobalAdmin","isMenuOpen","setIsMenuOpen","closeMenu","createTeamIsOpen","setCreateTeamOpen","onCloseCreateTeam","onOpenCreateTeam","Discovery","navbar","SbNavItem","GroupLink","SbNavLink","team","_myGroups$length","GlobalAdmin","isCreateTeamAllowed","minRoleToCreateTeam","CreateGroup","_myGroups$length2","teamCreationEnabled","fluid","toggleCollapse","UserMenu","Collapse","GroupTabs","OrgTabs","hasPublicNotifications","faPeopleGroup","DirectoryTabs","faUserCog","faUsersCog","faUserPlus","TopNav","Switch","Route","Platform","EnvironmentSettings","platform","Web","_class","BackgroundMode","Background","classList","Default","Private","DeleteMemberDlg","memberAndGroup","_this$state$data","_this$state$data2","AddMemberDialog","addMemberProps","newPeopleTokens","peopleIds","MemberCard","_props$myPersonRoute","_org$details$me","setItems","isOwnerOrMore","setIsOwnerOrMore","isAddMemberEnabled","setIsAddMemberEnabled","orgPromise","groupPromise","membersPromise","firstMembersPage","minRoleForTeamInvite","onSubmitAddMember","addMember","onAddMember","onSubmitRemoveMember","onToggleOwner","ownerChecked","ItemRow","isRowForCurrentUser","onMemberClick","onDeleteMember","ItemRowLoading","ItemRowLast","cardHeader","_props$title","Group","DeleteGroupDialog","subtitle","GroupsCard","createIsOpen","setCreateIsOpen","_newGroups$slice$sort","allGroupsPromise","sortedNewGroups","onOpenCreate","TableBody","_groups$length","onSubmitDelete","openDeleteGroupDialog","Groups","cardMd","cardWidthMd","cardLg","cardWidthLg","SingleSignOn","isClicked","setIsClicked","Authorizing","onClickLogin","margin","Link","Home","useHistory","onInviteAsync","scrollTo","selectOrg","backgroundImage","IFrameFeed","IFrameSessionEditor","parent","sbevent","eventInfo","LoginO365","_window$location$hash","hasCode","redirectHandled","setRedirectHandled","OktaProvider","_oktaAuth","_accessToken","_idToken","oktaAuth","OKTA","signInWithRedirect","_tokenResponse$tokens","_tokenResponse$tokens2","_tokenResponse$tokens3","_tokenResponse$tokens4","tokenResponse","parseFromUrl","idToken","applySettings","oktaConfig","issuer","issuerUrl","pkce","OktaAuth","_BrowserStorageServic","DisplayMode","LoginOkta","_window$location$sear","displayMode","setDisplayMode","Loading","canSubmit","setCanSubmit","setEmail","NoOktaSettingsOnReturn","userInteractive","oktaSettings","GetOrgId","onEmailChanged","getOktaConfigByEmail","_Fragment","textAlign","RenderContent","ToggleRow","_props$disabled","DropDownRow","choices","TextRow","ToggleHeader","ToggleTable","hideHeader","NotificationsCard","_settings$channels$is","_settings$channels","_settings$channels$is2","_settings$channels2","_settings$isWelcomeEn","_settings$isPersonInv","_settings$isMemberInv","_settings$isSessionRe","_settings$isSessionPu","_settings$isSessionHo","setSettings","initialSettings","channels","isEmailEnabled","isSmsEnabled","isWelcomeEnabled","isPersonInviteEnabled","isMemberInvitedEnabled","isSessionReminderEnabled","isSessionPublishEnabled","isSessionHostPublishEnabled","AadTenantPicker","changeTenantId","newTenantId","setTenantId","defaultTenantId","InputGroupText","TeamsNotificationsCard","_settings$enableTeams2","_settings$enableTeams","enableTeamsNotifications","AcsCard","connString","setConnString","fromEmail","setFromEmail","fromName","setFromName","acsConnectionString","acsFromName","acsFromEmail","save","isResetting","hasValidEmail","confirm","_connString$length","_fromEmail$length","_fromName$length","Notifications","Past","People","PerfRating","ratingForTime","warningTime","Warning","MetricCard","_props$metric$rating","_props$metric","rating","metric","Indifferent","measure","PerformanceCard","metrics","setMetrics","needsGroup","setNeedsGroup","needsSession","setNeedsSession","measureSeconds","toFixed","refreshWidgetStore","readNotificationSettings","readPermissions","readAzureSettings","_await$WidgetStore$se","_await$WidgetStore$or","tests","sessionActivityReport","groupMembers","spinClass","Performance","PersonPermissionRow","classnames","Guest","MemberPermissionRow","PermissionsCard","_settings$minRoleToCr","_settings$minRoleToCr2","_settings$minRoleForO","_settings$minRoleForA","_settings$minRoleToCr3","_settings$minRoleForT","_settings$minRoleToCr4","_settings$minRoleToCr5","newRole","minRoleForOrgInvite","newSettings","Permissions","PublicSession","QueryString","userRouteStr","Reports","AadIntro","AadGrant","onGrant","SyncType","doUsersMatch","doGroupsMatch","doConfigsMatch","syncType","leftJson","rightJson","doAadStrategiesMatch","importPhoneNumbers","secretKey","groupsMode","usersMode","Okta","doOktaStrategiesMatch","domain","apiToken","targetsById","TargetCache","onRequest","defaultValues","currentTargets","loadPage","loadTarget","entry","newTarget","existingTarget","Select","targetsToOptions","targets","_target$name","TargetPicker","setValue","setSkipToken","lastFilter","setLastFiler","isSameFilter","onLoad","meta","TargetConfigMode","TargetConfig","_propsConfig$groups","_propsConfig$users","selectedTargets","setSelectedTargets","propsConfig","defaultConfig","targetName","collectionMode","setCollectionMode","startingCollectionMode","memberSyncType","SyncAllMembers","onChangeTab","newMode","newConfig","Users","createNewConfig","onChangeTargets","newTargets","SomeTab","Some","All","AadSync","_WidgetStore$sync$val5","_WidgetStore$sync$con3","_WidgetStore$sync$con4","baseAadConfig","_WidgetStore$sync$val","_WidgetStore$sync$val2","_WidgetStore$sync$val3","_WidgetStore$sync$con","_WidgetStore$sync$con2","_valAadConfig$tenantI","_nextStrategyConfig$s","_nextStrategyConfig$i","valAadConfig","readAadConfig","onChangeGroups","onChangeUsers","onConnect","_nextStrategyConfig$t","_nextStrategyConfig$s2","newOrgConfig","onTogglePhoneNumbers","_nextStrategyConfig$i2","nextState","isSavedReady","_config$sanitizedConf","hasAccess","validationMessage","AadConfigView","_nextStrategyConfig$i3","isReadyNow","faPhone","latestConfig","isWaitingOnValidation","onChangeTenantId","_WidgetStore$sync$val4","oldConfig","reqConfig","SyncDisabled","OktaIntro","OktaSync","_nextStrategyConfig$a","_nextStrategyConfig$d","isPartialSync","maxRunLength","userSyncComplete","ConfigView","connectionConfig","domainIsEmpty","apiTokenIsEmpty","connectDisabled","onChangeDomain","onChangeApiToken","valWithDelta","deltaUp","deltaDown","deltaTxt","statusForResult","isFailed","Cancelled","Processing","SyncHistory","orgName","setOrgName","setResults","resultsPromise","newResults","deltaTime","usersUpdated","usersAdded","groupsUpdated","groupsAdded","groupsRemoved","SyncCard","isDirty","setIsDirty","isSyncing","setIsSyncing","isValidating","setIsValidating","syncMode","setSyncMode","Disabled","setUTCHours","setDate","nextRunDate","toLocaleString","setFromConfig","savedConfig","onChangeStrategy","newStrategyConfig","checkDirty","readConfig","nextStrategy","_latestAadConfig$tena","_latestAadConfig$sync","latestAadConfig","initAad","_WidgetStore$sync$val6","_WidgetStore$sync$val7","_latestConfig$domain","_latestConfig$apiToke","_latestConfig$syncTyp","_latestConfig$isParti","_latestConfig$maxRunL","_latestConfig$userSyn","initOkta","validate","_WidgetStore$sync$con5","_lastConfig","_WidgetStore$sync$val8","_WidgetStore$sync$val9","lastConfig","_WidgetStore$sync$val10","dirty","newVal","newSyncMode","saveBtn","animationClass","syncBtn","_WidgetStore$sync$res","syncMessage","syncState","isShowPending","isShowSync","isWaitingOnAccess","isShowSave","AadView","OktaView","loadingMessage","Sync","exact","Layout","OrgStore","_orgsInitialized","_archivedOrgsInitialized","_initializerDefineProperty","_descriptor","_descriptor2","loadOrgs","orgs","loadArchivedOrgs","orgsArchived","readOrgByRoute","_this$orgs$find","createOrg","updateOrg","currentItem","updatedItem","restoreOrg","existing","deleteOrg","uploadOrgImage","fd","_applyDecoratedDescriptor","initializer","adminStore","PatchOperationType","PatchService","generatePatch","objOriginal","objUpdated","propName","isNew","existingItem","setExistingItem","loading","setLoading","notFound","setNotFound","setDisabled","setName","setDescription","orgImage","setOrgImage","AdminStore","goBack","_existingItem$route","updated","DeleteOrgDialog","showArchived","setShowArchived","archiveTxt","archivedItems","inviteResult","ensureAdmin","onDeleteItem","onRestoreItem","SimpleDlg","SessionSettingsCard","_settings$sessionComm","_settings$defaultSess","_settings$transcripti","_settings$transcripti2","_settings$videoEnable","isTranscriptionEnabled","setTranscriptionEnabled","isSessionCommentsEnabled","setSessionCommentsEnabled","sessionSettings","SessionSettings","AzureSettings","_settings$tenantId","_settings$mediaServic","_settings$mediaServic2","_settings$singleBitRa","_settings$streamingEn","_settings$acsConnecti","_settings$acsFromEmai","_settings$acsFromName","mediaServiceAccountName","mediaServiceResourceGroupName","singleBitRateTransformName","updatedSettings","OrgTokenSettings","isGenerated","setIsGenerated","isEncoded","setIsEncoded","setToken","btoa","characters","counter","Sandbox","poster","tabIndex","Theme","ViewRouter","PublicRoutes","Redirect","AuthenticationWall","ThirdPartyAuthFailed","ProtectedRoutes","AdminHomePage","AdminOrgsPage","AdminOrgEditPage","OrgRoutes","OrgTeamRoutes","OrgAdminRoutes","onWelcomeClose","OrganizationSwitch","UnAuthorized","_WidgetStore$users$cu3","_WidgetStore$users$cu4","showWelcome","SingletonDialogs","buildInfo","_sbVerInfo","sbVerInfo","VersionNumber","App","SbApiPrefixUrl","source","lineno","colno","onunhandledrejection","reason","cancelBubble","rootElement","ReactDOM","BrowserRouter"],"mappings":"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O,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,CAAEK,OAAO,G,+BCAtDrB,OAAOc,eAAeE,EAAS,aAAc,C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","file":"static/js/main.a0ce9893.chunk.js","sourcesContent":["\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n// Enums\r\n__exportStar(require(\"./enums\"), exports);\r\n// Stores\r\n__exportStar(require(\"./store\"), exports);\r\n// Interfaces\r\n__exportStar(require(\"./interfaces\"), exports);\r\n// Widgets\r\n__exportStar(require(\"./widgets\"), exports);\r\n// Dialog\r\n__exportStar(require(\"./dialogs\"), exports);\r\n// Components\r\n__exportStar(require(\"./components\"), exports);\r\n// Modules\r\n__exportStar(require(\"./modules\"), exports);\r\n// Styles\r\n__exportStar(require(\"./styles\"), exports);\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./code/ClientOpRunInfo\"), exports);\r\n__exportStar(require(\"./code/IHttpAdapter\"), exports);\r\n__exportStar(require(\"./code/IHttpRequestOptions\"), exports);\r\n__exportStar(require(\"./code/Logger\"), exports);\r\n__exportStar(require(\"./code/PageUtils\"), exports);\r\n__exportStar(require(\"./code/PublicError\"), exports);\r\n__exportStar(require(\"./code/SoundbiteApiConfig\"), exports);\r\n__exportStar(require(\"./code/ThemeName\"), exports);\r\n__exportStar(require(\"./code/Utils\"), exports);\r\n__exportStar(require(\"./generated/enums/index\"), exports);\r\n__exportStar(require(\"./generated/models/index\"), exports);\r\n__exportStar(require(\"./generated/services/index\"), exports);\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./Avatar\"), exports);\r\n__exportStar(require(\"./Error\"), exports);\r\n__exportStar(require(\"./FaPrepend\"), exports);\r\n__exportStar(require(\"./IconLink\"), exports);\r\n__exportStar(require(\"./InfiniteTable\"), exports);\r\n__exportStar(require(\"./LabelInfo\"), exports);\r\n__exportStar(require(\"./Loader\"), exports);\r\n__exportStar(require(\"./ParticipantSummary\"), exports);\r\n__exportStar(require(\"./PlayBtn\"), exports);\r\n__exportStar(require(\"./PlayButton\"), exports);\r\n__exportStar(require(\"./RichText\"), exports);\r\n__exportStar(require(\"./RecurrenceSummary\"), exports);\r\n__exportStar(require(\"./SbProgress\"), exports);\r\n__exportStar(require(\"./SbProgressButton\"), exports);\r\n__exportStar(require(\"./SeriesDetailsBtn\"), exports);\r\n__exportStar(require(\"./ShowWhen\"), exports);\r\n__exportStar(require(\"./SupportLink\"), exports);\r\n__exportStar(require(\"./Toggle\"), exports);\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./GroupStore\"), exports);\r\n__exportStar(require(\"./MemberStore\"), exports);\r\n__exportStar(require(\"./OrganizationStore\"), exports);\r\n__exportStar(require(\"./PersonStore\"), exports);\r\n__exportStar(require(\"./SeriesStore\"), exports);\r\n__exportStar(require(\"./StoreUtils\"), exports);\r\n__exportStar(require(\"./SyncStore\"), exports);\r\n__exportStar(require(\"./UserStore\"), exports);\r\n__exportStar(require(\"./WidgetStore\"), exports);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SoundbiteApiConfig = void 0;\r\n/**\r\n * Exposes configuration settings for the Soundbite API\r\n */\r\nclass SoundbiteApiConfigClass {\r\n constructor() {\r\n /////[ Private Fields ]/////////////////////////////////////////////////////////////////////////\r\n this._httpAdapter = null;\r\n this._apiPrefixUrl = \"https://usw.soundbite.cloud/api/v1\";\r\n /////[ Public Properties ]//////////////////////////////////////////////////////////////////////\r\n // NOTE: The imgAvatarUrl and the imgEmptyCardArtUrl were created primarily to provide support\r\n // for including images in the client-side assets within the SharePoint solution.\r\n /**\r\n * Gets or sets the URL of the default avatar image.\r\n */\r\n this.imgAvatarUrl = \"/img/default-avatar.png\";\r\n /**\r\n * Gets or sets the URL of the empty card art image.\r\n */\r\n this.imgEmptyCardArtUrl = \"/img/empty-card-art.png\";\r\n /***\r\n * Gets or sets a function to acquire an authentication token for calls to the Soundbite platform.\r\n */\r\n this.getToken = () => {\r\n return Promise.resolve(null);\r\n };\r\n /**\r\n * Gets or sets the client operation handler which is responsible for completing requests on the\r\n * client that could not be completed on the server. Most client operations are requested because\r\n * the server has no way to authenticate the user into third-party applications. The handler\r\n * assigned to this property by default does not handle any client operations.\r\n */\r\n this.clientOpsHandler = (clientOps) => {\r\n return new Promise((resolve, reject) => {\r\n // Do nothing and return an empty array indicating no errors. This is a default implementation\r\n // that is not responsible for handling anything.\r\n resolve([]);\r\n });\r\n };\r\n }\r\n /**\r\n * Gets the URL prefix for Soundbite API calls. Value defaults to the production URL\r\n * for the Soundbite Platform but can be modified to point to test/debug environments as needed.\r\n */\r\n get ApiPrefixUrl() {\r\n return this._apiPrefixUrl;\r\n }\r\n /**\r\n * Sets the URL prefix for Soundbite API calls.\r\n */\r\n set ApiPrefixUrl(value) {\r\n // Ensure there is no trailing slash because our API calls assume it is not there.\r\n if (value && value[value.length - 1] === \"/\") {\r\n value = value.substring(0, value.length - 1);\r\n }\r\n this._apiPrefixUrl = value;\r\n }\r\n /***\r\n * Gets the IHttpAdapter used to make HTTP calls to the Soundbite API.\r\n */\r\n get httpAdapter() {\r\n if (this._httpAdapter === null) {\r\n throw \"HTTP adapter has not been set in SoundbiteApiConfig\";\r\n }\r\n else {\r\n return this._httpAdapter;\r\n }\r\n }\r\n /***\r\n * Sets the IHttpAdapter used to make HTTP calls to the Soundbite API.\r\n */\r\n set httpAdapter(value) {\r\n this._httpAdapter = value;\r\n }\r\n}\r\nexports.SoundbiteApiConfig = new SoundbiteApiConfigClass();\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ErrorDlg = void 0;\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst controls_1 = require(\"../components/controls\");\r\n/**\r\n * React component for managing a singleton error dialog\r\n * If the error is an instance of PublicError, it will show it to the user in the dialog\r\n * Otherwise, it will console.error with a helpful header on the message\r\n * */\r\nclass ErrorDlg extends react_1.Component {\r\n static show(error, name, message) {\r\n if (!(error instanceof api_1.PublicError))\r\n error = new api_1.PublicError(error, name, message);\r\n this.instance.setState({\r\n isOpen: true,\r\n error: error,\r\n });\r\n }\r\n constructor(props) {\r\n super(props);\r\n if (ErrorDlg.instance)\r\n console.error(\"More than one instance of ErrorDlg\");\r\n ErrorDlg.instance = this;\r\n }\r\n close() {\r\n if (this.onClose)\r\n this.onClose(this.state.error);\r\n this.setState({ isOpen: false, error: undefined });\r\n }\r\n render() {\r\n if (!this.state || !this.state.error)\r\n return react_1.default.createElement(react_1.default.Fragment, null);\r\n return (react_1.default.createElement(reactstrap_1.Modal, { isOpen: this.state.isOpen, toggle: this.close.bind(this), backdrop: \"static\", modalClassName: \"sb-error-dlg\" },\r\n react_1.default.createElement(reactstrap_1.ModalHeader, { toggle: this.close.bind(this), className: \"bg-gradient-danger\" }, this.state.error.name),\r\n react_1.default.createElement(reactstrap_1.ModalBody, null,\r\n react_1.default.createElement(\"h1\", null, \"Apologies\"),\r\n react_1.default.createElement(\"p\", null, this.state.error.message),\r\n react_1.default.createElement(\"p\", null, \"Please try again. If that doesn't work, contact support.\")),\r\n react_1.default.createElement(reactstrap_1.ModalFooter, null,\r\n react_1.default.createElement(controls_1.SupportLink, { error: this.state.error }, \"Contact Support\"),\r\n react_1.default.createElement(\"button\", { type: \"button\", className: \"btn btn-secondary\", onClick: this.close.bind(this) }, \"Close\"))));\r\n }\r\n}\r\nexports.ErrorDlg = ErrorDlg;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HttpService = void 0;\r\nconst PublicError_1 = require(\"./PublicError\");\r\nconst SoundbiteApiConfig_1 = require(\"./SoundbiteApiConfig\");\r\n/**\r\n * Wrapper class for issuing HTTP calls for the application. T\r\n */\r\nclass HttpServiceClass {\r\n /**\r\n * Issues an HTTP request with the DELETE verb to the specified url.\r\n * @param url - URL to which the request is sent.\r\n * @param options - HTTP request options used to customize the request.\r\n */\r\n delete(url, options) {\r\n return new Promise((resolve, reject) => {\r\n SoundbiteApiConfig_1.SoundbiteApiConfig.httpAdapter\r\n .delete(url, options)\r\n .then((result) => resolve(result))\r\n .catch((ex) => {\r\n const msg = ex && ex.message ? `: ${ex.message}` : \".\";\r\n console.log(`[SB]-HTTP service DELETE failed calling ${url}`);\r\n reject(new PublicError_1.PublicError(ex, \"Network Request Failed\", `A delete request to the Soundbite API failed ${msg}`));\r\n });\r\n });\r\n }\r\n /**\r\n * Issues an HTTP request with the GET verb to the specified url.\r\n * @param url - URL to which the request is sent.\r\n * @param options - HTTP request options used to customize the request.\r\n */\r\n get(url, options) {\r\n return new Promise((resolve, reject) => {\r\n SoundbiteApiConfig_1.SoundbiteApiConfig.httpAdapter\r\n .get(url, options)\r\n .then((result) => resolve(result))\r\n .catch((ex) => {\r\n const msg = ex && ex.message ? `: ${ex.message}` : \".\";\r\n console.log(`[SB]-HTTP service GET failed calling ${url}`);\r\n reject(new PublicError_1.PublicError(ex, \"Network Request Failed\", `A get request to the Soundbite API failed ${msg}`));\r\n });\r\n });\r\n }\r\n /**\r\n * Issues an HTTP request with the PATCH verb to the specified url.\r\n * @param url - URL to which the request is sent.\r\n * @data data - data sent in the body of the request.\r\n * @param options - HTTP request options used to customize the request.\r\n */\r\n patch(url, data, options) {\r\n return new Promise((resolve, reject) => {\r\n SoundbiteApiConfig_1.SoundbiteApiConfig.httpAdapter\r\n .patch(url, data, options)\r\n .then((result) => resolve(result))\r\n .catch((ex) => {\r\n const msg = ex && ex.message ? `: ${ex.message}` : \".\";\r\n console.log(`[SB]-HTTP service PATCH failed calling ${url}`);\r\n if (data) {\r\n console.log(\"[SB]-\", data);\r\n }\r\n reject(new PublicError_1.PublicError(ex, \"Network Request Failed\", `A patch request to the Soundbite API failed ${msg}`));\r\n });\r\n });\r\n }\r\n /**\r\n * Issues an HTTP request with the POST verb to the specified url.\r\n * @param url - URL to which the request is sent.\r\n * @data data - data sent in the body of the request.\r\n * @param options - HTTP request options used to customize the request.\r\n */\r\n post(url, data, options) {\r\n // ASP.Net Core requires the text \"null\" to transmit an empty body\r\n data = data !== null && data !== void 0 ? data : \"null\";\r\n return new Promise((resolve, reject) => {\r\n SoundbiteApiConfig_1.SoundbiteApiConfig.httpAdapter\r\n .post(url, data, options)\r\n .then((result) => resolve(result))\r\n .catch((ex) => {\r\n const msg = ex && ex.message ? `: ${ex.message}` : \".\";\r\n console.log(`[SB]-HTTP service POST failed calling ${url}`);\r\n if (data) {\r\n console.log(\"[SB]-\", data);\r\n }\r\n reject(new PublicError_1.PublicError(ex, \"Network Request Failed\", `A post request to the Soundbite API failed${msg}`));\r\n });\r\n });\r\n }\r\n /**\r\n * Issues an HTTP request with the PUT verb to the specified url.\r\n * @param url - URL to which the request is sent.\r\n * @data data - data sent in the body of the request.\r\n * @param options - HTTP request options used to customize the request.\r\n */\r\n put(url, data, options) {\r\n return new Promise((resolve, reject) => {\r\n SoundbiteApiConfig_1.SoundbiteApiConfig.httpAdapter\r\n .put(url, data, options)\r\n .then((result) => resolve(result))\r\n .catch((ex) => {\r\n const msg = ex && ex.message ? `: ${ex.message}` : \".\";\r\n console.log(`[SB]-HTTP service PUT failed calling ${url}`);\r\n if (data) {\r\n console.log(\"[SB]-\", data);\r\n }\r\n reject(new PublicError_1.PublicError(ex, \"Network Request Failed\", `A put request to the Soundbite API failed${msg}`));\r\n });\r\n });\r\n }\r\n}\r\nexports.HttpService = new HttpServiceClass();\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./GlobalTheme\"), exports);\r\n__exportStar(require(\"./SbBootstrapStyles\"), exports);\r\n__exportStar(require(\"./SbDashboardStyles\"), exports);\r\n__exportStar(require(\"./SbStyles\"), exports);\r\n__exportStar(require(\"./ThemeTest\"), exports);\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n// Folders\r\n__exportStar(require(\"./controls\"), exports);\r\n__exportStar(require(\"./pickers\"), exports);\r\n__exportStar(require(\"./reports\"), exports);\r\n__exportStar(require(\"./select\"), exports);\r\n__exportStar(require(\"./themes\"), exports);\r\n__exportStar(require(\"./video\"), exports);\r\n// Files\r\n__exportStar(require(\"./AskAccess\"), exports);\r\n__exportStar(require(\"./EmptyCardBody\"), exports);\r\n__exportStar(require(\"./ErrorDlg\"), exports);\r\n__exportStar(require(\"./GroupPlayer\"), exports);\r\n__exportStar(require(\"./GroupPlayerRow\"), exports);\r\n__exportStar(require(\"./PlayDlg\"), exports);\r\n__exportStar(require(\"./RecordAndPlay\"), exports);\r\n__exportStar(require(\"./RecordBtn\"), exports);\r\n__exportStar(require(\"./RecordDlg\"), exports);\r\n__exportStar(require(\"./SoloPlayer\"), exports);\r\n__exportStar(require(\"./SoundScrubber\"), exports);\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ShowWhen = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\n/**\r\n * Shows its children only if the \"is\" property is true\r\n * @param props\r\n */\r\nconst ShowWhen = (props) => {\r\n let show = false;\r\n if (props.is)\r\n show = true;\r\n let className = props.className || \"\";\r\n let display = \"none\";\r\n if (show)\r\n display = \"block\";\r\n return (react_1.default.createElement(react_1.default.Fragment, null, props.isDisplayBased ? (react_1.default.createElement(\"div\", { style: { display: display, width: \"100%\" }, className: className }, props.children)) : show ? (props.children) : (react_1.default.createElement(react_1.default.Fragment, null))));\r\n};\r\nexports.ShowWhen = ShowWhen;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.WidgetStore = void 0;\r\nconst mobx_1 = require(\"mobx\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst DialogManager_1 = require(\"../dialogs/DialogManager\");\r\nconst SessionStore_1 = require(\"./SessionStore\");\r\nconst GroupStore_1 = require(\"./GroupStore\");\r\nconst MemberStore_1 = require(\"./MemberStore\");\r\nconst OrganizationStore_1 = require(\"./OrganizationStore\");\r\nconst SyncStore_1 = require(\"./SyncStore\");\r\nconst PersonStore_1 = require(\"./PersonStore\");\r\nconst SeriesStore_1 = require(\"./SeriesStore\");\r\nconst UserStore_1 = require(\"./UserStore\");\r\nconst enums_1 = require(\"../enums\");\r\nconst styles_1 = require(\"../styles\");\r\n/**\r\n * Acts as the primary integration and extensibility point for the Widget framework. Essentially\r\n * this exposes properties that reference our default MobX store implementations for various aspects\r\n * of the application. Clients can opt to implement custom MobX store implementations and assign\r\n * them to the properties in this class to \"override\" our default functionality.\r\n *\r\n * This class also exposes a series of \"Show\" methods intended to allow for the intercept of showing\r\n * various screens in the application. By assigning a new method implementation to these properties\r\n * clients can override default navigation and dialog display in the application.\r\n */\r\nclass WidgetStoreClass {\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////\r\n constructor() {\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n // Properties\r\n this.isInitialized = false;\r\n this.TokenRefreshTimeout = null;\r\n this.authState = enums_1.AuthState.Initializing; // Stores the application authentication state\r\n // Store references\r\n this.members = MemberStore_1.MemberStore;\r\n this.organizations = OrganizationStore_1.OrganizationStore;\r\n this.sync = SyncStore_1.OrgSyncStore;\r\n this.people = PersonStore_1.PersonStore;\r\n this.series = SeriesStore_1.SeriesStore;\r\n this.sessions = SessionStore_1.SessionStore;\r\n this.groups = GroupStore_1.GroupStore;\r\n this.users = UserStore_1.UserStore;\r\n this.showDeleteSession = this.showDeleteSessionHandler;\r\n this.showDeleteSeries = this.showDeleteSeriesHandler;\r\n this.showNewSession = this.showNewSessionHandler;\r\n this.showEditSession = this.showEditSessionHandler;\r\n this.showEditSeries = this.showEditSeriesHandler;\r\n this.showPlayer = this.showPlayerHandler;\r\n this.showRecorder = this.showRecorderHandler;\r\n this.showReports = this.showReportsHandler;\r\n (0, mobx_1.makeObservable)(this, {\r\n authState: mobx_1.observable,\r\n isInitialized: mobx_1.observable,\r\n initialize: mobx_1.action,\r\n });\r\n }\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Gets true if the current user is the given user role or higher; otherwise, false\r\n * @param userRole\r\n */\r\n isUserRole(userRole) {\r\n var _a, _b;\r\n const currentRole = (_b = (_a = this.users.currentUser) === null || _a === void 0 ? void 0 : _a.userRole) !== null && _b !== void 0 ? _b : api_1.UserRole.Unknown;\r\n if (currentRole === api_1.UserRole.Unknown) {\r\n return false;\r\n }\r\n const isRoleOrBetter = currentRole >= userRole;\r\n return isRoleOrBetter;\r\n }\r\n /**\r\n * Get true if the given user is the given person role or higher for the current org; otherwise, false\r\n * @param personRole\r\n */\r\n isPersonRole(personRole) {\r\n var _a, _b, _c;\r\n const currentRole = (_c = (_b = (_a = this.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.details.me) === null || _b === void 0 ? void 0 : _b.personRole) !== null && _c !== void 0 ? _c : api_1.PersonRole.Unknown;\r\n if (currentRole === api_1.PersonRole.Unknown) {\r\n return false;\r\n }\r\n const isRoleOrBetter = this.isUserRole(api_1.UserRole.God) || currentRole >= personRole;\r\n return isRoleOrBetter;\r\n }\r\n /**\r\n * Get true if the given user is the given member role or higher for the current group; otherwise, false\r\n * @param memberRole\r\n */\r\n isMemberRole(memberRole, groupDetails) {\r\n // Not having the group yet implies we can't make the comparison whatsoever, so we must err on the side of saying they are NOT\r\n if (groupDetails == null) {\r\n return false;\r\n }\r\n const isGodOrAdmin = this.isUserRole(api_1.UserRole.God) || this.isPersonRole(api_1.PersonRole.Admin);\r\n const isRoleOrBetter = isGodOrAdmin || groupDetails.memberRole >= memberRole;\r\n return isRoleOrBetter;\r\n }\r\n /**\r\n * Responsible for populating the widget store with any available info from the app payload.\r\n * Method will setup token to be passed to all API calls if included in the app payload.\r\n * @param appPayload\r\n * @param refreshTimeout - number of minutes to wait before refreshing the API token\r\n */\r\n initialize(appPayload, refreshTimeout = 50) {\r\n var _a, _b;\r\n if (appPayload == null) {\r\n return;\r\n }\r\n if (appPayload.organization) {\r\n this.organizations.currentOrg = appPayload.organization;\r\n }\r\n if (appPayload.organizations) {\r\n this.organizations.myOrgs = appPayload.organizations;\r\n }\r\n if (appPayload.user) {\r\n this.users.currentUser = appPayload.user;\r\n }\r\n const orgRoute = appPayload === null || appPayload === void 0 ? void 0 : appPayload.organization.details.route;\r\n const orgTheme = (_b = (_a = appPayload.organization) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.theme;\r\n if (orgTheme != null) {\r\n styles_1.GlobalTheme.set(orgTheme, orgRoute, true);\r\n }\r\n else {\r\n styles_1.GlobalTheme.clear(orgRoute);\r\n }\r\n if (appPayload.token) {\r\n const token = appPayload.token;\r\n api_1.SoundbiteApiConfig.getToken = () => Promise.resolve(token);\r\n if (this.TokenRefreshTimeout) {\r\n clearTimeout(this.TokenRefreshTimeout);\r\n }\r\n this.authState = !!this.organizations.currentOrg\r\n ? enums_1.AuthState.Authorized\r\n : enums_1.AuthState.OrganizationSelect;\r\n // Setup a timeout that refreshes the token periodically\r\n this.TokenRefreshTimeout = setTimeout(() => {\r\n if (this.organizations.currentOrg) {\r\n const orgRoute = this.organizations.currentOrg.details.route;\r\n const url = api_1.SoundbiteApiConfig.ApiPrefixUrl +\r\n `/getToken/${encodeURIComponent(orgRoute)}`;\r\n api_1.SoundbiteApiConfig.httpAdapter\r\n .get(url)\r\n .then((data) => {\r\n var token = data.token;\r\n api_1.SoundbiteApiConfig.getToken = () => Promise.resolve(token);\r\n api_1.Logger.LogInfo(\"Retrieved new token.\");\r\n })\r\n .catch((err) => {\r\n api_1.Logger.LogError(\"Failed to retrieve new token. Current token may expire.\", err);\r\n });\r\n }\r\n }, refreshTimeout * 60 * 1000);\r\n }\r\n else {\r\n // Token is not available which indicates that authentication is required\r\n this.authState = enums_1.AuthState.AuthRequired;\r\n }\r\n this.isInitialized = true;\r\n api_1.Logger.LogInfo(\"WidgetStore initialized\");\r\n }\r\n reset() {\r\n // Reset all stores that keep local state\r\n // This should be a very similar list as refresh()\r\n this.organizations.reset();\r\n this.people.reset();\r\n this.sessions.reset();\r\n this.groups.reset();\r\n this.sync.reset();\r\n }\r\n refresh() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // TODO: Consider making something to sync the orgRoute across these stores\r\n // They could theoretically fall out of sync\r\n // Refresh all stores that keep local state\r\n // This should be the same list as Reset()\r\n this.organizations.refresh();\r\n this.people.refresh();\r\n this.sessions.refresh();\r\n this.groups.refresh();\r\n });\r\n }\r\n //////////[ Dialog Handlers ]/////////////////////////////////////////////////////////////////////\r\n showPlayerHandler(orgRoute, sessionRoute) {\r\n DialogManager_1.DialogManager.ShowPlayerDialog(orgRoute, sessionRoute);\r\n }\r\n showRecorderHandler(orgRoute, sessionRoute) {\r\n DialogManager_1.DialogManager.ShowRecordDialog(orgRoute, sessionRoute);\r\n }\r\n showReportsHandler(orgRoute, session) {\r\n DialogManager_1.DialogManager.ShowReportsDialog(orgRoute, session);\r\n }\r\n showDeleteSeriesHandler(orgRoute, series) {\r\n DialogManager_1.DialogManager.ShowSeriesDeleteDialog(orgRoute, series);\r\n }\r\n showDeleteSessionHandler(orgRoute, session) {\r\n DialogManager_1.DialogManager.ShowSessionDeleteDialog(orgRoute, session);\r\n }\r\n showEditSessionHandler(orgRoute, session) {\r\n alert(\"showing new session, woohoo!\");\r\n }\r\n showEditSeriesHandler(orgRoute, series) {\r\n DialogManager_1.DialogManager.ShowSeriesEditDialog(orgRoute, series);\r\n }\r\n showNewSessionHandler(orgRoute, groupRoute, isSeries = false, onClose) {\r\n DialogManager_1.DialogManager.ShowSessionNewDialog(orgRoute, groupRoute, isSeries, onClose);\r\n }\r\n}\r\nexports.WidgetStore = new WidgetStoreClass();\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DialogStyleType = void 0;\r\n/**\r\n * Enumeration of the various dialog styles\r\n */\r\nvar DialogStyleType;\r\n(function (DialogStyleType) {\r\n /**\r\n * Denotes the dialog is a normal dialog\r\n */\r\n DialogStyleType[DialogStyleType[\"Normal\"] = 0] = \"Normal\";\r\n /**\r\n * Denotes that the dialog is a big ol' boy\r\n */\r\n DialogStyleType[DialogStyleType[\"Big\"] = 1] = \"Big\";\r\n /**\r\n * Denotes that the dialog exposes potentially dangers operations\r\n */\r\n DialogStyleType[DialogStyleType[\"Danger\"] = 2] = \"Danger\";\r\n /**\r\n * Denotes that this is the new session dialog\r\n */\r\n DialogStyleType[DialogStyleType[\"SessionEditor\"] = 3] = \"SessionEditor\";\r\n /**\r\n * Denotes taht this is the big new session dialog\r\n */\r\n DialogStyleType[DialogStyleType[\"SessionEditorBig\"] = 4] = \"SessionEditorBig\";\r\n})(DialogStyleType = exports.DialogStyleType || (exports.DialogStyleType = {}));\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Loader = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst ShowWhen_1 = require(\"./ShowWhen\");\r\n/**\r\n * Wraps an element with a Bootstrap spinner, which shows the contents when isLoadedWhen === true\r\n * @param props\r\n */\r\nconst Loader = (props) => {\r\n var _a, _b, _c;\r\n let show = true;\r\n if (props.isLoadedWhen)\r\n show = false;\r\n const isMessageInstant = !props.isLoadedWhen && props.message != null && props.messageDelay == null;\r\n const [isShowingMessage, setShowingMessage] = (0, react_1.useState)(isMessageInstant);\r\n const [timeoutHandle, setTimeoutHandle] = (0, react_1.useState)(undefined);\r\n const isMessageEnabled = !!props.message || !!props.messageDelay;\r\n const showMessage = () => {\r\n setShowingMessage(!props.isLoadedWhen);\r\n clearTimer();\r\n };\r\n const clearTimer = () => {\r\n // if we're loaded now, but still counting time, then stop\r\n if (timeoutHandle != null) {\r\n clearTimeout(timeoutHandle);\r\n setTimeoutHandle(undefined);\r\n }\r\n };\r\n const startTimer = () => {\r\n if (timeoutHandle == null) {\r\n const delayTimeoutMillis = (props.messageDelay !== undefined ? props.messageDelay : 2) * 1000;\r\n const handle = setTimeout(showMessage, delayTimeoutMillis);\r\n setTimeoutHandle(handle);\r\n }\r\n };\r\n const checkMessage = () => {\r\n // If we're loaded, then we don't need to delay\r\n if (props.isLoadedWhen || !isMessageEnabled)\r\n return;\r\n if (isMessageInstant) {\r\n showMessage();\r\n }\r\n else {\r\n // If we're not loaded yet and we're not counting time, then start\r\n if (props.messageDelay && timeoutHandle == null) {\r\n startTimer();\r\n }\r\n }\r\n };\r\n const clearMessage = () => {\r\n setShowingMessage(false);\r\n clearTimer();\r\n };\r\n (0, react_1.useEffect)(() => {\r\n if (props.isLoadedWhen) {\r\n clearMessage();\r\n }\r\n else {\r\n checkMessage();\r\n }\r\n }, [props.message, props.messageDelay, props.isLoadedWhen]);\r\n const defaultStyles = {\r\n minHeight: \"4em\",\r\n };\r\n const smallClassName = props.isSmall ? \"spinner-grow-sm \" : \"\";\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(ShowWhen_1.ShowWhen, { is: show },\r\n react_1.default.createElement(\"div\", { className: \"w-100 d-table\", style: (_a = props.style) !== null && _a !== void 0 ? _a : defaultStyles },\r\n react_1.default.createElement(\"div\", { className: \"text-center d-table-cell align-middle sb-loader\" },\r\n react_1.default.createElement(ShowWhen_1.ShowWhen, { is: isShowingMessage },\r\n react_1.default.createElement(\"div\", { className: \"text-muted mb-3\" },\r\n react_1.default.createElement(\"small\", null, (_b = props.message) !== null && _b !== void 0 ? _b : \"Tuning Up The Orchestra...\"))),\r\n react_1.default.createElement(reactstrap_1.Spinner, { type: \"grow\", className: smallClassName + ((_c = props.className) !== null && _c !== void 0 ? _c : \"sb-spinner-default\") })))),\r\n react_1.default.createElement(ShowWhen_1.ShowWhen, { is: !show, isDisplayBased: props.isDisplayBased }, props.children)));\r\n};\r\nexports.Loader = Loader;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SbButton = exports.SbButtonSize = exports.SbButtonType = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\n/***************************************************************************************************\r\n * Enums\r\n **************************************************************************************************/\r\nvar SbButtonType;\r\n(function (SbButtonType) {\r\n SbButtonType[SbButtonType[\"Primary\"] = 0] = \"Primary\";\r\n SbButtonType[SbButtonType[\"PrimaryOutline\"] = 1] = \"PrimaryOutline\";\r\n SbButtonType[SbButtonType[\"Secondary\"] = 2] = \"Secondary\";\r\n SbButtonType[SbButtonType[\"SecondaryOutline\"] = 3] = \"SecondaryOutline\";\r\n})(SbButtonType = exports.SbButtonType || (exports.SbButtonType = {}));\r\nvar SbButtonSize;\r\n(function (SbButtonSize) {\r\n SbButtonSize[SbButtonSize[\"Small\"] = 0] = \"Small\";\r\n SbButtonSize[SbButtonSize[\"Large\"] = 1] = \"Large\";\r\n})(SbButtonSize = exports.SbButtonSize || (exports.SbButtonSize = {}));\r\n/**\r\n * Provides a standard way of creating buttons in Soundbite Studio.\r\n */\r\nconst SbButton = (props) => {\r\n const lastEventTime = (0, react_1.useRef)(0);\r\n //////////[ Methods - Utility ]///////////////////////////////////////////////////////////////////\r\n function getClassName() {\r\n const btnClassName = props.btnClassName\r\n ? ` ${props.btnClassName}`\r\n : \"\";\r\n const iconClass = props.icon ? \" btn-icon\" : \"\";\r\n let typeClass = \"\";\r\n let sizeClass = \"btn-sm\";\r\n switch (props.type) {\r\n case SbButtonType.Primary:\r\n typeClass = \" btn-primary\";\r\n break;\r\n case SbButtonType.PrimaryOutline:\r\n typeClass = \" btn-outline-primary\";\r\n break;\r\n case SbButtonType.Secondary:\r\n typeClass = \" btn-secondary\";\r\n break;\r\n case SbButtonType.SecondaryOutline:\r\n typeClass = \" btn-outline-secondary\";\r\n break;\r\n }\r\n switch (props.size) {\r\n case SbButtonSize.Large:\r\n sizeClass = \" btn-lg\";\r\n break;\r\n case SbButtonSize.Small:\r\n default:\r\n sizeClass = \" btn-sm\";\r\n break;\r\n }\r\n const result = `btn${iconClass}${typeClass}${sizeClass}${btnClassName}`;\r\n return result;\r\n }\r\n function TextContent() {\r\n if (props.children) {\r\n return react_1.default.createElement(\"span\", { className: \"btn-inner--text\" }, props.children);\r\n }\r\n else {\r\n return react_1.default.createElement(\"span\", { className: \"btn-inner--text\" }, props.text);\r\n }\r\n }\r\n function ButtonContent() {\r\n const hasText = props.text || props.children;\r\n if (props.icon && hasText) {\r\n return (react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: props.icon }),\r\n react_1.default.createElement(TextContent, null)));\r\n }\r\n else if (props.icon) {\r\n return (react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: props.icon })));\r\n }\r\n else {\r\n return react_1.default.createElement(TextContent, null);\r\n }\r\n }\r\n function onInteract(event) {\r\n var _a;\r\n const currentTime = new Date().getTime();\r\n const timeDiff = currentTime - lastEventTime.current;\r\n // Check if the time difference between the current event and the last event is less than a threshold (e.g., 300 ms)\r\n if (timeDiff < 300) {\r\n // Prevent the event from firing if the time difference is too small\r\n event === null || event === void 0 ? void 0 : event.preventDefault();\r\n event === null || event === void 0 ? void 0 : event.stopPropagation();\r\n return;\r\n }\r\n // Update the last event time\r\n lastEventTime.current = currentTime;\r\n (_a = props === null || props === void 0 ? void 0 : props.onClick) === null || _a === void 0 ? void 0 : _a.call(props);\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n return (react_1.default.createElement(\"button\", { type: \"button\", className: getClassName(), title: props.title, onClick: onInteract, onTouchEnd: onInteract, onPointerUp: onInteract, disabled: props.disabled, style: props.style },\r\n react_1.default.createElement(ButtonContent, null)));\r\n};\r\nexports.SbButton = SbButton;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DialogHelper = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst DialogButtonStyleType_1 = require(\"./DialogButtonStyleType\");\r\nconst DialogStyleType_1 = require(\"./DialogStyleType\");\r\n/**\r\n * Contains static helper methods for building dialog boxes.\r\n */\r\nclass DialogHelper {\r\n //////////[ Methods - Public ]////////////////////////////////////////////////////////////////////\r\n /**\r\n * Renders a dialog based on configuration parameters.\r\n * @param dialogStyle - specifies the style of the dialog.\r\n * @param title - title that appears in the header of the dialog.\r\n * @param subTitle - sub-title that appears below the title in the header of the dialog.\r\n * @param actions - actions that appear as buttons in the footer of th dialog.\r\n * @param body - content to display in the dialog body.\r\n * @param isActionRunning - reference to the isActionRunning state value.\r\n * @param setIsActionRunning - referenced to the setIsActionRunning function to modify isActionRunning state.\r\n * @param closeDialog - method that closes the dialog when called.\r\n */\r\n static RenderDialog(dialogStyle, title, actions, body, isActionRunning, setIsActionRunning, closeDialog) {\r\n return DialogHelper.RenderDialogWithSubTitle(dialogStyle, title, \"\", actions, body, isActionRunning, setIsActionRunning, closeDialog);\r\n }\r\n /**\r\n * Renders a dialog based on configuration parameters.\r\n * @param dialogStyle - specifies the style of the dialog.\r\n * @param title - title that appears in the header of the dialog.\r\n * @param subTitle - sub-title that appears below the title in the header of the dialog.\r\n * @param actions - actions that appear as buttons in the footer of th dialog.\r\n * @param body - content to display in the dialog body.\r\n * @param isActionRunning - reference to the isActionRunning state value.\r\n * @param setIsActionRunning - referenced to the setIsActionRunning function to modify isActionRunning state.\r\n * @param closeDialog - method that closes the dialog when called.\r\n */\r\n static RenderDialogWithSubTitle(dialogStyle, title, subTitle, actions, body, isActionRunning, setIsActionRunning, closeDialog) {\r\n return (react_1.default.createElement(reactstrap_1.Modal, { isOpen: true, className: DialogHelper.getModalStyle(dialogStyle) },\r\n this.renderHeader(dialogStyle, title, subTitle),\r\n this.renderBody(body),\r\n this.renderFooter(actions, isActionRunning, setIsActionRunning, closeDialog)));\r\n }\r\n //////////[ Methods - Private ]///////////////////////////////////////////////////////////////////\r\n /**\r\n * Disambiguates a boolean value when a variable is either a boolean value or a boolean function.\r\n * @param value - value to resolve\r\n * @param defaultValue - default value to apply if the value is undefined.\r\n */\r\n static resolveBoolean(value, defaultValue) {\r\n if (value === undefined) {\r\n return defaultValue;\r\n }\r\n else if (typeof value === \"function\") {\r\n return value();\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n /**\r\n * Responsible for building an action button based on the specified DialogAction configuration.\r\n * @param action - action button configuration\r\n * @param index - action buttion index used for giving the button a unique key\r\n */\r\n static buildActionButton(action, index, isActionRunning, setIsActionRunning, closeDialog) {\r\n if (DialogHelper.resolveBoolean(action.isVisible, true)) {\r\n let buttonAction = () => __awaiter(this, void 0, void 0, function* () {\r\n // Acquire the onSelected value (if applicable)\r\n let onSelectedValue = true;\r\n // Process the onSelected action of the button (if applicable)\r\n if (action.onSelected) {\r\n // Run the action\r\n setIsActionRunning(true);\r\n try {\r\n onSelectedValue = action.onSelected();\r\n }\r\n catch (_a) {\r\n setIsActionRunning(false);\r\n }\r\n // Determine if onSelectedValue is a promise that needs to be awaited\r\n if (typeof onSelectedValue === \"object\") {\r\n // Action is a promise so await it\r\n try {\r\n onSelectedValue = yield onSelectedValue;\r\n }\r\n finally {\r\n setIsActionRunning(false);\r\n }\r\n }\r\n else {\r\n // Action was not a promise and is therefore complete\r\n setIsActionRunning(false);\r\n }\r\n }\r\n // Determine if action closes dialog and onSelectedValue did not return false\r\n if (action.isClose && onSelectedValue !== false) {\r\n closeDialog();\r\n }\r\n });\r\n return (react_1.default.createElement(\"button\", { key: index, className: DialogHelper.getActionButtonStyle(action.style), disabled: isActionRunning ||\r\n !DialogHelper.resolveBoolean(action.isEnabled, true), onClick: () => {\r\n buttonAction();\r\n }, title: action.name }, action.name));\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n /**\r\n * Converts the dialog button style enum into a CSS class string\r\n * @param buttonStyle - button style enum to convert to CSS class string\r\n */\r\n static getActionButtonStyle(buttonStyle) {\r\n switch (buttonStyle) {\r\n case DialogButtonStyleType_1.DialogButtonStyleType.Danger:\r\n return \"btn btn-danger\";\r\n case DialogButtonStyleType_1.DialogButtonStyleType.Primary:\r\n return \"btn btn-primary\";\r\n default:\r\n return \"btn btn-secondary\";\r\n }\r\n }\r\n /**\r\n * Converts the dialog style enum into a CSS class string for the modal header element\r\n * @param dialogStyle - style enum to convert to a CSS class string\r\n */\r\n static getModalStyle(dialogStyle) {\r\n switch (dialogStyle) {\r\n case DialogStyleType_1.DialogStyleType.SessionEditor:\r\n return \"sb-new-session-modal\";\r\n case DialogStyleType_1.DialogStyleType.SessionEditorBig:\r\n return \"sb-new-session-modal sb-big-dialog\";\r\n default:\r\n return \"\";\r\n }\r\n }\r\n /**\r\n * Converts the dialog style enum into a CSS class string for the modal header element\r\n * @param dialogStyle - style enum to convert to a CSS class string\r\n */\r\n static getHeaderStyle(dialogStyle) {\r\n switch (dialogStyle) {\r\n case DialogStyleType_1.DialogStyleType.Danger:\r\n return \"bg-gradient-danger\";\r\n default:\r\n return \"bg-gradient-primary\";\r\n }\r\n }\r\n static renderSubTitle(subTitle) {\r\n if (subTitle) {\r\n return (react_1.default.createElement(\"span\", { className: \"sb-modal-header-subtitle\" },\r\n react_1.default.createElement(\"span\", { className: \"\" }, subTitle)));\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n static renderHeader(dialogStyle, title, subTitle) {\r\n if (title) {\r\n return (react_1.default.createElement(reactstrap_1.ModalHeader, { className: this.getHeaderStyle(dialogStyle) },\r\n title,\r\n this.renderSubTitle(subTitle)));\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n static renderBody(component) {\r\n return (react_1.default.createElement(reactstrap_1.ModalBody, null, component ? component : react_1.default.createElement(\"p\", null, \"No dialog body component provided ...\")));\r\n }\r\n static renderFooter(actions, isActionRunning, setIsActionRunning, closeDialog) {\r\n if (actions && actions.length > 0) {\r\n return (react_1.default.createElement(reactstrap_1.ModalFooter, null, actions.map((action, index) => DialogHelper.buildActionButton(action, index, isActionRunning, setIsActionRunning, closeDialog))));\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\nexports.DialogHelper = DialogHelper;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DialogButtonStyleType = void 0;\r\n/**\r\n * Enumeration of the various dialog button styles\r\n */\r\nvar DialogButtonStyleType;\r\n(function (DialogButtonStyleType) {\r\n /**\r\n * Denotes that the button is a primary button (more prominent)\r\n */\r\n DialogButtonStyleType[DialogButtonStyleType[\"Primary\"] = 0] = \"Primary\";\r\n /**\r\n * Denotes that the button is a secondary button (less prominent)\r\n */\r\n DialogButtonStyleType[DialogButtonStyleType[\"Secondary\"] = 1] = \"Secondary\";\r\n /**\r\n * Denotes that the button performs an action the user should consider (very prominent)\r\n */\r\n DialogButtonStyleType[DialogButtonStyleType[\"Danger\"] = 3] = \"Danger\";\r\n})(DialogButtonStyleType = exports.DialogButtonStyleType || (exports.DialogButtonStyleType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AuthState = exports.DialogState = exports.ClipSource = void 0;\r\n/** The origin of the clip */\r\nvar ClipSource;\r\n(function (ClipSource) {\r\n /** Recorded live audio on the device */\r\n ClipSource[ClipSource[\"RecordAudio\"] = 0] = \"RecordAudio\";\r\n /** Recorded live video on device */\r\n ClipSource[ClipSource[\"RecordVideo\"] = 1] = \"RecordVideo\";\r\n /** Uploaded audio - potentially a fully produced recording */\r\n ClipSource[ClipSource[\"Upload\"] = 2] = \"Upload\";\r\n /** Uploaded audio - potentially a fully produced recording */\r\n ClipSource[ClipSource[\"UploadVideo\"] = 3] = \"UploadVideo\";\r\n})(ClipSource = exports.ClipSource || (exports.ClipSource = {}));\r\nvar DialogState;\r\n(function (DialogState) {\r\n DialogState[DialogState[\"Empty\"] = 0] = \"Empty\";\r\n DialogState[DialogState[\"Waiting\"] = 1] = \"Waiting\";\r\n DialogState[DialogState[\"Ready\"] = 2] = \"Ready\";\r\n})(DialogState = exports.DialogState || (exports.DialogState = {}));\r\nvar AuthState;\r\n(function (AuthState) {\r\n // Application is awaiting initialization payload\r\n AuthState[AuthState[\"Initializing\"] = 0] = \"Initializing\";\r\n // [Failed] - Initialization call failed so the application cannot initialize.\r\n AuthState[AuthState[\"InitializationFailed\"] = 1] = \"InitializationFailed\";\r\n // User is not logged in and needs to do so\r\n AuthState[AuthState[\"AuthRequired\"] = 2] = \"AuthRequired\";\r\n // Process for acquiring a third-paty auth token is taking place\r\n AuthState[AuthState[\"ThirdPartyAuthorizing\"] = 3] = \"ThirdPartyAuthorizing\";\r\n // Third party token has been received and application is waiting for organization info for user.\r\n AuthState[AuthState[\"ThirdPartyAuthorized\"] = 4] = \"ThirdPartyAuthorized\";\r\n // [Failed] - Third-party authentication token retrieval failed\r\n AuthState[AuthState[\"ThirdPartyAuthFailed\"] = 5] = \"ThirdPartyAuthFailed\";\r\n // Displayed when user is in multiple organizations and needs to choose one to login to.\r\n AuthState[AuthState[\"OrganizationSelect\"] = 6] = \"OrganizationSelect\";\r\n // Process for acquiring a Soundbite API token is taking place\r\n AuthState[AuthState[\"Authorizing\"] = 7] = \"Authorizing\";\r\n // [Failed] - Soundbite API token retrieval failed\r\n AuthState[AuthState[\"AuthFailed\"] = 8] = \"AuthFailed\";\r\n // Soundbite API token has been received and is available for use\r\n AuthState[AuthState[\"Authorized\"] = 9] = \"Authorized\";\r\n // Occurs when the user is switching to another organization to which they have access but no token\r\n AuthState[AuthState[\"OrganizationSwitch\"] = 10] = \"OrganizationSwitch\";\r\n})(AuthState = exports.AuthState || (exports.AuthState = {}));\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GlobalTheme = exports.darkTheme = exports.darkColors = exports.lightTheme = exports.lightColors = exports.uniqueThemeName = exports.defaultFont = void 0;\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst moment_1 = __importDefault(require(\"moment\"));\r\nconst tinycolor2_1 = __importDefault(require(\"tinycolor2\"));\r\nconst _1 = require(\".\");\r\nconst StorageValue_1 = require(\"../modules/StorageValue\");\r\nconst ThemeProcessor_1 = require(\"./ThemeProcessor\");\r\nconst ThemeTest_1 = require(\"./ThemeTest\");\r\n/**\r\n * The default fonts for Soundbite\r\n * */\r\nexports.defaultFont = {\r\n fontFamily: 'Lexend, \"Nunito Sans\", sans-serif',\r\n fontFamilyMono: 'SFMono-Regular, Menlo, Monaco, Consolas,\"Liberation Mono\", \"Courier New\", monospace',\r\n};\r\n/**\r\n * Given a base theme name, return a unique string. It is string sortable as being \"more than\" any previously generated unique name\r\n * @param name\r\n */\r\nfunction uniqueThemeName(name) {\r\n const uniqueTime = (0, moment_1.default)().utc().format();\r\n return `${uniqueTime}:${name}`;\r\n}\r\nexports.uniqueThemeName = uniqueThemeName;\r\n/**\r\n * Declares the default lights colors\r\n * */\r\nexports.lightColors = {\r\n neutrals: {\r\n background: \"#F0EEF0\",\r\n midground: \"#FFFFFF\",\r\n foreground: \"#FFFFFF\",\r\n min: \"#FFFFFF\",\r\n n100: \"#F8F8F8\",\r\n n200: \"#E6E6E6\",\r\n n300: \"#D4D4D4\",\r\n n400: \"#C2C2C2\",\r\n n500: \"#B1B1B1\",\r\n n600: \"#949494\",\r\n n700: \"#8D8D8D\",\r\n n800: \"#6A6A6A\",\r\n n900: \"#484848\",\r\n max: \"#424242\",\r\n },\r\n hues: {\r\n red: \"#f5365c\",\r\n orange: \"#fb6340\",\r\n yellow: \"#ffd600\",\r\n green: \"#2dce89\",\r\n blue: \"#5e72e4\",\r\n indigo: \"#5603ad\",\r\n violet: \"#8965e0\",\r\n pink: \"#f3a4b5\",\r\n teal: \"#11cdef\",\r\n cyan: \"#2bffc6\",\r\n },\r\n bootstrap: {\r\n default: \"#9B89A9\",\r\n primary: \"#0081d4\",\r\n secondary: \"#9B89A9\",\r\n info: \"#0da3be\",\r\n success: \"#25a870\",\r\n danger: \"#f5365c\",\r\n warning: \"#AF9300\",\r\n },\r\n brand: {\r\n first: \"#0081d4\",\r\n second: \"#2a073d\", // Logo Purple: Russian Violet\r\n },\r\n transparent: \"transparent\",\r\n};\r\n/**\r\n * The default light theme\r\n * */\r\nexports.lightTheme = {\r\n name: api_1.ThemeName.Light,\r\n colors: exports.lightColors,\r\n fonts: exports.defaultFont,\r\n images: {\r\n logo: \"/img/logo_transparent.png\",\r\n logoAlt: \"/img/logo_white.png\",\r\n mark: \"/img/logomark_transparent.png\",\r\n },\r\n};\r\n// Login dark blue: #172b4d\r\n/**\r\n * Declares the default lights colors\r\n * */\r\nexports.darkColors = {\r\n // Reversed collection of colors to be dark\r\n neutrals: {\r\n background: \"#334667\",\r\n midground: \"#172b4d\",\r\n foreground: \"#32325d\",\r\n min: \"#282828\",\r\n n100: \"#6A6A6A\",\r\n n200: \"#7A7A7A\",\r\n n300: \"#8B8B8B\",\r\n n400: \"#9C9C9C\",\r\n n500: \"#ACACAC\",\r\n n600: \"#BDBDBD\",\r\n n700: \"#CDCDCD\",\r\n n800: \"#DEDEDE\",\r\n n900: \"#EEEEEE\",\r\n max: \"#FFFFFF\",\r\n },\r\n // TODO: Consider different hues for dark\r\n hues: {\r\n red: \"#f5365c\",\r\n orange: \"#fb6340\",\r\n yellow: \"#ffd600\",\r\n green: \"#2dce89\",\r\n blue: \"#5e72e4\",\r\n indigo: \"#5603ad\",\r\n violet: \"#8965e0\",\r\n pink: \"#f3a4b5\",\r\n teal: \"#11cdef\",\r\n cyan: \"#2bffc6\",\r\n },\r\n // TODO: Consider altered bootstrap colors for dark\r\n bootstrap: {\r\n default: \"#8FACDD\",\r\n primary: \"#8F9DDD\",\r\n secondary: \"#DEEAF2\",\r\n info: \"#55DBF3\",\r\n success: \"#48D799\",\r\n danger: \"#F97F97\",\r\n warning: \"#F9B412\",\r\n },\r\n brand: {\r\n first: \"#8FB9D4\",\r\n second: \"#8FACDD\",\r\n },\r\n transparent: \"transparent\",\r\n};\r\n/**\r\n * The default light theme\r\n * */\r\nexports.darkTheme = {\r\n name: api_1.ThemeName.Dark,\r\n colors: exports.darkColors,\r\n fonts: exports.defaultFont,\r\n images: {\r\n logo: \"/img/logo_white.png\",\r\n logoAlt: \"/img/logo_white.png\",\r\n mark: \"/img/logomark_transparent.png\",\r\n },\r\n};\r\n/**\r\n * Class that manages global theme\r\n * All themeable SB components should read from this class as a fallback\r\n * */\r\nclass GlobalTheme {\r\n static getOrgThemeStore(orgRoute) {\r\n if (orgRoute == null || orgRoute === \"\") {\r\n return undefined;\r\n }\r\n const key = `storedTheme:${orgRoute}`;\r\n return new StorageValue_1.LocalValue(GlobalTheme.name, key);\r\n }\r\n static get lastTester() {\r\n return GlobalTheme._lastTester;\r\n }\r\n static get lastProcessor() {\r\n return GlobalTheme._lastProcessor;\r\n }\r\n static get isNeedReload() {\r\n return (this.currentOrgRoute != null &&\r\n this.loadedOrgRoute != null &&\r\n this.currentOrgRoute !== this.loadedOrgRoute);\r\n }\r\n /** Global theme instance, which overrides any non-specified values in an SB component */\r\n static get current() {\r\n var _a;\r\n if (this._instance === undefined) {\r\n const lastOrgRoute = this.lastOrgRouteStore.get();\r\n let theme = null;\r\n // First we try the org specific theme\r\n if (lastOrgRoute != null) {\r\n this.loadedOrgRoute = lastOrgRoute;\r\n theme = (_a = this.getOrgThemeStore(lastOrgRoute)) === null || _a === void 0 ? void 0 : _a.get();\r\n }\r\n // Finally, figure out if we need to fallback to the default\r\n if (theme == null || !this.isThemeValid(theme)) {\r\n theme = api_1.Utils.clone(exports.lightTheme);\r\n }\r\n // Prep and return\r\n this._instance = this.process(theme).theme;\r\n GlobalTheme.test(this._instance);\r\n }\r\n return this._instance;\r\n }\r\n static process(theme) {\r\n this._lastProcessor = ThemeProcessor_1.ThemeProcessor.process(theme);\r\n return this._lastProcessor;\r\n }\r\n static isThemeValid(theme) {\r\n if (theme == null) {\r\n return false;\r\n }\r\n return (theme.colors != null &&\r\n theme.colors.bootstrap != null &&\r\n theme.colors.brand != null &&\r\n theme.colors.neutrals != null &&\r\n theme.colors.hues != null &&\r\n theme.images != null);\r\n }\r\n /**\r\n * Sets the global theme for the application\r\n * This will only be applied to components supporting theming that have not already been loaded\r\n * @param theme\r\n */\r\n static set(theme, orgRoute, persist = true) {\r\n // Cannot set an unpublished or older theme than the one we currently have\r\n if (!this.isThemeValid(theme)) {\r\n if (this.current.name === api_1.ThemeName.Draft) {\r\n theme = this.current;\r\n }\r\n else {\r\n theme = api_1.Utils.clone(exports.lightTheme);\r\n }\r\n }\r\n this.processAndSave(theme, orgRoute, persist);\r\n }\r\n static processAndSave(theme, orgRoute, persist = true) {\r\n this._lastProcessor = ThemeProcessor_1.ThemeProcessor.process(theme);\r\n GlobalTheme.test(theme);\r\n if (this._instance == null) {\r\n this.loadedOrgRoute = orgRoute;\r\n }\r\n this._instance = theme;\r\n if (persist &&\r\n orgRoute != null &&\r\n (theme.name === api_1.ThemeName.Draft || theme.publishedUtc != null)) {\r\n const orgStore = this.getOrgThemeStore(orgRoute);\r\n if (orgStore != null) {\r\n orgStore.set(theme);\r\n }\r\n }\r\n else if (persist &&\r\n (theme.name === api_1.ThemeName.Dark || theme.name === api_1.ThemeName.Light)) {\r\n const orgStore = this.getOrgThemeStore(orgRoute);\r\n if (orgStore != null) {\r\n orgStore.remove();\r\n }\r\n }\r\n this.currentOrgRoute = orgRoute;\r\n this.lastOrgRouteStore.set(orgRoute);\r\n }\r\n static setDraft(theme, orgRoute) {\r\n if (theme == null) {\r\n return;\r\n }\r\n if (!this.isThemeValid(theme)) {\r\n return;\r\n }\r\n theme = api_1.Utils.clone(theme);\r\n theme.name = api_1.ThemeName.Draft;\r\n theme.publishedUtc = undefined;\r\n this.processAndSave(theme, orgRoute);\r\n }\r\n static test(theme, isLogging = true) {\r\n this._lastTester = _1.ThemeTest.assert(theme, isLogging, this.targetContrastLevel);\r\n return this._lastTester;\r\n }\r\n static clear(orgRoute) {\r\n var _a;\r\n if (orgRoute == null) {\r\n return;\r\n }\r\n (_a = this.getOrgThemeStore(orgRoute)) === null || _a === void 0 ? void 0 : _a.remove();\r\n this.lastOrgRouteStore.set(orgRoute);\r\n this.currentOrgRoute = orgRoute;\r\n }\r\n static apply() {\r\n window.location.reload();\r\n }\r\n static mix(weight, color1 = GlobalTheme.current.colors.brand.first, color2 = GlobalTheme.current.colors.brand.second) {\r\n const mixedColor = tinycolor2_1.default.mix(color1, color2, weight);\r\n const backgroundColor = mixedColor.toHexString();\r\n return backgroundColor;\r\n }\r\n}\r\nexports.GlobalTheme = GlobalTheme;\r\nGlobalTheme._instance = undefined;\r\nGlobalTheme.targetContrastLevel = ThemeTest_1.ContrastLevel.Minimum;\r\nGlobalTheme.lastOrgRouteStore = new StorageValue_1.LocalValue(GlobalTheme.name, \"lastOrgRouteStore\");\r\n/* Hack window to offer theme swapping utilizies */\r\nwindow.sbSetLightTheme = () => {\r\n var _a;\r\n GlobalTheme.set(exports.lightTheme, (_a = GlobalTheme.currentOrgRoute) !== null && _a !== void 0 ? _a : \"\");\r\n GlobalTheme.apply();\r\n};\r\nwindow.sbSetDarkTheme = () => {\r\n var _a;\r\n GlobalTheme.set(exports.darkTheme, (_a = GlobalTheme.currentOrgRoute) !== null && _a !== void 0 ? _a : \"\");\r\n GlobalTheme.apply();\r\n};\r\nwindow.sbSetResetTheme = () => {\r\n localStorage.clear();\r\n GlobalTheme.clear();\r\n GlobalTheme.apply();\r\n};\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./DeleteUserDialog\"), exports);\r\n__exportStar(require(\"./DialogAction\"), exports);\r\n__exportStar(require(\"./DialogBase\"), exports);\r\n__exportStar(require(\"./DialogButtonStyleType\"), exports);\r\n__exportStar(require(\"./DialogHelper\"), exports);\r\n__exportStar(require(\"./DialogManager\"), exports);\r\n__exportStar(require(\"./DialogManagerLink\"), exports);\r\n__exportStar(require(\"./DialogManagerUi\"), exports);\r\n__exportStar(require(\"./DialogStyleType\"), exports);\r\n__exportStar(require(\"./InviteUserDialog\"), exports);\r\n__exportStar(require(\"./ProfileDialog\"), exports);\r\n__exportStar(require(\"./SeriesDeleteDialog\"), exports);\r\n__exportStar(require(\"./SessionDeleteDialog\"), exports);\r\n__exportStar(require(\"./SessionNewDialog\"), exports);\r\n__exportStar(require(\"./SessionReportDialog\"), exports);\r\n__exportStar(require(\"./SingletonDialogBase\"), exports);\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MediaPlayerContext = void 0;\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst mobx_1 = require(\"mobx\");\r\nconst moment_1 = __importDefault(require(\"moment\"));\r\nconst can_autoplay_1 = __importDefault(require(\"can-autoplay\"));\r\nconst ErrorDlg_1 = require(\"../../ErrorDlg\");\r\n/**\r\n * MediaPlayerContext represents media playback operations and player state information.\r\n */\r\nclass MediaPlayerContext {\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Determines whether the media element has been set. Accessing the mediaElement property throws\r\n * an exception if the media element has not been set. This property allows for the determination\r\n * of whether the media element is present without throwing an exception.\r\n */\r\n get hasMediaElement() {\r\n return !!this._mediaElement;\r\n }\r\n /**\r\n * Gets/sets a reference to the HTML media element used for media playback operations.\r\n */\r\n get mediaElement() {\r\n if (this._mediaElement) {\r\n return this._mediaElement;\r\n }\r\n throw new Error(\"Media element was not set.\");\r\n }\r\n /**\r\n * Gets/sets a reference to the HTML media element used for media playback operations.\r\n */\r\n set mediaElement(value) {\r\n this._mediaElement = value;\r\n }\r\n /**\r\n * Gets the time summary which consists of the current time and the total duration.\r\n */\r\n get timeSummary() {\r\n const time = moment_1.default.duration(this.time * 1000);\r\n const duration = moment_1.default.duration((this.duration === Infinity ? 0 : this.duration) * 1000);\r\n let timeDisplay = this.displayDuration(time, duration);\r\n let durationDisplay = this.displayDuration(duration, duration);\r\n return `${timeDisplay}/${durationDisplay}`;\r\n }\r\n get isVideo() {\r\n return (this.mode === \"video\" ||\r\n this.mode === \"azurestreaming\" ||\r\n this.mode === \"hlsstreaming\");\r\n }\r\n get isAudio() {\r\n return this.mode === \"audio\";\r\n }\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////\r\n constructor(mode) {\r\n /**\r\n * Flag indicating whether media should reset to start when next played. Normally set when media\r\n * plays to end so next play resets to beginning of video.\r\n */\r\n this.resetOnPlay = false;\r\n /**\r\n * Flag indicating that when media starts playing it should jump to the context time.\r\n */\r\n this.jumpToContextTime = false;\r\n //////////[ State ]///////////////////////////////////////////////////////////////////////////////\r\n this.duration = 0;\r\n this.isPublic = false;\r\n this.mediaUrl = \"\";\r\n this.isPlaying = false;\r\n this.isMediaLoaded = false;\r\n this.hasError = false;\r\n this.supportsScrubbing = true;\r\n this.error = { name: \"\", message: \"\" };\r\n this.time = 0;\r\n this.isAutoPlayAllowed = undefined;\r\n this.mode = mode;\r\n // Setup obvservable state values\r\n (0, mobx_1.makeObservable)(this, {\r\n duration: mobx_1.observable,\r\n isPublic: mobx_1.observable,\r\n error: mobx_1.observable,\r\n hasError: mobx_1.observable,\r\n isMediaLoaded: mobx_1.observable,\r\n isPlaying: mobx_1.observable,\r\n mediaUrl: mobx_1.observable,\r\n mode: mobx_1.observable,\r\n supportsScrubbing: mobx_1.observable,\r\n time: mobx_1.observable,\r\n timeSummary: mobx_1.computed,\r\n isVideo: mobx_1.computed,\r\n isAudio: mobx_1.computed,\r\n });\r\n // Set audio element defaults\r\n if (mode === \"audio\") {\r\n this.mediaElement = new Audio();\r\n this.mediaElement.preload = \"none\";\r\n this.mediaElement.autoplay = false;\r\n this.mediaElement.playbackRate = 1.0;\r\n }\r\n }\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n autoPlayAllowed() {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.isAutoPlayAllowed == null) {\r\n this.isAutoPlayAllowed = (yield can_autoplay_1.default.video()).result;\r\n }\r\n return (_a = this.isAutoPlayAllowed) !== null && _a !== void 0 ? _a : false;\r\n });\r\n }\r\n /**\r\n * Loads the specified media into the player.\r\n * @mediaUrl - URL of the media to load\r\n */\r\n load(clip, mediaUrl, autoPlay, isPublic) {\r\n if (!clip && api_1.Utils.isNullOrEmpty(mediaUrl)) {\r\n throw new Error(\"MediaPlayerContext cannot load media when both the clip and the media URL are missing.\");\r\n }\r\n this.isPublic = isPublic !== null && isPublic !== void 0 ? isPublic : false;\r\n var localMediaUrl = clip ? clip.url : mediaUrl;\r\n // Automatically stop the current media if it is playing\r\n if (!this.mediaElement.paused) {\r\n this.mediaElement.pause();\r\n }\r\n // Make sure to handle when the new media stops\r\n this.mediaElement.onended = this.onPlaybackCompleteInternal.bind(this);\r\n // Mark that media is not loaded (existing media automatically unloaded)\r\n (0, mobx_1.runInAction)(() => {\r\n this.isPlaying = false;\r\n this.isMediaLoaded = false;\r\n });\r\n this.mediaElement.src = localMediaUrl;\r\n this.mediaElement.load();\r\n return new Promise((resolve, reject) => {\r\n // Setup the audio error handler so it rejects the promise\r\n this.mediaElement.onerror = () => {\r\n if (this.mediaElement.error) {\r\n const err = new api_1.PublicError(new Error(this.mediaElement.error.message), \"Unable to Load Audio\", \"Unable to load file; potentially due to incorrect file type. Please contact the host and ensure they are using the Soundbite audio recorder or uploading valid MP3 files.\");\r\n // Display the error dialog to the user\r\n ErrorDlg_1.ErrorDlg.show(err, \"Unable to Load Audio\", \"Unable to load file; potentially due to incorrect file type. Please contact the host and ensure they are using the Soundbite audio recorder or uploading valid MP3 files.\");\r\n (0, mobx_1.runInAction)(() => {\r\n this.hasError = true;\r\n this.error = err;\r\n });\r\n if (this.onMediaError) {\r\n this.onMediaError(err);\r\n }\r\n }\r\n //NOTE: Resolving here instead of rejecting because error information is captured in the\r\n // context and can be referenced and responded to. Rejecting causes a second dialog to\r\n // supercede the one above with an \"unknown\" error instead of useful information.\r\n resolve();\r\n };\r\n // Watch for the audio to signal that it has loaded far enough that\r\n // it believes it can play all the way through without stopping...\r\n this.mediaElement.oncanplaythrough = () => __awaiter(this, void 0, void 0, function* () {\r\n (0, mobx_1.runInAction)(() => {\r\n if (this.mediaElement.duration !== Infinity) {\r\n this.duration = this.mediaElement.duration;\r\n }\r\n else if (this.duration === 0) {\r\n this.duration = this.mediaElement.duration;\r\n }\r\n this.error = { name: \"\", message: \"\" };\r\n this.hasError = false;\r\n this.isMediaLoaded = true;\r\n });\r\n const autoPlayAllowed = yield this.autoPlayAllowed();\r\n if (autoPlay && autoPlayAllowed) {\r\n this.play();\r\n }\r\n resolve();\r\n });\r\n });\r\n }\r\n /**\r\n * Plays the current media.\r\n */\r\n play() {\r\n // Check if the media needs to be reset to beginning\r\n if (this.resetOnPlay === true) {\r\n this.jumpTo(0);\r\n }\r\n else if (!this.jumpToContextTime) {\r\n // When starting to play, set the context time to the media element time. This avoid an issue\r\n // where the delta between the two increases each time play/pause is clicked.\r\n (0, mobx_1.runInAction)(() => {\r\n this.time = this.mediaElement.currentTime;\r\n });\r\n }\r\n // Jump to the context time if the flag is set\r\n if (this.jumpToContextTime) {\r\n this.mediaElement.currentTime = this.time;\r\n this.jumpToContextTime = false;\r\n }\r\n // Setup timer to increment media play time each second\r\n this._timer = setInterval(() => {\r\n (0, mobx_1.runInAction)(() => {\r\n //NOTE: the time value in the context is independent of the actual media time. In theory,\r\n // the two could get out of sync and require correction. However, in testing a 15 minute\r\n // run the initial delta between the two was 80ms off and all subsequent deltas were less\r\n // than 10ms off in either direction (+/-). May need to test on slower machines\r\n this.time += 1;\r\n });\r\n }, 1000);\r\n // Update state\r\n (0, mobx_1.runInAction)(() => {\r\n this.isPlaying = true;\r\n });\r\n // Play the media\r\n this.mediaElement.play();\r\n // Fire the onPlay handler if necessary\r\n if (this.onPlay) {\r\n this.onPlay();\r\n }\r\n }\r\n /**\r\n * Pauses the current media.\r\n */\r\n pause() {\r\n if (this.hasMediaElement) {\r\n this.mediaElement.pause();\r\n }\r\n (0, mobx_1.runInAction)(() => {\r\n this.isPlaying = false;\r\n });\r\n if (this._timer) {\r\n clearInterval(this._timer);\r\n this._timer = undefined;\r\n }\r\n }\r\n /**\r\n * Navigates to the beginning of the media.\r\n */\r\n jumpToStart() {\r\n this.jumpTo(0);\r\n }\r\n /**\r\n * Navigates to the specified playback position in the media.\r\n * @param time - the time to jump to\r\n */\r\n jumpTo(time) {\r\n this.resetOnPlay = false;\r\n (0, mobx_1.runInAction)(() => {\r\n this.time = time;\r\n this.mediaElement.currentTime = time;\r\n if (this.mediaElement.currentTime != time) {\r\n this.jumpToContextTime = true;\r\n }\r\n });\r\n }\r\n //////////[ Methods - Utility ]///////////////////////////////////////////////////////////////////\r\n /**\r\n * Converts a moment duration value into a formatted string.\r\n * @param display - duration to format\r\n * @param duration - used to determine format for @display parameter\r\n */\r\n displayDuration(display, totalDuration) {\r\n if (totalDuration.hours() > 0) {\r\n return `${api_1.Utils.pad(display.hours(), 2)}:${api_1.Utils.pad(display.minutes(), 2)}:${api_1.Utils.pad(display.seconds(), 2)}`;\r\n }\r\n else {\r\n const minPad = totalDuration.minutes() > 9 ? 2 : 1;\r\n return `${api_1.Utils.pad(display.minutes(), minPad)}:${api_1.Utils.pad(display.seconds(), 2)}`;\r\n }\r\n }\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n onPlaybackCompleteInternal() {\r\n this.pause();\r\n this.time = this.duration;\r\n this.resetOnPlay = true;\r\n if (this.onPlaybackComplete) {\r\n this.onPlaybackComplete();\r\n }\r\n }\r\n}\r\nexports.MediaPlayerContext = MediaPlayerContext;\r\n","\"use strict\";\r\n//NOTE: content in the following section of code is automatically generated. Do not remove comments \r\n// defining the start and end of the section. Do not add any custom code inside the section of\r\n// code because it will be removed during the code generation process.\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/***** [GENERATED FILES::START] *******************************************************************/\r\n__exportStar(require(\"./AuthProviderType.enum\"), exports);\r\n__exportStar(require(\"./AutoFlagStateType.enum\"), exports);\r\n__exportStar(require(\"./CalendarInteractionType.enum\"), exports);\r\n__exportStar(require(\"./ClipEventType.enum\"), exports);\r\n__exportStar(require(\"./ClipHostingType.enum\"), exports);\r\n__exportStar(require(\"./ClipOperationStateType.enum\"), exports);\r\n__exportStar(require(\"./ClipOperationType.enum\"), exports);\r\n__exportStar(require(\"./ClipSource.enum\"), exports);\r\n__exportStar(require(\"./ClipState.enum\"), exports);\r\n__exportStar(require(\"./ClipType.enum\"), exports);\r\n__exportStar(require(\"./CodeGenScenarioType.enum\"), exports);\r\n__exportStar(require(\"./CollectionSyncMode.enum\"), exports);\r\n__exportStar(require(\"./EventType.enum\"), exports);\r\n__exportStar(require(\"./FileType.enum\"), exports);\r\n__exportStar(require(\"./HttpStatusCode.enum\"), exports);\r\n__exportStar(require(\"./JobStatusType.enum\"), exports);\r\n__exportStar(require(\"./MediaProcessingState.enum\"), exports);\r\n__exportStar(require(\"./MemberRole.enum\"), exports);\r\n__exportStar(require(\"./MemberSyncOpType.enum\"), exports);\r\n__exportStar(require(\"./NotificationChannel.enum\"), exports);\r\n__exportStar(require(\"./NotificationStatus.enum\"), exports);\r\n__exportStar(require(\"./OrgSyncState.enum\"), exports);\r\n__exportStar(require(\"./ParticipantReactionType.enum\"), exports);\r\n__exportStar(require(\"./ParticipantRole.enum\"), exports);\r\n__exportStar(require(\"./ParticipantState.enum\"), exports);\r\n__exportStar(require(\"./PersonRole.enum\"), exports);\r\n__exportStar(require(\"./ProviderType.enum\"), exports);\r\n__exportStar(require(\"./Recurrence.enum\"), exports);\r\n__exportStar(require(\"./SecurityOpType.enum\"), exports);\r\n__exportStar(require(\"./SessionCommentPolicy.enum\"), exports);\r\n__exportStar(require(\"./SessionLifecycleStage.enum\"), exports);\r\n__exportStar(require(\"./SessionNotificationType.enum\"), exports);\r\n__exportStar(require(\"./SessionSecurityType.enum\"), exports);\r\n__exportStar(require(\"./SessionSummaryType.enum\"), exports);\r\n__exportStar(require(\"./SessionType.enum\"), exports);\r\n__exportStar(require(\"./SyncOpType.enum\"), exports);\r\n__exportStar(require(\"./SyncScope.enum\"), exports);\r\n__exportStar(require(\"./TokenSecurityLevel.enum\"), exports);\r\n__exportStar(require(\"./TokenSecurityType.enum\"), exports);\r\n__exportStar(require(\"./TranscriptState.enum\"), exports);\r\n__exportStar(require(\"./UserRole.enum\"), exports);\r\n/***** [GENERATED FILES::END] *********************************************************************/\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OrganizationStore = void 0;\r\nconst mobx_1 = require(\"mobx\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst ConcurrentCache_1 = require(\"../modules/ConcurrentCache\");\r\nconst styles_1 = require(\"../styles\");\r\n/**\r\n * MobX store class containing states and actions for organizations.\r\n */\r\nclass OrganizationStoreClass {\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////////\r\n constructor() {\r\n this.myOrgs = undefined; // Array containing all of the organization with which the user is associated\r\n this.currentOrg = undefined; // Reference to the current organization context under which the application is operating\r\n this.currentOrgRoute = undefined;\r\n this.groups = undefined;\r\n this.myGroups = undefined;\r\n this.myTargetGroups = undefined;\r\n //////////[ Cache Members ]///////////////////////////////////////////////////////////////////////\r\n this.orgCache = new ConcurrentCache_1.ConcurrentCache();\r\n (0, mobx_1.makeObservable)(this, {\r\n // Observable\r\n currentOrgRoute: mobx_1.observable,\r\n currentOrg: mobx_1.observable,\r\n myOrgs: mobx_1.observable,\r\n groups: mobx_1.observable,\r\n myGroups: mobx_1.observable,\r\n // Action\r\n readMyOrgsAsync: mobx_1.action,\r\n readOrgAsync: mobx_1.action,\r\n onGroupRemoved: mobx_1.action,\r\n });\r\n }\r\n /**\r\n * Creates a key used for caching operations\r\n * @param orgRoute - route of the organization with which the session is associated\r\n */\r\n getCacheKey(orgRoute) {\r\n return `${orgRoute}`;\r\n }\r\n //////////[ Actions ]/////////////////////////////////////////////////////////////////////////////\r\n reset() {\r\n this.orgCache.clear();\r\n this.lastOrgRoute = undefined;\r\n this.myOrgs = undefined;\r\n this.currentOrg = undefined;\r\n this.groups = undefined;\r\n this.myGroups = undefined;\r\n }\r\n refresh() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const promises = [];\r\n promises.push(this.readMyOrgsAsync(false));\r\n if (this.lastOrgRoute != null) {\r\n const orgRoute = this.lastOrgRoute;\r\n promises.push(this.readOrgAsync(orgRoute, false));\r\n promises.push(this.readMyGroupsAsync(orgRoute, false));\r\n promises.push(this.readGroupsAsync(orgRoute, false));\r\n }\r\n yield Promise.all(promises);\r\n });\r\n }\r\n /**\r\n * Populates the myOrgs property of the store.\r\n * @param refresh - flag indicating whether to force a refresh of cached data\r\n * @returns a promise indicating success or failure of the operation\r\n */\r\n readMyOrgsAsync(allowCache = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.myOrgs != null && allowCache) {\r\n return this.myOrgs;\r\n }\r\n this.myOrgs = undefined;\r\n const ret = yield api_1.OrganizationsService.readAllAsync();\r\n this.myOrgs = ret;\r\n return ret;\r\n });\r\n }\r\n /**\r\n * Gets and organization by organization route.\r\n * @param orgRoute - route identifying the organization to retrieve.\r\n * @param allowCache - (optional) flag indicating whether caching is allowed (default:true)\r\n */\r\n readOrgAsync(orgRoute, allowCache = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const cacheKey = this.getCacheKey(orgRoute);\r\n const ret = yield this.orgCache.getAsync(cacheKey, () => api_1.OrganizationsService.readAsync(orgRoute), allowCache);\r\n if (ret == null) {\r\n throw new Error(`Could not find organization '${orgRoute}'`);\r\n }\r\n styles_1.GlobalTheme.set(ret.settings.theme, ret.details.route, true);\r\n return ret;\r\n });\r\n }\r\n /**\r\n * Retrieves the specified organization and sets it as the current organization\r\n * @param orgRoute - route identifying the organization to set as the current organization\r\n * @param allowCache - (optional) flag indicating whether caching is allowed (default:true)\r\n */\r\n setCurrentOrganization(orgRoute, allowCache = true) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n console.log(\"setCurrentOrg\");\r\n if (this.lastOrgRoute === orgRoute &&\r\n ((_a = this.currentOrg) === null || _a === void 0 ? void 0 : _a.details.route) === orgRoute &&\r\n allowCache) {\r\n return this.currentOrg;\r\n }\r\n this.currentOrg = undefined;\r\n const org = yield this.readOrgAsync(orgRoute, allowCache);\r\n this.reset();\r\n this.currentOrg = org;\r\n this.lastOrgRoute = orgRoute;\r\n styles_1.GlobalTheme.set(org.settings.theme, org.details.route, true);\r\n return org;\r\n });\r\n }\r\n /**\r\n * Responsible for updating any organization in state/cache when a group is removed.\r\n * @param orgRoute - route of the organization with which the group is associated\r\n * @param groupRoute - route of the group that was deleted\r\n */\r\n onGroupRemoved(orgRoute, groupRoute) {\r\n // If we're not current only that org, then abort\r\n if (this.lastOrgRoute !== orgRoute) {\r\n return;\r\n }\r\n let didFilter = false;\r\n // Optionally pull from groups\r\n if (this.groups != null) {\r\n didFilter = true;\r\n this.groups = [...this.groups.filter((g) => g.route !== groupRoute)];\r\n }\r\n // Optionally pull from my groups\r\n if (this.myGroups != null) {\r\n didFilter = true;\r\n this.myGroups = [...this.myGroups.filter((g) => g.route !== groupRoute)];\r\n }\r\n // If we removed anything, then we need to re-trigger\r\n if (didFilter) {\r\n const temp = this.currentOrg;\r\n this.currentOrg = undefined;\r\n this.currentOrg = temp;\r\n }\r\n }\r\n onGroupChanged(group) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.lastOrgRoute != null) {\r\n const orgRoute = this.lastOrgRoute;\r\n const groupsPromise = this.readGroupsAsync(orgRoute, false);\r\n const myGroupsPromise = this.readMyGroupsAsync(orgRoute, false);\r\n yield Promise.all([groupsPromise, myGroupsPromise]);\r\n }\r\n });\r\n }\r\n readGroupsAsync(orgRoute, allowCache = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.lastOrgRoute === orgRoute && this.groups != null && allowCache) {\r\n return this.groups;\r\n }\r\n this.lastOrgRoute = undefined;\r\n this.groups = undefined;\r\n const ret = yield api_1.GroupsService.readAllGroupsAsync(orgRoute);\r\n this.lastOrgRoute = orgRoute;\r\n this.groups = ret;\r\n return ret;\r\n });\r\n }\r\n readMyGroupsAsync(orgRoute, allowCache = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.lastOrgRoute === orgRoute && this.myGroups != null && allowCache) {\r\n return this.myGroups;\r\n }\r\n this.lastOrgRoute = undefined;\r\n this.myGroups = undefined;\r\n const ret = yield api_1.GroupsService.readMyGroupsAsync(orgRoute);\r\n this.lastOrgRoute = orgRoute;\r\n this.myGroups = ret;\r\n return ret;\r\n });\r\n }\r\n readMyTargetGroupsAsync(orgRoute, allowCache = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.lastOrgRoute === orgRoute &&\r\n this.myTargetGroups != null &&\r\n allowCache) {\r\n return this.myTargetGroups;\r\n }\r\n this.lastOrgRoute = undefined;\r\n this.myTargetGroups = undefined;\r\n const ret = yield api_1.GroupsService.readMyTargetGroupsAsync(orgRoute);\r\n this.lastOrgRoute = orgRoute;\r\n this.myTargetGroups = ret;\r\n return ret;\r\n });\r\n }\r\n}\r\n// Export a singleton instance of the store\r\nexports.OrganizationStore = new OrganizationStoreClass();\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.checkDialogHash = exports.DialogHash = void 0;\r\nconst query_string_1 = __importDefault(require(\"query-string\"));\r\nconst __1 = require(\"..\");\r\n/**\r\n * Available hash values in the system for displaying dialog\r\n * */\r\nvar DialogHash;\r\n(function (DialogHash) {\r\n DialogHash[\"Play\"] = \"sbplay\";\r\n DialogHash[\"Record\"] = \"sbrecord\";\r\n DialogHash[\"CreateSession\"] = \"sbcreatesession\";\r\n DialogHash[\"CreateSessionExpanded\"] = \"sbcreatesessionexpanded\";\r\n})(DialogHash = exports.DialogHash || (exports.DialogHash = {}));\r\n/**\r\n * Checks the dialog hash for the given values\r\n * @param orgRoute\r\n * @param groupRoute\r\n */\r\nconst checkDialogHash = (orgRoute, groupRoute) => {\r\n const parsedQueryString = query_string_1.default.parse(window.location.hash);\r\n // If the key is NOT in the string, parsedQueryString returns undefined\r\n // If the key is in the string but with no value, parsedQueryString returns null\r\n // If the key and value is in the string, parsedQueryString returns the value\r\n // Show the player if requested in the URL hash\r\n const playSessionRoute = parsedQueryString[DialogHash.Play];\r\n if (playSessionRoute) {\r\n __1.WidgetStore.showPlayer(orgRoute, playSessionRoute);\r\n }\r\n // Show the recorder if requested in the URL hash\r\n const recordSessionRoute = parsedQueryString[DialogHash.Record];\r\n if (recordSessionRoute) {\r\n __1.WidgetStore.showRecorder(orgRoute, recordSessionRoute);\r\n }\r\n // Show the recorder if sbcreatesession exists (is not exactly undefined)\r\n const createSessionHash = parsedQueryString[DialogHash.CreateSession];\r\n if (createSessionHash !== undefined) {\r\n __1.WidgetStore.showNewSession(orgRoute, groupRoute);\r\n }\r\n // Show the recorder if sbcreateseries exists (is not exactly undefined)\r\n const createSeriesHash = parsedQueryString[DialogHash.CreateSessionExpanded];\r\n if (createSeriesHash !== undefined) {\r\n __1.WidgetStore.showNewSession(orgRoute, groupRoute, true);\r\n }\r\n};\r\nexports.checkDialogHash = checkDialogHash;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RecordBtn = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst RecordDlg_1 = require(\"../components/RecordDlg\");\r\nconst ErrorDlg_1 = require(\"../components/ErrorDlg\");\r\nconst SbButton_1 = require(\"./SbButton\");\r\n/**\r\n * Opens the record dialog for the given org and session\r\n * @param props\r\n */\r\nconst RecordBtn = (props) => {\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n let [isOpen, setIsOpen] = (0, react_1.useState)(false);\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n function onError(err) {\r\n ErrorDlg_1.ErrorDlg.show(err, \"Error Recording Session\", \"Likley could not make contact with server\");\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.Primary, size: SbButton_1.SbButtonSize.Small, title: \"Record Session\", text: \"Record\", btnClassName: \"sb-record-btn\", icon: free_solid_svg_icons_1.faMicrophone, onClick: () => setIsOpen(true) }),\r\n react_1.default.createElement(RecordDlg_1.RecordDlg, { orgRoute: props.orgRoute, sessionRoute: props.sessionRoute, participantRole: props.participantRole, onError: onError, isOpen: isOpen, onClose: () => {\r\n setIsOpen(false);\r\n }, onSave: props.onSave })));\r\n};\r\nexports.RecordBtn = RecordBtn;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.VideoEditorContext = void 0;\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst mobx_1 = require(\"mobx\");\r\nconst StorageValue_1 = require(\"../../modules/StorageValue\");\r\nconst RecorderState_1 = require(\"./RecorderState\");\r\nconst VideoClip_1 = require(\"./VideoClip\");\r\n/**\r\n * VideoContext is intended to help manage the display, playback, and editing of a video.\r\n */\r\nclass VideoEditorContext {\r\n /** Return true if we have multiple devices */\r\n static get isMultiDevice() {\r\n return this.devices.length > 1;\r\n }\r\n /**\r\n * Initiates the process of updating the list of media devices. This method automatically updates\r\n * the observable mediaDevices property on this class, so changes can be processed by an observer\r\n * or the promise can be awaited.\r\n * @returns a promise with an updated list of media devices\r\n */\r\n static loadDevices() {\r\n const promise = new Promise((resolve, reject) => {\r\n if (this.isDeviceListLoaded) {\r\n resolve(VideoEditorContext.devices);\r\n return;\r\n }\r\n navigator.mediaDevices\r\n .enumerateDevices()\r\n .then((mediaDevices) => {\r\n const videoDevices = mediaDevices.filter((i) => i.kind == \"videoinput\");\r\n VideoEditorContext.devices = videoDevices;\r\n this.isDeviceListLoaded = true;\r\n resolve(videoDevices);\r\n })\r\n .catch((ex) => {\r\n api_1.Logger.LogError(\"Failed to enumerate media devices.\", ex);\r\n reject(ex);\r\n });\r\n });\r\n return promise;\r\n }\r\n get isRecording() {\r\n return this.recorderState === RecorderState_1.RecorderState.Recording;\r\n }\r\n get isPaused() {\r\n return this.recorderState === RecorderState_1.RecorderState.Paused;\r\n }\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////\r\n constructor() {\r\n //////////[ Properaties ]/////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Reference to the Video element in the DOM where video is rendered when played.\r\n */\r\n this.VideoElement = null;\r\n this.originalVolume = 0;\r\n this.lastDeviceId = new StorageValue_1.SessionValue(\"VideoEditorContext\", \"lastDeviceId\");\r\n this.recordingDurationInMs = 0; // Store the number of miliseconds of the last recording (acculative with pausing)\r\n //////////[ Observables ]/////////////////////////////////////////////////////////////////////////\r\n this.recorderState = RecorderState_1.RecorderState.NotRecording;\r\n this.isWebCamOn = false;\r\n this.isEditing = false;\r\n this.currentDevice = null;\r\n this.videoClips = [];\r\n this.hasUnsavedRecording = false;\r\n (0, mobx_1.makeObservable)(this, {\r\n recorderState: mobx_1.observable,\r\n isEditing: mobx_1.observable,\r\n isWebCamOn: mobx_1.observable,\r\n currentDevice: mobx_1.observable,\r\n videoClips: mobx_1.observable,\r\n hasUnsavedRecording: mobx_1.observable,\r\n isRecording: mobx_1.computed,\r\n isPaused: mobx_1.computed,\r\n });\r\n VideoEditorContext.loadDevices().then((devices) => {\r\n (0, mobx_1.runInAction)(() => {\r\n var _a;\r\n if (devices.length === 0) {\r\n this.currentDevice = null;\r\n this.lastDeviceId.remove();\r\n return;\r\n }\r\n if (this.lastDeviceId.hasValue()) {\r\n const lastDevice = devices.find((d) => d.deviceId === this.lastDeviceId.get());\r\n if (lastDevice != null) {\r\n this.currentDevice = lastDevice;\r\n return;\r\n }\r\n }\r\n this.currentDevice = devices[0];\r\n this.lastDeviceId.set((_a = this.currentDevice) === null || _a === void 0 ? void 0 : _a.deviceId);\r\n });\r\n });\r\n }\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Determines whether video capture is supported in the browser.\r\n */\r\n static isVideoCaptureSupported() {\r\n var _a;\r\n return !!((_a = navigator === null || navigator === void 0 ? void 0 : navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.getUserMedia);\r\n }\r\n showEditor() {\r\n this.stopWebCam();\r\n (0, mobx_1.runInAction)(() => {\r\n this.isEditing = true;\r\n });\r\n }\r\n showRecorder(startWebCam) {\r\n if (startWebCam !== false) {\r\n this.startWebCam();\r\n }\r\n (0, mobx_1.runInAction)(() => {\r\n this.isEditing = false;\r\n });\r\n }\r\n /**\r\n * Starts streaming the web camera to the video element. Does NOT start recording automatically.\r\n */\r\n startWebCam() {\r\n const promise = new Promise((resolve, reject) => {\r\n if (this.isWebCamOn) {\r\n resolve();\r\n return;\r\n }\r\n // Mute volume to avoid audio feedback\r\n this.muteVolume();\r\n if (VideoEditorContext.isVideoCaptureSupported()) {\r\n navigator.mediaDevices\r\n .getUserMedia(this.getConstraints())\r\n .then((stream) => {\r\n this.stream = stream;\r\n if (!!this.VideoElement) {\r\n this.VideoElement.srcObject = stream;\r\n (0, mobx_1.runInAction)(() => {\r\n this.isWebCamOn = true;\r\n });\r\n return resolve();\r\n }\r\n else {\r\n api_1.Logger.LogError(\"Reference to the video DOM element is not present.\");\r\n return reject();\r\n }\r\n })\r\n .catch((ex) => {\r\n api_1.Logger.LogError(\"Unexpected error while opening user media for video capture.\", ex);\r\n });\r\n }\r\n else {\r\n api_1.Logger.LogError(\"Video Editing is not supported in this browser.\");\r\n }\r\n });\r\n return promise;\r\n }\r\n switchWebCam() {\r\n // If we're not ready or don't have another choice, then we can't switch right now\r\n if (this.currentDevice == null) {\r\n return;\r\n }\r\n if (this.currentDevice == null ||\r\n !VideoEditorContext.isDeviceListLoaded ||\r\n VideoEditorContext.devices.length <= 1) {\r\n return;\r\n }\r\n // Running means we stop\r\n const wasRunning = this.isWebCamOn;\r\n if (wasRunning) {\r\n this.stopWebCam();\r\n }\r\n // set current device to the next in the list\r\n let currentDeviceIndex = VideoEditorContext.devices.findIndex((device) => { var _a; return ((_a = this.currentDevice) === null || _a === void 0 ? void 0 : _a.deviceId) === device.deviceId; });\r\n ++currentDeviceIndex;\r\n if (currentDeviceIndex >= VideoEditorContext.devices.length) {\r\n currentDeviceIndex = 0;\r\n }\r\n this.currentDevice = VideoEditorContext.devices[currentDeviceIndex];\r\n this.lastDeviceId.set(this.currentDevice.deviceId);\r\n // Resume if we were already running\r\n if (wasRunning) {\r\n this.startWebCam();\r\n }\r\n }\r\n /**\r\n * Stops streaming the web camera to the video element. If a recording is in process, this\r\n * automatically pauses the recording process.\r\n */\r\n stopWebCam() {\r\n var _a, _b;\r\n // Automatically stop recording if the web camera is being turned off.\r\n if (this.recorderState == RecorderState_1.RecorderState.Recording ||\r\n this.recorderState == RecorderState_1.RecorderState.Paused) {\r\n this.stopRecording();\r\n }\r\n const tracks = (_b = (_a = this.stream) === null || _a === void 0 ? void 0 : _a.getTracks()) !== null && _b !== void 0 ? _b : [];\r\n tracks.forEach((t) => t.stop());\r\n // Make sure we have a valid video element to stop\r\n if (!!this.VideoElement) {\r\n // Terminate the web camera feed\r\n this.VideoElement.srcObject = null;\r\n // Restore the volume to original state\r\n this.restoreOriginalVolume();\r\n // Update state\r\n (0, mobx_1.runInAction)(() => {\r\n this.isWebCamOn = false;\r\n });\r\n }\r\n else {\r\n api_1.Logger.LogError(\"Reference to the video DOM element is not present.\");\r\n }\r\n }\r\n /**\r\n * Begins recording web camera data stream.\r\n */\r\n startRecording() {\r\n var _a;\r\n if (this.recorderState === RecorderState_1.RecorderState.Recording) {\r\n return;\r\n }\r\n this.chunks = [];\r\n this.initRecorder();\r\n (_a = this.recorder) === null || _a === void 0 ? void 0 : _a.start();\r\n this.muteVolume();\r\n this.recordingStarted = new Date();\r\n this.recordingDurationInMs = 0;\r\n // Update state\r\n (0, mobx_1.runInAction)(() => {\r\n this.recorderState = RecorderState_1.RecorderState.Recording;\r\n this.hasUnsavedRecording = true;\r\n });\r\n }\r\n /**\r\n * Pauses recording web camera data stream.\r\n */\r\n pauseRecording() {\r\n var _a;\r\n if (this.recorderState == RecorderState_1.RecorderState.Recording) {\r\n (_a = this.recorder) === null || _a === void 0 ? void 0 : _a.pause();\r\n this.storeRecordingDuration();\r\n (0, mobx_1.runInAction)(() => {\r\n this.recorderState = RecorderState_1.RecorderState.Paused;\r\n });\r\n }\r\n }\r\n /**\r\n * Resumes recording web camera data stream.\r\n */\r\n resumeRecording() {\r\n var _a;\r\n if (this.recorderState == RecorderState_1.RecorderState.Paused) {\r\n this.recordingStarted = new Date();\r\n (_a = this.recorder) === null || _a === void 0 ? void 0 : _a.resume();\r\n (0, mobx_1.runInAction)(() => {\r\n this.recorderState = RecorderState_1.RecorderState.Recording;\r\n });\r\n }\r\n }\r\n /**\r\n * Stops recording and saves the current video data.\r\n * @returns - URL that can be used to retrieve saved video stream.\r\n */\r\n stopRecording() {\r\n if (this.recorderState === RecorderState_1.RecorderState.NotRecording) {\r\n return;\r\n }\r\n this.storeRecordingDuration();\r\n if (this.recorder) {\r\n const tracks = this.recorder.stream.getTracks();\r\n tracks.forEach((t) => t.stop());\r\n this.recorder.stop();\r\n (0, mobx_1.runInAction)(() => {\r\n // Wait for the recorder to finish processing the video before saving it\r\n // iOS Safari will fire dataavailable on the video element multiple times\r\n setTimeout(() => {\r\n this.recorderState = RecorderState_1.RecorderState.NotRecording;\r\n this.finalizeRecording();\r\n }, 1000);\r\n });\r\n }\r\n else {\r\n throw new Error(\"Cannot stop recording because there is no recorder reference.\");\r\n }\r\n this.restoreOriginalVolume();\r\n }\r\n addClip(clip) {\r\n (0, mobx_1.runInAction)(() => {\r\n this.videoClips = [...this.videoClips, clip];\r\n });\r\n if (this.onClipAdded) {\r\n this.onClipAdded(clip);\r\n }\r\n }\r\n removeClipById(id) {\r\n (0, mobx_1.runInAction)(() => {\r\n this.videoClips = this.videoClips.filter((i) => i.id !== id);\r\n });\r\n }\r\n removeClipAt(index) {\r\n (0, mobx_1.runInAction)(() => {\r\n this.videoClips = this.videoClips.splice(index, 1);\r\n });\r\n }\r\n playClip(clip) {\r\n var _a;\r\n if (!this.VideoElement) {\r\n throw new Error(\"Cannot play clip because the video element is missing\");\r\n }\r\n this.restoreOriginalVolume();\r\n this.VideoElement.srcObject = null;\r\n this.VideoElement.src = (_a = clip.url) !== null && _a !== void 0 ? _a : \"\";\r\n }\r\n finalizeRecording() {\r\n // Store off the video data to a blob accessible by URL\r\n const codec = this.getCodec(this.chunks);\r\n const ext = this.getExtensionFromCodec(codec);\r\n const blob = new Blob(this.chunks, { type: codec });\r\n const file = new File([blob], `clip.${ext}`);\r\n const clipId = this.getNextClipId();\r\n const clip = new VideoClip_1.VideoClip(clipId, `Clip ${clipId}`, URL.createObjectURL(blob), true, this.recordingDurationInMs);\r\n clip.file = file;\r\n clip.fileFormat = \"mp4\";\r\n this.addClip(clip);\r\n this.chunks = [];\r\n this.recordingDurationInMs = 0;\r\n (0, mobx_1.runInAction)(() => {\r\n this.hasUnsavedRecording = false;\r\n });\r\n }\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n onVideoDataCaptured(e) {\r\n var _a;\r\n // Whenever there is data push it to the chunked data array\r\n (_a = this.chunks) === null || _a === void 0 ? void 0 : _a.push(e.data);\r\n }\r\n //////////[ Methods - Utility ]///////////////////////////////////////////////////////////////////\r\n /**\r\n * Attempts to retrieves the codec associated with the file. In theory there can be multiple\r\n * chunks received but in testing there seems to only be 1 chunk and there is a codec associated\r\n * with that chunk via the 'type' property. This method iterates all of the chunks and grabs the\r\n * codec from that 'type' property giving priority to any 'type' value that has the video\r\n * mimetype signature\r\n */\r\n getCodec(chunks) {\r\n let codec = \"\";\r\n let hasVideoMimeSignature = false;\r\n if (chunks && chunks.length > 0) {\r\n for (let i = 0; i < chunks.length; i++) {\r\n if (!hasVideoMimeSignature) {\r\n if (!codec && chunks[i].type) {\r\n // Set the codec because we take what we can get\r\n codec = chunks[i].type;\r\n // Lock in the codec if it contains a video mimetype signature\r\n hasVideoMimeSignature = codec.indexOf(\"video/\") >= 0;\r\n }\r\n }\r\n }\r\n }\r\n // Default to the iphone MP4 if we do not find anything\r\n if (!codec) {\r\n codec = 'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"';\r\n }\r\n return codec;\r\n }\r\n /**\r\n * Attempts to acquire the file extension for the clip based on the codec\r\n * @param codec - the codec from which to derive an extension\r\n * @returns the appropriate extension (without a leading .)\r\n */\r\n getExtensionFromCodec(codec) {\r\n var _a;\r\n let codecLower = (_a = codec === null || codec === void 0 ? void 0 : codec.toLowerCase()) !== null && _a !== void 0 ? _a : \"\";\r\n if (codecLower.indexOf(\"webm\")) {\r\n return \"webm\";\r\n }\r\n else {\r\n return \"mp4\";\r\n }\r\n }\r\n /**\r\n * Restore the volume to the original volume when value was muted.\r\n */\r\n restoreOriginalVolume() {\r\n if (this.VideoElement) {\r\n this.VideoElement.volume = this.originalVolume;\r\n }\r\n }\r\n /**\r\n * Mutes the audio in the video element to avoid creating audio feedback while the recorder\r\n * is running. Retains original volume value so it can be reset after recording is over.\r\n */\r\n muteVolume() {\r\n //NOTE: I believe when the video element is created the volume is automatically set to 100% so\r\n // the original volume is always 100%. For now this works, but it technically does not try\r\n // to account for changes in volume during recording because at the time of writing this there\r\n // is now way to do that.\r\n if (this.VideoElement) {\r\n if (this.originalVolume == 0) {\r\n this.originalVolume = this.VideoElement.volume;\r\n }\r\n this.VideoElement.volume = 0;\r\n }\r\n }\r\n /**\r\n * Responsible for initializing the video recorder.\r\n */\r\n initRecorder() {\r\n if (this.stream) {\r\n // Create a new recorder using the current media stream\r\n this.recorder = new MediaRecorder(this.stream, {\r\n mimeType: \"video/webm; codecs=h264\"\r\n });\r\n if (this.VideoElement != null) {\r\n this.VideoElement.srcObject = this.stream;\r\n }\r\n else {\r\n alert(\"Cannot set stream on video element\");\r\n api_1.Logger.LogError(\"Cannot assign stream to source object in initRecorder, video element will be blank\");\r\n }\r\n // Handle incomming video data\r\n this.recorder.addEventListener(\"dataavailable\", (e) => this.onVideoDataCaptured(e));\r\n }\r\n else {\r\n throw new Error(\"Cannot start recording because media stream is not initialized.\");\r\n }\r\n }\r\n /**\r\n * Creates a unique ID for the video clip based on the current list of clips.\r\n */\r\n getNextClipId() {\r\n let result = 0;\r\n if (this.videoClips.length === 0) {\r\n // There are no clips so start out with an ID of 1\r\n result = 1;\r\n }\r\n else {\r\n // There are clips so get the maximum value and add 1\r\n this.videoClips.forEach((i) => {\r\n if (i.id && result < i.id) {\r\n result = i.id;\r\n }\r\n });\r\n result++;\r\n }\r\n return result;\r\n }\r\n /**\r\n * Builds out the constraints used to request the video media stream.\r\n */\r\n getConstraints() {\r\n var _a;\r\n const constraints = {\r\n audio: true,\r\n video: {\r\n width: { ideal: 1280 },\r\n height: { ideal: 720 },\r\n deviceId: !!((_a = this.currentDevice) === null || _a === void 0 ? void 0 : _a.deviceId)\r\n ? this.currentDevice.deviceId\r\n : undefined,\r\n },\r\n };\r\n return constraints;\r\n }\r\n /**\r\n * Should be called when recording is paused or stops. Responsible for using the record start\r\n * time to calculate the duration of the recording.\r\n */\r\n storeRecordingDuration() {\r\n if (this.recordingStarted) {\r\n this.recordingDurationInMs =\r\n this.recordingDurationInMs +\r\n new Date().getTime() -\r\n this.recordingStarted.getTime();\r\n this.recordingStarted = undefined;\r\n }\r\n else {\r\n this.recordingDurationInMs = -999999999;\r\n throw new Error(\"Time tracking value not set\");\r\n }\r\n }\r\n}\r\nexports.VideoEditorContext = VideoEditorContext;\r\n//////////[ Static ]/////////////////////////////////////////////////////////////////////////\r\nVideoEditorContext.devices = [];\r\nVideoEditorContext.isDeviceListLoaded = false;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GroupStore = void 0;\r\nconst mobx_1 = require(\"mobx\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst OrganizationStore_1 = require(\"./OrganizationStore\");\r\n/**\r\n * MobX store class containing states and actions for groups.\r\n */\r\nclass GroupStoreClass {\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////////\r\n constructor() {\r\n //////////[ Cache Members ]////////////////////////////////////////////////////////////////////////\r\n this.groupDetailsCache = {};\r\n //////////[ Observable Data Properties ]//////////////////////////////////////////////////////////\r\n this.lastOrgRoute = undefined;\r\n this.lastGroupRoute = undefined;\r\n /**\r\n * Stores a reference to the current group context under which the application is operating.\r\n */\r\n this.currentGroup = undefined;\r\n (0, mobx_1.makeObservable)(this, {\r\n refresh: mobx_1.observable,\r\n currentGroup: mobx_1.observable,\r\n deleteGroupAsync: mobx_1.action,\r\n updateGroupAsync: mobx_1.action,\r\n });\r\n }\r\n /**\r\n * Responsible for clearing ALL cached data in the store.\r\n */\r\n clearCache() {\r\n this.groupDetailsCache = Object.create(null);\r\n }\r\n /**\r\n * Creates a key used for caching operations\r\n * @param orgRoute - route of the organization\r\n * @param groupRoute - route of the group\r\n */\r\n getCacheKey(orgRoute, groupRoute) {\r\n return `${orgRoute}-${groupRoute}`;\r\n }\r\n //////////[ Actions ]/////////////////////////////////////////////////////////////////////////////\r\n reset() {\r\n this.clearCache();\r\n this.lastOrgRoute = undefined;\r\n this.lastGroupRoute = undefined;\r\n this.currentGroup = undefined;\r\n }\r\n /** Reloads the data in this context */\r\n refresh() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.clearCache();\r\n if (this.currentGroup == null ||\r\n this.lastOrgRoute == null ||\r\n this.lastGroupRoute == null) {\r\n this.currentGroup = undefined;\r\n this.lastOrgRoute = undefined;\r\n this.lastGroupRoute = undefined;\r\n return;\r\n }\r\n yield this.readGroupAsync(this.lastOrgRoute, this.lastGroupRoute, false);\r\n });\r\n }\r\n /**\r\n * Creates a new group.\r\n * @param orgRoute - route of the organization with which the group is associated.\r\n * @param newGroup - information about the group to create.\r\n */\r\n createGroupAsync(orgRoute, newGroup) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const group = yield api_1.GroupsService.createAsync(orgRoute, newGroup);\r\n this.currentGroup = group;\r\n this.lastOrgRoute = orgRoute;\r\n this.lastGroupRoute = group.route;\r\n const refreshPromise = this.refresh();\r\n const orgChangePromise = OrganizationStore_1.OrganizationStore.onGroupChanged(group);\r\n yield Promise.all([refreshPromise, orgChangePromise]);\r\n return group;\r\n });\r\n }\r\n /**\r\n * Deletes the specified group.\r\n * @param orgRoute - route of the organization with which the group is associated.\r\n * @param groupRoute - route of the group to delete.\r\n */\r\n deleteGroupAsync(orgRoute, groupRoute) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n api_1.GroupsService.deleteAsync(orgRoute, groupRoute);\r\n delete this.groupDetailsCache[this.getCacheKey(orgRoute, groupRoute)];\r\n yield OrganizationStore_1.OrganizationStore.onGroupRemoved(orgRoute, groupRoute);\r\n });\r\n }\r\n /**\r\n * Gets the specified group.\r\n * @param orgRoute - route of the organization with which the group is associated.\r\n * @param groupRoute - route of the group to get\r\n * @param allowCache - (optional) flag indicating whether caching is allowed (default:true)\r\n */\r\n readGroupAsync(orgRoute, groupRoute, allowCache = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const cacheKey = this.getCacheKey(orgRoute, groupRoute);\r\n let group = allowCache\r\n ? this.groupDetailsCache[cacheKey]\r\n : null;\r\n if (!group) {\r\n group = yield api_1.GroupsService.readAsync(orgRoute, groupRoute);\r\n if (group) {\r\n this.groupDetailsCache[cacheKey] = group;\r\n }\r\n }\r\n if (group) {\r\n this.lastOrgRoute = orgRoute;\r\n this.lastGroupRoute = groupRoute;\r\n this.currentGroup = group;\r\n }\r\n return group;\r\n });\r\n }\r\n /**\r\n * Updates the specified group.\r\n * @param orgRoute - route of the organization with which the group is associated.\r\n * @param groupRoute - route of the group to get\r\n * @param patch - HTTP patch instructions identifying the group properties to update.\r\n */\r\n updateGroupAsync(orgRoute, groupRoute, patch) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const group = yield api_1.GroupsService.patchAsync(orgRoute, groupRoute, patch);\r\n yield OrganizationStore_1.OrganizationStore.onGroupChanged(group);\r\n return group;\r\n });\r\n }\r\n //////////[ Event Methods ]///////////////////////////////////////////////////////////////////////\r\n onAnyMemberChanged(orgRoute, groupRoute) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // If the updated member matches the current org/group, then we need to refresh\r\n // This ensures we update any showing lists of members, etc\r\n if (orgRoute !== this.lastOrgRoute || groupRoute !== this.lastGroupRoute) {\r\n return;\r\n }\r\n yield this.refresh();\r\n });\r\n }\r\n}\r\n// Export a singleton instance of the store\r\nexports.GroupStore = new GroupStoreClass();\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConcurrentCache = void 0;\r\n/**\r\n * Implements a cache that not only holds onto objects, it holds onto and reuses reuests for those objects\r\n * This enables not only easy management of current data; it ensures only one request per key is active in a given time\r\n * */\r\nclass ConcurrentCache {\r\n constructor() {\r\n /** A mapping from keys to objects */\r\n this.objects = new Map();\r\n /** A mapping from keys to pending promises */\r\n this.promises = new Map();\r\n }\r\n /** Clear the cache */\r\n clear() {\r\n this.objects.clear();\r\n this.promises.clear();\r\n }\r\n /**\r\n * Clear the given key in the cache\r\n * @param cacheKey\r\n * @returns True if it was seen before deletion; otherwise, false\r\n */\r\n delete(cacheKey) {\r\n const wasCached = this.objects.delete(cacheKey);\r\n const wasPending = this.promises.delete(cacheKey);\r\n return wasCached || wasPending;\r\n }\r\n /**\r\n * Manually and synchronously set the value for a given object; this invalidates any pending requests for that item\r\n * @param cacheKey\r\n * @param value\r\n */\r\n set(cacheKey, value) {\r\n this.promises.delete(cacheKey);\r\n this.objects.set(cacheKey, value);\r\n }\r\n /**\r\n * Async retrieve the object, but only if is currently live in the cache\r\n * @param cacheKey\r\n */\r\n get(cacheKey) {\r\n return this.objects.get(cacheKey);\r\n }\r\n /**\r\n * Returns true if the given promise is live and never discarded; otherwise, false if it has been invalidated or superseded\r\n * @param cacheKey\r\n * @param currentPromise\r\n */\r\n isPendingPromise(cacheKey, currentPromise) {\r\n const pendingPromise = this.promises.get(cacheKey);\r\n return pendingPromise === currentPromise;\r\n }\r\n /**\r\n * Async retrieve an object; optionally reusing cached items and active requests\r\n * @param cacheKey Must be unique value\r\n * @param reader Optionally returns a promise to call in the event of a cache miss\r\n * @param allowCache By default, reuse values from the cache\r\n */\r\n getAsync(cacheKey, reader, allowCache = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // Try to find in cache\r\n let cached = allowCache\r\n ? this.get(cacheKey)\r\n : undefined;\r\n if (cached) {\r\n return cached;\r\n }\r\n // Try to reuse promise if pending\r\n let promised = allowCache\r\n ? this.promises.get(cacheKey)\r\n : undefined;\r\n if (promised != null) {\r\n return promised;\r\n }\r\n // If we're forced, then use reader, but we may not get anything\r\n const newPromise = reader();\r\n if (newPromise == null) {\r\n throw new Error(`Could not start read request for item with cache key '${cacheKey}'`);\r\n }\r\n // Since we have a useful promise, we hold onto it for concurrency\r\n this.promises.set(cacheKey, newPromise);\r\n // We never await on this promise, so we have to resolve old school\r\n newPromise\r\n .then((value) => {\r\n // We cannot allow empty values in this class; they should be treated like errors\r\n // In a perfect world, we would get a 404 from the API before this is ever called\r\n if (value == null) {\r\n throw new Error(`No value returned for read request with cache key '${cacheKey}'`);\r\n }\r\n // If the promise was kicked out while waiting, then we do NOT save it for later\r\n if (this.isPendingPromise(cacheKey, newPromise)) {\r\n this.objects.set(cacheKey, value);\r\n }\r\n return value;\r\n })\r\n .finally(() => {\r\n // While waiting on the new promise, this may have evicted this promise\r\n // If that is the case, then the poor soul waiting on the old promise will get nothing\r\n if (this.isPendingPromise(cacheKey, newPromise)) {\r\n this.promises.delete(cacheKey);\r\n }\r\n });\r\n return newPromise;\r\n });\r\n }\r\n}\r\nexports.ConcurrentCache = ConcurrentCache;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionValue = exports.LocalValue = void 0;\r\n/**\r\n * Utility class around window.sessionStorage that simplifies access and provides strong-typing\r\n * */\r\nclass StorageValue {\r\n constructor(key, storage = sessionStorage) {\r\n this.key = key;\r\n this.storage = storage;\r\n }\r\n /**\r\n * Returns true if this has a value already; otherwise, false\r\n * */\r\n hasValue() {\r\n return this.storage.getItem(this.key) !== null;\r\n }\r\n /**\r\n * Removes the value from the underlying cache\r\n * */\r\n remove() {\r\n this.storage.removeItem(this.key);\r\n }\r\n /**\r\n * Retrieves the current value from session storage\r\n * */\r\n get() {\r\n const json = this.storage.getItem(this.key);\r\n if (!json)\r\n return null;\r\n const value = JSON.parse(json) || null;\r\n return value;\r\n }\r\n /**\r\n * Sets the value in the underlying cache\r\n * @param value New value for this object to store in the cache\r\n */\r\n set(value) {\r\n const json = JSON.stringify(value);\r\n this.storage.setItem(this.key, json);\r\n }\r\n /**\r\n * Sets to the given value, but only is empty then this SessionValue object, making it chainable during initialization\r\n * @param value Default value that is only set if empty\r\n */\r\n withDefault(value) {\r\n if (!this.hasValue())\r\n this.set(value);\r\n return this;\r\n }\r\n}\r\nexports.default = StorageValue;\r\n/**\r\n * Wrapper for localStorage providing typesafe and convenient behavior\r\n * */\r\nclass LocalValue extends StorageValue {\r\n /**\r\n * Constructor for declaring a new instance of LocalValue\r\n * @param className The top-level namespace for building the key - recommend using the name of the class using localValue\r\n * @param valueName The name of the value for uniquely identifying it - recommend the name of the variable in the class\r\n * @param instanceName Unique name of the instance of this SessionValue - Defaults to \"static\" assuming there is only one value+class combo\r\n */\r\n constructor(className, valueName, instanceName = \"static\") {\r\n const key = `${className}::${instanceName}::${valueName}`;\r\n super(key, localStorage);\r\n }\r\n}\r\nexports.LocalValue = LocalValue;\r\n/**\r\n * Wrapper for sessionStorage providing type-safe and convenient behavior\r\n * */\r\nclass SessionValue extends StorageValue {\r\n /**\r\n * Constructor for declaring a new instance of SessionValue\r\n * @param className The top-level namespace for building the key - recommend using the name of the class using this class\r\n * @param valueName The name of the value for uniquely identifying it - recommend the name of the variable in the class\r\n * @param instanceName Unique name of the instance of this SessionValue - Defaults to \"static\" assuming there is only one value+class combo\r\n */\r\n constructor(className, valueName, instanceName = \"static\") {\r\n const key = `${className}::${instanceName}::${valueName}`;\r\n super(key, sessionStorage);\r\n }\r\n}\r\nexports.SessionValue = SessionValue;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DialogManagerLink = void 0;\r\n/**\r\n * Allows the DialogManager and the DialogManagerUi to communicate. This could technically be on\r\n * the DialogManager directly but this hides the linkage so it does not appear in intellisense and\r\n * makes it harder to accidentally break.\r\n */\r\nclass DialogManagerLink {\r\n}\r\nexports.DialogManagerLink = DialogManagerLink;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __rest = (this && this.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.InfiniteTable = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst react_window_infinite_loader_1 = __importDefault(require(\"react-window-infinite-loader\"));\r\nconst react_window_1 = require(\"react-window\");\r\nconst react_virtualized_auto_sizer_1 = __importDefault(require(\"react-virtualized-auto-sizer\"));\r\nconst ShowWhen_1 = require(\"./ShowWhen\");\r\n/**\r\n * Show a dynamically loading table that will take up 100% width and 100% height in its container\r\n * @param props\r\n */\r\nconst InfiniteTable = (props) => {\r\n /** Context for cross component communication */\r\n const TableContext = react_1.default.createContext({\r\n top: 0,\r\n setTop: (value) => { },\r\n header: react_1.default.createElement(react_1.default.Fragment, null),\r\n footer: react_1.default.createElement(react_1.default.Fragment, null),\r\n });\r\n /**\r\n * The Inner component of the virtual list. This is the \"Magic\".\r\n * Capture what would have been the top elements position and apply it to the table.\r\n * Other than that, render an optional header and footer.\r\n **/\r\n const Table = react_1.default.forwardRef(function Inner(_a, ref) {\r\n var _b;\r\n var { children } = _a, rest = __rest(_a, [\"children\"]);\r\n const className = (_b = props.className) !== null && _b !== void 0 ? _b : \"table align-items-center\";\r\n const { header, footer, top } = (0, react_1.useContext)(TableContext);\r\n return (react_1.default.createElement(\"div\", Object.assign({}, rest, { ref: ref }),\r\n react_1.default.createElement(\"table\", { className: className, style: { top, position: \"absolute\", width: \"100%\" } },\r\n header,\r\n react_1.default.createElement(\"tbody\", null, children),\r\n footer)));\r\n });\r\n function WindowWithContext(_a) {\r\n var { row, header, footer } = _a, rest = __rest(_a, [\"row\", \"header\", \"footer\"]);\r\n const listRef = (0, react_1.useRef)();\r\n const [top, setTop] = (0, react_1.useState)(0);\r\n return (react_1.default.createElement(TableContext.Provider, { value: { top, setTop, header, footer } },\r\n react_1.default.createElement(react_window_1.FixedSizeList, Object.assign({}, rest, { innerElementType: Table, onItemsRendered: (props) => {\r\n const style = listRef.current &&\r\n // @ts-ignore private method access\r\n listRef.current._getItemStyle(props.overscanStartIndex);\r\n setTop((style && style.top) || 0);\r\n // Call the original callback\r\n rest.onItemsRendered && rest.onItemsRendered(props);\r\n }, ref: (el) => (listRef.current = el) }), row)));\r\n }\r\n const Body = () => {\r\n return (react_1.default.createElement(\"div\", { className: \"sb-infinite-table\" },\r\n react_1.default.createElement(react_virtualized_auto_sizer_1.default, null, ({ height, width }) => {\r\n var _a;\r\n return (react_1.default.createElement(react_window_infinite_loader_1.default, { isItemLoaded: props.isItemLoaded, itemCount: (_a = props.count) !== null && _a !== void 0 ? _a : 0, loadMoreItems: props.loadMore, minimumBatchSize: props.minimumBatchSize }, ({ onItemsRendered, ref }) => {\r\n var _a;\r\n return (react_1.default.createElement(WindowWithContext, { footer: props.footer, header: props.header, height: height, itemCount: (_a = props.count) !== null && _a !== void 0 ? _a : 0, itemSize: props.itemSize, onItemsRendered: onItemsRendered, row: props.row, width: width }));\r\n }));\r\n })));\r\n };\r\n return (react_1.default.createElement(ShowWhen_1.ShowWhen, { is: props.count != null },\r\n react_1.default.createElement(Body, null)));\r\n};\r\nexports.InfiniteTable = InfiniteTable;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LabelInfo = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\n/**\r\n * A label and info disclosure in one component\r\n * */\r\nclass LabelInfo extends react_1.Component {\r\n render() {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(\"label\", { className: \"form-control-label\" }, this.props.label),\r\n \" \",\r\n react_1.default.createElement(\"span\", { className: \"small text-muted\" }, this.props.info)));\r\n }\r\n}\r\nexports.LabelInfo = LabelInfo;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.KpiCard = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst controls_1 = require(\"../controls\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\n/** A simple card for displaying Key Performance Indicators, such as highlights around the activity in the system */\r\nexports.KpiCard = (0, mobx_react_lite_1.observer)((props) => {\r\n var _a, _b, _c;\r\n const deltaIconClass = `fa ${(_a = props.deltaIcon) !== null && _a !== void 0 ? _a : \"fa-arrow-up\"} `;\r\n const statIconBackClass = `icon icon-shape ${(_b = props.statIconBg) !== null && _b !== void 0 ? _b : \"bg-info\"} text-white rounded-circle shadow opacity-2`;\r\n return (react_1.default.createElement(reactstrap_1.Card, { className: \"sb-kpi-card mb-4 mb-xl-0 shadow\" },\r\n react_1.default.createElement(controls_1.ShowWhen, { is: !!props.statIcon },\r\n react_1.default.createElement(\"div\", { className: statIconBackClass },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: (_c = props.statIcon) !== null && _c !== void 0 ? _c : free_solid_svg_icons_1.faChartArea }))),\r\n react_1.default.createElement(reactstrap_1.CardBody, { title: props.tooltip },\r\n react_1.default.createElement(reactstrap_1.Row, null,\r\n react_1.default.createElement(reactstrap_1.Col, null,\r\n react_1.default.createElement(\"h5\", { className: \"mb-0 card-title\" },\r\n react_1.default.createElement(\"span\", { className: \"text-uppercase\" }, props.title),\r\n react_1.default.createElement(\"span\", { className: \"text-muted font-weight-light ml-1 text-sm\" }, props.subTitle)),\r\n react_1.default.createElement(\"span\", { className: \"h2 font-weight-bold mb-0\" }, props.stat))),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: !!props.delta && !!props.stat },\r\n react_1.default.createElement(\"p\", { className: \"mt-3 mb-0 text-muted text-sm\" },\r\n react_1.default.createElement(\"span\", { className: \"text-success mr-2\" },\r\n react_1.default.createElement(\"i\", { className: deltaIconClass }),\r\n \"\\u00A0\",\r\n props.delta),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: !!props.deltaTitle },\r\n react_1.default.createElement(\"span\", { className: \"text-nowrap\" }, props.deltaTitle)))))));\r\n});\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RecordDlg = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst store_1 = require(\"../store\");\r\nconst HashHelper_1 = require(\"../modules/HashHelper\");\r\nconst RecordWidget_1 = require(\"../widgets/RecordWidget\");\r\nconst controls_1 = require(\"./controls\");\r\n/**\r\n * A dialog wrapping the record widget\r\n * @param props\r\n */\r\nconst RecordDlg = (props) => {\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n let [session, setSession] = (0, react_1.useState)();\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n function onError(err) {\r\n if (props.onError) {\r\n props.onError(err);\r\n }\r\n }\r\n function onClose() {\r\n api_1.Utils.setHash();\r\n if (props.onClose) {\r\n props.onClose();\r\n }\r\n }\r\n //////////[ Initialization ]//////////////////////////////////////////////////////////////////////\r\n (0, react_1.useEffect)(() => {\r\n function init() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (props.isOpen && props.orgRoute && props.sessionRoute) {\r\n try {\r\n api_1.Utils.setHash(`${HashHelper_1.DialogHash.Record}=${props.sessionRoute}`);\r\n const sessionDetails = yield store_1.WidgetStore.sessions.readSessionDetailsAsync(props.orgRoute, props.sessionRoute);\r\n setSession(sessionDetails);\r\n }\r\n catch (err) {\r\n onError(err);\r\n }\r\n }\r\n });\r\n }\r\n init();\r\n }, [props.isOpen, props.orgRoute, props.sessionRoute]);\r\n //////////[ Methods - UI Helpers ]////////////////////////////////////////////////////////////////\r\n function getSubtitle() {\r\n return (react_1.default.createElement(\"span\", { className: \"sb-modal-header-subtitle\" }, api_1.Utils.formatRelativeDate(session === null || session === void 0 ? void 0 : session.publish)));\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(reactstrap_1.Modal, { isOpen: props.isOpen, toggle: onClose, backdrop: \"static\" },\r\n react_1.default.createElement(reactstrap_1.ModalHeader, { toggle: onClose, className: \"bg-gradient-primary\" },\r\n (session === null || session === void 0 ? void 0 : session.name) || \"Loading Soundbite Session...\",\r\n getSubtitle()),\r\n react_1.default.createElement(controls_1.Loader, { isLoadedWhen: !!session, style: { minHeight: \"12rem\" } },\r\n react_1.default.createElement(reactstrap_1.ModalBody, null, props.orgRoute && session && (react_1.default.createElement(RecordWidget_1.RecordWidget, { orgRoute: props.orgRoute, participantRole: props.participantRole, session: session, onClose: onClose, onError: onError, onSave: props.onSave, showButtons: true })))))));\r\n};\r\nexports.RecordDlg = RecordDlg;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EmptyCardBody = void 0;\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst controls_1 = require(\"./controls\");\r\n/** Formatting for an empty card which prominently displays a graphic and some text */\r\nclass EmptyCardBody extends react_1.Component {\r\n render() {\r\n const showImage = this.props.showImage === false ? false : true;\r\n let wrapperClassName = \"card-header border-0 sb-empty-card-body\";\r\n if (this.props.hasBorder)\r\n wrapperClassName += \" sb-empty-card-with-border\";\r\n return (react_1.default.createElement(\"div\", { className: wrapperClassName },\r\n react_1.default.createElement(\"div\", { className: \"align-items-center\" },\r\n react_1.default.createElement(\"div\", { className: \"text-muted text-center\" },\r\n this.props.prompt,\r\n react_1.default.createElement(\"div\", { className: \"mt-3\" }, this.props.children)),\r\n react_1.default.createElement(\"div\", null,\r\n react_1.default.createElement(controls_1.ShowWhen, { is: showImage },\r\n react_1.default.createElement(\"img\", { src: api_1.SoundbiteApiConfig.imgEmptyCardArtUrl, alt: \"Empty Art\", className: \"mx-auto d-block\" }))))));\r\n }\r\n}\r\nexports.EmptyCardBody = EmptyCardBody;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SingletonDialogBase = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\n/** Abstract base class for a dialog that is always on the page and able to dynamically accept input to simplify its display */\r\nclass SingletonDialogBase extends react_1.Component {\r\n constructor() {\r\n super(...arguments);\r\n this.state = {\r\n isOpen: false,\r\n data: undefined,\r\n };\r\n this.isBig = false;\r\n this.headerClassname = \"bg-gradient-primary\";\r\n }\r\n close() {\r\n this.setState({ isOpen: false });\r\n this.state.onClose && this.state.onClose(this.state.data);\r\n }\r\n submit() {\r\n this.setState({ isOpen: false });\r\n this.state.onSubmit && this.state.onSubmit(this.state.data);\r\n }\r\n open(data, onSubmit, onClose) {\r\n this.setState({\r\n isOpen: true,\r\n data: data,\r\n onSubmit: onSubmit,\r\n onClose: onClose,\r\n });\r\n }\r\n modalFooter() {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(\"button\", { type: \"button\", className: \"btn btn-outline-secondary\", onClick: this.close.bind(this), title: \"Close\" }, \"Close\"),\r\n \" \",\r\n react_1.default.createElement(\"button\", { type: \"button\", className: \"btn btn-primary\", onClick: this.submit.bind(this), title: \"Add\" }, \"Add\")));\r\n }\r\n renderFooter() {\r\n const childFooter = this.modalFooter();\r\n if (childFooter) {\r\n return react_1.default.createElement(reactstrap_1.ModalFooter, null, childFooter);\r\n }\r\n else\r\n return react_1.default.createElement(react_1.default.Fragment, null);\r\n }\r\n render() {\r\n let modalClassName = this.isBig ? \"sb-big-dialog\" : \"\";\r\n return (react_1.default.createElement(reactstrap_1.Modal, { isOpen: this.state.isOpen, toggle: this.close.bind(this), className: modalClassName, backdrop: \"static\" },\r\n react_1.default.createElement(reactstrap_1.ModalHeader, { toggle: this.close.bind(this), className: this.headerClassname }, this.modalHeader()),\r\n react_1.default.createElement(reactstrap_1.ModalBody, null, this.modalBody()),\r\n this.renderFooter()));\r\n }\r\n}\r\nexports.SingletonDialogBase = SingletonDialogBase;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ThemeConfig = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst styles_1 = require(\"../../styles\");\r\nconst ColorConfig_1 = require(\"./ColorConfig\");\r\nconst controls_1 = require(\"../controls\");\r\nconst WidgetStore_1 = require(\"../../store/WidgetStore\");\r\nconst baseStyles = (0, react_1.css) `\r\n position: fixed;\r\n bottom: 0;\r\n left: 0;\r\n margin-right: auto;\r\n border-top: 1px solid ${styles_1.GlobalTheme.current.colors.neutrals.max};\r\n border-right: 1px solid ${styles_1.GlobalTheme.current.colors.neutrals.max};\r\n border-bottom-left-radius: 0;\r\n border-bottom-right-radius: 0;\r\n border-top-left-radius: 0;\r\n max-height: 90%;\r\n max-width: 25rem;\r\n z-index: 2;\r\n\r\n .sb-theme-toggle label {\r\n margin: 0 0.5rem;\r\n }\r\n`;\r\n/** A card fixed in the view of the browser that enables changing theme elements */\r\nconst ThemeConfig = () => {\r\n var _a;\r\n const orgRoute = (_a = WidgetStore_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.details.route;\r\n function onPreview() {\r\n if (orgRoute != null) {\r\n styles_1.GlobalTheme.current.name = api_1.ThemeName.Draft;\r\n styles_1.GlobalTheme.setDraft(styles_1.GlobalTheme.current, orgRoute);\r\n styles_1.GlobalTheme.apply();\r\n }\r\n }\r\n return ((0, react_1.jsx)(reactstrap_1.Card, { className: \"sb-theme-config\", css: baseStyles },\r\n (0, react_1.jsx)(reactstrap_1.CardBody, null,\r\n (0, react_1.jsx)(\"h1\", { className: \"text-sm text-uppercase\" }, \"Configure Theme\"),\r\n (0, react_1.jsx)(ColorConfig_1.ColorConfig, null)),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: orgRoute != null },\r\n (0, react_1.jsx)(reactstrap_1.CardFooter, null,\r\n (0, react_1.jsx)(\"div\", { className: \"text-right\" },\r\n (0, react_1.jsx)(reactstrap_1.Button, { color: \"primary\", onClick: onPreview }, \"Preview\"))))));\r\n};\r\nexports.ThemeConfig = ThemeConfig;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Scrubber2 = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = require(\"react\");\r\nconst react_scrubber_1 = require(\"react-scrubber\");\r\nconst styles_1 = require(\"../styles\");\r\nconst controls_1 = require(\"./controls\");\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\n/***************************************************************************************************\r\n * Component Styles\r\n **************************************************************************************************/\r\nfunction getStyles() {\r\n const styles = (0, react_1.css) `\r\n width: 100%;\r\n height: 1.5rem;\r\n padding-left: 0.75rem;\r\n padding-right: 0.75rem;\r\n background-color: ${styles_1.GlobalTheme.current.colors.neutrals.n500};\r\n border-radius: 4px;\r\n overflow: hidden;\r\n position: relative;\r\n\r\n .sb-time-summary {\r\n color: ${styles_1.GlobalTheme.current.colors.neutrals.n200};\r\n right: 0.5rem;\r\n pointer-events: none;\r\n position: absolute;\r\n top: 1px;\r\n z-index: 1;\r\n }\r\n\r\n &[aria-disabled=\"true\"] {\r\n pointer-events: none;\r\n }\r\n\r\n &[aria-disabled=\"true\"] .sb-time-summary {\r\n color: ${styles_1.GlobalTheme.current.colors.neutrals.n300};\r\n }\r\n\r\n .scrubber.horizontal .bar {\r\n height: 100%;\r\n }\r\n\r\n .scrubber.horizontal .bar .bar__thumb {\r\n height: 1.5rem;\r\n width: 1.5rem;\r\n transform: translate(-50%, -50%);\r\n top: 50%;\r\n }\r\n\r\n .scrubber {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n -webkit-user-select: none;\r\n user-select: none;\r\n touch-action: none;\r\n }\r\n\r\n .scrubber .bar {\r\n background-color: transparent;\r\n width: 100;\r\n position: relative;\r\n transition: height 0.2s linear, width 0.2s linear;\r\n }\r\n\r\n .scrubber * {\r\n -webkit-user-select: none;\r\n user-select: none;\r\n }\r\n\r\n .scrubber .bar__progress {\r\n position: absolute;\r\n background-color: ${styles_1.GlobalTheme.current.colors.neutrals.n600};\r\n border-top-left-radius: 4px;\r\n border-bottom-left-radius: 4px;\r\n left: -0.75rem;\r\n }\r\n\r\n .scrubber .bar__buffer {\r\n position: absolute;\r\n }\r\n\r\n .scrubber .bar__thumb {\r\n position: absolute;\r\n width: 0px;\r\n height: 0px;\r\n border-radius: 4px;\r\n transition: height 0.2s linear, width 0.2s linear;\r\n background-color: ${styles_1.GlobalTheme.current.colors.bootstrap.primary};\r\n }\r\n\r\n &[aria-disabled=\"true\"] .scrubber .bar__thumb {\r\n background-color: ${styles_1.GlobalTheme.current.colors.neutrals.n700};\r\n }\r\n\r\n .scrubber .bar__marker {\r\n position: absolute;\r\n }\r\n\r\n .scrubber.horizontal .bar__progress,\r\n .scrubber.horizontal .bar__marker,\r\n .scrubber.horizontal .bar__buffer {\r\n height: 100%;\r\n }\r\n\r\n .scrubber.horizontal .bar__progress::after {\r\n position: absolute;\r\n background-color: ${styles_1.GlobalTheme.current.colors.neutrals.n600};\r\n right: -4px;\r\n width: 5px;\r\n height: 100%;\r\n content: \" \";\r\n }\r\n\r\n .scrubber.horizontal .bar__marker {\r\n width: 12px;\r\n }\r\n\r\n .scrubber.horizontal .bar {\r\n top: 50%;\r\n left: 0;\r\n transform: translateY(-50%);\r\n width: 100%;\r\n }\r\n\r\n .scrubber.vertical .bar__progress,\r\n .scrubber.vertical .bar__marker,\r\n .scrubber.vertical .bar__buffer {\r\n width: 100%;\r\n bottom: 0;\r\n }\r\n\r\n .scrubber.vertical .bar {\r\n top: 0;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .scrubber.vertical .bar__thumb {\r\n transform: translate(-50%, 50%);\r\n left: 50%;\r\n }\r\n\r\n .scrubber.hover.vertical .bar {\r\n width: 6px;\r\n }\r\n\r\n .scrubber.vertical .bar__marker {\r\n height: 100%;\r\n }\r\n `;\r\n return styles;\r\n}\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexports.Scrubber2 = (0, mobx_react_lite_1.observer)((props) => {\r\n //////////[ State ]///////////////////////////////////////////////////////////////////////////////\r\n const [context, setContext] = (0, react_2.useState)(props.context);\r\n (0, react_2.useEffect)(() => {\r\n if (context != props.context) {\r\n setContext(props.context);\r\n }\r\n }, [props.context]);\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n const styles = getStyles();\r\n const scrubberClassName = \"sb-sound-scrubber\" +\r\n (props.disabled === true ? \" sb-sound-scrubber-disabled\" : \"\");\r\n return ((0, react_1.jsx)(controls_1.Loader, { isLoadedWhen: (context === null || context === void 0 ? void 0 : context.duration) > 0 || (context === null || context === void 0 ? void 0 : context.hasError), isSmall: true },\r\n (0, react_1.jsx)(\"div\", { css: styles, className: scrubberClassName, \"aria-disabled\": props.disabled === true },\r\n (0, react_1.jsx)(\"span\", { className: \"sb-time-summary\" }, context.timeSummary),\r\n (0, react_1.jsx)(react_scrubber_1.Scrubber, { min: 0, max: context.duration, value: context.time, onScrubStart: (time) => context.jumpTo(time), onScrubEnd: (time) => context.jumpTo(time), onScrubChange: (time) => context.jumpTo(time) }))));\r\n});\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.downloadBlob = exports.setupAxiosAdapter = void 0;\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst axios_1 = __importDefault(require(\"axios\"));\r\nconst AxiosHttpAdapter_1 = require(\"./AxiosHttpAdapter\");\r\n/**\r\n * Configures the Soundbite API to use an Axios client for HTTP calls.\r\n **/\r\nfunction setupAxiosAdapter() {\r\n api_1.SoundbiteApiConfig.httpAdapter = new AxiosHttpAdapter_1.AxiosHttpAdapter();\r\n}\r\nexports.setupAxiosAdapter = setupAxiosAdapter;\r\n/**\r\n * Download the given link as a blob\r\n * @param medialUrl\r\n */\r\nfunction downloadBlob(medialUrl) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const response = yield axios_1.default.get(medialUrl, {\r\n method: \"GET\",\r\n responseType: \"blob\",\r\n });\r\n return response.data;\r\n });\r\n}\r\nexports.downloadBlob = downloadBlob;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Logger = void 0;\r\n// Enumeration of the various log levels\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"trace\"] = 0] = \"trace\";\r\n LogLevel[LogLevel[\"info\"] = 1] = \"info\";\r\n LogLevel[LogLevel[\"warning\"] = 2] = \"warning\";\r\n LogLevel[LogLevel[\"error\"] = 4] = \"error\";\r\n})(LogLevel || (LogLevel = {}));\r\n/**\r\n * Class for logging application runtime information\r\n */\r\nclass LoggerClass {\r\n /**\r\n * Responsible for applying all logging logic\r\n * @param level - log level associated with the message\r\n * @param msg - message to log\r\n * @param ex - error information (optional)\r\n */\r\n Log(level, msg, ex) {\r\n // Acquire current log level\r\n const minLogLevel = window.sbMinLogLevel | LogLevel.trace;\r\n // Determine whether to log the message\r\n if (level >= minLogLevel) {\r\n if (ex) {\r\n if (level >= LogLevel.error) {\r\n console.error(`[SB]-${msg}`, ex);\r\n }\r\n else if (level >= LogLevel.warning) {\r\n console.warn(`[SB]-${msg}`, ex);\r\n }\r\n else {\r\n console.log(`[SB]-${msg}`, ex);\r\n }\r\n }\r\n else {\r\n if (level >= LogLevel.error) {\r\n console.error(`[SB]-${msg}`);\r\n }\r\n else if (level >= LogLevel.warning) {\r\n console.warn(`[SB]-${msg}`);\r\n }\r\n else {\r\n console.log(`[SB]-${msg}`);\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Log a trace level message\r\n * @param msg - message to log\r\n */\r\n LogTrace(msg) {\r\n this.Log(LogLevel.trace, msg);\r\n }\r\n /**\r\n * Log an informational level message\r\n * @param msg - message to log\r\n */\r\n LogInfo(msg) {\r\n this.Log(LogLevel.info, msg);\r\n }\r\n /**\r\n * Log a warning level message\r\n * @param msg - message to log\r\n */\r\n LogWarning(msg) {\r\n this.Log(LogLevel.warning, msg);\r\n }\r\n /**\r\n * Log an error level message\r\n * @param msg - message to log\r\n * @param error - error information\r\n */\r\n LogError(msg, ex) {\r\n this.Log(LogLevel.error, msg, ex);\r\n }\r\n}\r\nexports.Logger = new LoggerClass();\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PublicError = void 0;\r\nconst Logger_1 = require(\"./Logger\");\r\n/**\r\n * Error class for communicating issues back to the user - because exceptions are the UI of APIs\r\n * This wraps lower-level errors such that the technical information is still available\r\n * */\r\nclass PublicError extends Error {\r\n static Log(error, innerError) {\r\n // TODO: Put in the real support page\r\n const errorJson = (error !== null && error !== void 0 ? error : innerError) != null\r\n ? JSON.stringify(error, null, 2)\r\n : \"UNKNOWN\";\r\n Logger_1.Logger.LogError(`Unexpected error. Consider emailing Support@Soundbite.Freshdesk.Com or visiting https://soundbite.ai/ ${errorJson}`, error);\r\n if (innerError)\r\n Logger_1.Logger.LogError(\"Additional Error Info:\", innerError);\r\n }\r\n constructor(innerError, name, message) {\r\n super(message);\r\n this.name = \"Application Error\";\r\n this.message = \"Echoes of the sound of silence...\";\r\n this.innerError = innerError;\r\n if (name)\r\n this.name = name;\r\n if (message)\r\n this.message = message;\r\n const apiError = this.ApiError;\r\n if (apiError != null && apiError.isUserSafe) {\r\n this.message = `${apiError.message}: ${apiError.statusCode} response trying to ${apiError.method} to ${apiError.path}`;\r\n }\r\n PublicError.Log(apiError, this.innerError);\r\n }\r\n get ApiError() {\r\n var _a, _b;\r\n const data = (_b = (_a = this.innerError) === null || _a === void 0 ? void 0 : _a.response) === null || _b === void 0 ? void 0 : _b.data;\r\n if (data == null) {\r\n return undefined;\r\n }\r\n if (!data.isApiError) {\r\n return undefined;\r\n }\r\n const apiError = data;\r\n console.error(\"Consider contacting Support@Soundbite.Freshdesk.Com regarding API error\", apiError);\r\n return apiError;\r\n }\r\n}\r\nexports.PublicError = PublicError;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ThemeProcessor = exports.defaultContrastPercentage = void 0;\r\nconst tinycolor2_1 = __importDefault(require(\"tinycolor2\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\nexports.defaultContrastPercentage = 10;\r\n/**\r\n * Takes a theme object and adjusts it to be complete if needed\r\n * This includes generating color variants if needed\r\n * */\r\nclass ThemeProcessor {\r\n /**\r\n * Augments the given theme with derived colors and any further processing\r\n * @param theme\r\n * @param constrastPercentage\r\n */\r\n static process(theme, constrastPercentage = exports.defaultContrastPercentage) {\r\n const processor = new ThemeProcessor(theme, constrastPercentage);\r\n processor.process();\r\n return processor;\r\n }\r\n constructor(theme, contrastPercentage = exports.defaultContrastPercentage) {\r\n this.theme = theme;\r\n this.contrastPercentage = contrastPercentage;\r\n this.originalTheme = api_1.Utils.clone(theme);\r\n this.isLight = (0, tinycolor2_1.default)(theme.colors.neutrals.min).isLight();\r\n }\r\n static upContrast(color, isLight, percent = exports.defaultContrastPercentage) {\r\n // If we don't have a color, then derive based on the basecolor\r\n let tinyColor = (0, tinycolor2_1.default)(color);\r\n if (isLight) {\r\n return tinyColor.darken(percent);\r\n }\r\n else {\r\n return tinyColor.lighten(percent);\r\n }\r\n }\r\n static downContrast(color, isLight, percent = exports.defaultContrastPercentage) {\r\n let tinyColor = (0, tinycolor2_1.default)(color);\r\n if (isLight) {\r\n return tinyColor.lighten(percent);\r\n }\r\n else {\r\n return tinyColor.darken(percent);\r\n }\r\n }\r\n upContrast(color, baseColor) {\r\n // If we have a color, then just use that\r\n if (color !== undefined)\r\n return color;\r\n const tinyColor = ThemeProcessor.upContrast(baseColor, this.isLight, this.contrastPercentage);\r\n return tinyColor.toHexString();\r\n }\r\n downContrast(color, baseColor) {\r\n // If we have a color, then just use that\r\n if (color !== undefined)\r\n return color;\r\n // If we don't have a color, then derive based on the basecolor\r\n const tinyColor = ThemeProcessor.downContrast(baseColor, this.isLight, this.contrastPercentage);\r\n return tinyColor.toHexString();\r\n }\r\n /**\r\n * Fixes up the Bootstrap colors in the\r\n * */\r\n bootstrap() {\r\n const bootstrap = this.theme.colors.bootstrap;\r\n bootstrap.dangerHigh = this.upContrast(bootstrap.dangerHigh, bootstrap.danger);\r\n bootstrap.dangerLow = this.downContrast(bootstrap.dangerLow, bootstrap.danger);\r\n bootstrap.defaultHigh = this.upContrast(bootstrap.defaultHigh, bootstrap.default);\r\n bootstrap.defaultLow = this.downContrast(bootstrap.defaultLow, bootstrap.default);\r\n bootstrap.infoHigh = this.upContrast(bootstrap.infoHigh, bootstrap.info);\r\n bootstrap.infoLow = this.downContrast(bootstrap.infoLow, bootstrap.info);\r\n bootstrap.primaryHigh = this.upContrast(bootstrap.primaryHigh, bootstrap.primary);\r\n bootstrap.primaryLow = this.downContrast(bootstrap.primaryLow, bootstrap.primary);\r\n bootstrap.secondaryHigh = this.upContrast(bootstrap.secondaryHigh, bootstrap.secondary);\r\n bootstrap.secondaryLow = this.downContrast(bootstrap.secondaryLow, bootstrap.secondary);\r\n bootstrap.successHigh = this.upContrast(bootstrap.successHigh, bootstrap.success);\r\n bootstrap.successLow = this.downContrast(bootstrap.successLow, bootstrap.success);\r\n bootstrap.warningHigh = this.upContrast(bootstrap.warningHigh, bootstrap.warning);\r\n bootstrap.warningLow = this.downContrast(bootstrap.warningLow, bootstrap.warning);\r\n }\r\n /**\r\n * Returns a Theme object based on the Theme given to the constructor with enhancements\r\n * */\r\n process() {\r\n this.bootstrap();\r\n return this.theme;\r\n }\r\n}\r\nexports.ThemeProcessor = ThemeProcessor;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ThemeTest = exports.ContrastAssert = exports.RelativeContrastAssert = exports.ThemeAssertBase = exports.findContrast = exports.ratioForLevel = exports.ContrastLevel = void 0;\r\nconst tinycolor2_1 = __importDefault(require(\"tinycolor2\"));\r\n/**\r\n * Enum of the contrast level expected in the colors\r\n * */\r\nvar ContrastLevel;\r\n(function (ContrastLevel) {\r\n /** */\r\n ContrastLevel[\"None\"] = \"None\";\r\n /** AA Contrast */\r\n ContrastLevel[\"Minimum\"] = \"AA\";\r\n /** AAA Contrast */\r\n ContrastLevel[\"Enhanced\"] = \"AAA\";\r\n})(ContrastLevel = exports.ContrastLevel || (exports.ContrastLevel = {}));\r\n/**\r\n * Returns the target readability ratio for a given contrast level\r\n * For more strict ratings between colors, try https://webaim.org/resources/contrastchecker/\r\n * They basically recommends 4.5 for AA (assuming presence of small text) and 7 for AAA\r\n * @param contrast\r\n */\r\nfunction ratioForLevel(contrast) {\r\n switch (contrast) {\r\n case ContrastLevel.None:\r\n return 1;\r\n case ContrastLevel.Minimum:\r\n return 3; // Assumes no \"small\" text in the interface, so this is a true minimum\r\n case ContrastLevel.Enhanced:\r\n return 7;\r\n }\r\n}\r\nexports.ratioForLevel = ratioForLevel;\r\n/**\r\n * Given two colors, finds the target ratio for the second color\r\n * @param baseColor\r\n * @param targetColor\r\n * @param targetRatio\r\n */\r\nfunction findContrast(baseColor, targetColor, targetRatio) {\r\n // Setup\r\n const maxCount = 50;\r\n const increment = 0.5;\r\n let count = 0;\r\n let candidate = (0, tinycolor2_1.default)(targetColor);\r\n const baseIsLight = (0, tinycolor2_1.default)(baseColor).isLight();\r\n // Iterate to find the target contrast\r\n while (count < maxCount &&\r\n tinycolor2_1.default.readability(baseColor, candidate) < targetRatio) {\r\n const candidateTinycolor = (0, tinycolor2_1.default)(candidate);\r\n candidate = baseIsLight\r\n ? candidateTinycolor.darken(increment)\r\n : candidateTinycolor.lighten(increment);\r\n ++count;\r\n }\r\n return candidate.toHexString().toUpperCase();\r\n}\r\nexports.findContrast = findContrast;\r\n/** Base class with fields and methods for ThemeAssert */\r\nclass ThemeAssertBase {\r\n assert() {\r\n return true;\r\n }\r\n}\r\nexports.ThemeAssertBase = ThemeAssertBase;\r\n/** Asserts that two colors */\r\nclass RelativeContrastAssert extends ThemeAssertBase {\r\n constructor(baseColor, higherColor, lowerColor, description, isLogging = true) {\r\n super();\r\n this.baseColor = baseColor;\r\n this.higherColor = higherColor;\r\n this.lowerColor = lowerColor;\r\n this.description = description;\r\n this.isLogging = isLogging;\r\n }\r\n assert() {\r\n const baseToA = tinycolor2_1.default.readability(this.baseColor, this.lowerColor);\r\n const baseToB = tinycolor2_1.default.readability(this.baseColor, this.higherColor);\r\n if (baseToA < baseToB) {\r\n return true;\r\n }\r\n else {\r\n const targetRatio = baseToA * 1.05;\r\n const suggestedColor = findContrast(this.baseColor, this.higherColor, targetRatio);\r\n this.message = `Relative contrast fail ${this.description}: ${this.lowerColor.toUpperCase()} is higher contrast than ${this.higherColor.toUpperCase()}; try something like ${suggestedColor.toUpperCase()}`;\r\n if (this.isLogging) {\r\n console.warn(this.message);\r\n }\r\n return false;\r\n }\r\n }\r\n}\r\nexports.RelativeContrastAssert = RelativeContrastAssert;\r\n/** Asserting the contrast ratio of two colors */\r\nclass ContrastAssert extends ThemeAssertBase {\r\n constructor(colorA, colorB, description, level = ContrastLevel.Minimum, isLogging = true) {\r\n super();\r\n this.colorA = colorA;\r\n this.colorB = colorB;\r\n this.description = description;\r\n this.level = level;\r\n this.isLogging = isLogging;\r\n }\r\n assert() {\r\n return this.checkContrast(this.colorA, this.colorB, this.description, this.level);\r\n }\r\n checkContrast(colorA, colorB, description, level = ContrastAssert.defaultLevel) {\r\n const contrast = tinycolor2_1.default.readability(colorA, colorB);\r\n const targetRatio = ratioForLevel(level);\r\n if (contrast < targetRatio) {\r\n const candidate = findContrast(colorA, colorB, targetRatio);\r\n this.message = `Contrast fail ${description}: ${colorA.toUpperCase()} ${colorB.toUpperCase()} has a contrast of ${contrast} which is not ${level}; consider ${candidate}`;\r\n if (this.isLogging) {\r\n console.warn(this.message);\r\n }\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n}\r\nexports.ContrastAssert = ContrastAssert;\r\nContrastAssert.defaultLevel = ContrastLevel.Minimum;\r\n/**\r\n * A Composite class of ThemeTest, which runs over a grouping of them\r\n * */\r\nclass ThemeTest extends ThemeAssertBase {\r\n static assert(theme, isLogging = true, level = ContrastLevel.Minimum) {\r\n const checker = new ThemeTest(theme, isLogging, level);\r\n checker.assert();\r\n return checker;\r\n }\r\n constructor(theme, isLogging = true, level = ContrastLevel.Minimum) {\r\n super();\r\n this.theme = theme;\r\n this.isLogging = isLogging;\r\n this.level = level;\r\n this.asserts = [];\r\n this.isValid = true;\r\n this.addNeutral();\r\n this.addBootstrap();\r\n }\r\n add(assert) {\r\n this.asserts.push(assert);\r\n }\r\n addContrastAssert(colorA, colorB, desc, level = this.level) {\r\n const assert = new ContrastAssert(colorA, colorB, desc, level);\r\n this.add(assert);\r\n }\r\n addRelativeContrastAssert(baseColor, higherColor, lowerColor, desc) {\r\n const assert = new RelativeContrastAssert(baseColor, higherColor, lowerColor, desc);\r\n this.add(assert);\r\n }\r\n addNeutral() {\r\n this.addContrastAssert(this.theme.colors.neutrals.min, this.theme.colors.neutrals.max, \"Min to Max - Must be AAA\", ContrastLevel.Enhanced);\r\n // Neutral steps\r\n this.addContrastAssert(this.theme.colors.neutrals.min, this.theme.colors.neutrals.n600, \"min to 600\");\r\n this.addContrastAssert(this.theme.colors.neutrals.n100, this.theme.colors.neutrals.n700, \"100 to 700\");\r\n this.addContrastAssert(this.theme.colors.neutrals.n200, this.theme.colors.neutrals.n800, \"200 to 800\");\r\n this.addContrastAssert(this.theme.colors.neutrals.n300, this.theme.colors.neutrals.n900, \"300 to 900\");\r\n this.addContrastAssert(this.theme.colors.neutrals.n400, this.theme.colors.neutrals.max, \"400 to max\");\r\n // Typography\r\n this.addContrastAssert(this.theme.colors.neutrals.background, this.theme.colors.neutrals.n900, \"Background to 900\");\r\n this.addContrastAssert(this.theme.colors.neutrals.midground, this.theme.colors.neutrals.n900, \"Midground to 900\");\r\n this.addContrastAssert(this.theme.colors.neutrals.foreground, this.theme.colors.neutrals.n900, \"Foreground to 900\");\r\n }\r\n checkHues() { }\r\n addBootstrap() {\r\n // Precendence of CTA colors\r\n this.addRelativeContrastAssert(this.theme.colors.neutrals.min, this.theme.colors.bootstrap.primary, this.theme.colors.bootstrap.secondary, \"Primary to Secondary\");\r\n this.addRelativeContrastAssert(this.theme.colors.neutrals.min, this.theme.colors.bootstrap.primary, this.theme.colors.bootstrap.default, \"Primary to Default\");\r\n this.addRelativeContrastAssert(this.theme.colors.neutrals.min, this.theme.colors.bootstrap.primary, this.theme.colors.bootstrap.info, \"Primary to Info\");\r\n this.addRelativeContrastAssert(this.theme.colors.neutrals.min, this.theme.colors.bootstrap.primary, this.theme.colors.bootstrap.success, \"Primary to Success\");\r\n this.addRelativeContrastAssert(this.theme.colors.neutrals.min, this.theme.colors.bootstrap.primary, this.theme.colors.bootstrap.warning, \"Primary to Warning\");\r\n this.addRelativeContrastAssert(this.theme.colors.neutrals.min, this.theme.colors.bootstrap.primary, this.theme.colors.bootstrap.danger, \"Primary to Danger\");\r\n // Readability of buttons, etc\r\n this.addContrastAssert(this.theme.colors.neutrals.min, this.theme.colors.bootstrap.primary, \"Min to Primary\");\r\n this.addContrastAssert(this.theme.colors.neutrals.min, this.theme.colors.bootstrap.secondary, \"Min to Secondary\");\r\n this.addContrastAssert(this.theme.colors.neutrals.min, this.theme.colors.bootstrap.default, \"Min to Default\");\r\n this.addContrastAssert(this.theme.colors.neutrals.min, this.theme.colors.bootstrap.info, \"Min to Info\");\r\n this.addContrastAssert(this.theme.colors.neutrals.min, this.theme.colors.bootstrap.success, \"Min to Success\");\r\n this.addContrastAssert(this.theme.colors.neutrals.min, this.theme.colors.bootstrap.warning, \"Min to Warning\");\r\n this.addContrastAssert(this.theme.colors.neutrals.min, this.theme.colors.bootstrap.danger, \"Min to Danger\");\r\n }\r\n /**\r\n * Runs all check rules, emits warnings when issues are found, and returns true if all rules pass - otherwise false\r\n * */\r\n assert() {\r\n if (this.level === ContrastLevel.None) {\r\n this.isValid;\r\n }\r\n // Run all rules and return false if a single one fails\r\n for (const test of this.asserts) {\r\n const pass = test.assert();\r\n if (!pass) {\r\n this.isValid = false;\r\n }\r\n }\r\n return this.isValid;\r\n }\r\n}\r\nexports.ThemeTest = ThemeTest;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MemberStore = void 0;\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst mobx_1 = require(\"mobx\");\r\nconst GroupStore_1 = require(\"./GroupStore\");\r\n/**\r\n * MobX store class containing states and actions for members\r\n */\r\nclass MemberStoreClass {\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////////\r\n constructor() {\r\n (0, mobx_1.makeObservable)(this, {});\r\n }\r\n //////////[ Observable Data Properties ]//////////////////////////////////////////////////////////\r\n /* None */\r\n //////////[ Actions ]/////////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Async read the members of the given group in the given org\r\n * @param orgRoute\r\n * @param groupRoute\r\n */\r\n readMembersAsync(orgRoute, groupRoute) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const members = yield api_1.MembersService.readAllAsync_Obsolete(orgRoute, groupRoute);\r\n return members;\r\n });\r\n }\r\n /**\r\n * Adds a new group member\r\n * @param orgRoute - route of the organization with which the group/member are associated.\r\n * @param groupRoute - route of the group with which to associated the user.\r\n * @param invites - identifies the user to invite to the group.\r\n */\r\n addMembersAsync(orgRoute, groupRoute, invites) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield api_1.MembersService.inviteAsync(orgRoute, groupRoute, invites);\r\n yield GroupStore_1.GroupStore.onAnyMemberChanged(orgRoute, groupRoute);\r\n });\r\n }\r\n /**\r\n * Stores updates to the specified member.\r\n * @param orgRoute - route of the organization with which the group/member are associated.\r\n * @param groupRoute - route of the group with which the user is associated.\r\n * @param member - member with updates to persist.\r\n */\r\n updateMemberAsync(orgRoute, groupRoute, member) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const updatedMember = yield api_1.MembersService.updateAsync(orgRoute, groupRoute, member.route, member);\r\n yield GroupStore_1.GroupStore.onAnyMemberChanged(orgRoute, groupRoute);\r\n return updatedMember;\r\n });\r\n }\r\n /**\r\n * Deletes the specified member from a group.\r\n * @param orgRoute - route of the organization with which the group/member are associated.\r\n * @param groupRoute - route of the group from which the member should be deleted.\r\n * @param memberRoute - route of the member to delete.\r\n */\r\n deleteMemberAsync(orgRoute, groupRoute, memberRoute) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield api_1.MembersService.deleteAsync(orgRoute, groupRoute, memberRoute);\r\n yield GroupStore_1.GroupStore.onAnyMemberChanged(orgRoute, groupRoute);\r\n });\r\n }\r\n}\r\n// Export a singleton instance of the store\r\nexports.MemberStore = new MemberStoreClass();\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PersonStore = void 0;\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst mobx_1 = require(\"mobx\");\r\n/**\r\n * MobX store class containing states and actions for people\r\n */\r\nclass PersonStoreClass {\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////////\r\n constructor() {\r\n //////////[ Observable Data Properties ]//////////////////////////////////////////////////////////\r\n this.lastOrgRoute = undefined;\r\n (0, mobx_1.makeObservable)(this, {\r\n // Actions\r\n deletePersonAsync: mobx_1.action,\r\n invitePersonAsync: mobx_1.action,\r\n readAllAsync: mobx_1.action,\r\n reset: mobx_1.action,\r\n updatePersonAsync: mobx_1.action,\r\n });\r\n }\r\n //////////[ Actions ]/////////////////////////////////////////////////////////////////////////////\r\n /** Clear the state */\r\n reset() {\r\n this.lastOrgRoute = undefined;\r\n }\r\n /** Based on the last arguments, reloads the properties for this store */\r\n refresh() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // NOTHING\r\n });\r\n }\r\n readAllAsync(orgRoute, pageRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const ret = yield api_1.PeopleService.readAllAsync(orgRoute, pageRequest);\r\n this.lastOrgRoute = orgRoute;\r\n return ret;\r\n });\r\n }\r\n /**\r\n * Stores updates to the specified person.\r\n * @param orgRoute - route of the organization with which the person is associated.\r\n * @param person - person with updates to persist.\r\n */\r\n updatePersonAsync(orgRoute, person) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const ret = yield api_1.PeopleService.updateAsync(orgRoute, person.route, person);\r\n return ret;\r\n });\r\n }\r\n /**\r\n * Deletes the specified person.\r\n * @param orgRoute - route of the organization with which the person is associated.\r\n * @param personRoute - route of the person to delete.\r\n */\r\n deletePersonAsync(orgRoute, personRoute) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield api_1.PeopleService.delete(orgRoute, personRoute);\r\n if (orgRoute === this.lastOrgRoute) {\r\n yield this.refresh();\r\n }\r\n });\r\n }\r\n /**\r\n * Invites a person to an organization.\r\n * @param orgRoute - route of the organization to which people should be invited.\r\n * @param invites - person invitation information.\r\n */\r\n invitePersonAsync(orgRoute, invites) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const ret = yield api_1.PeopleService.inviteAsync(orgRoute, invites);\r\n if (orgRoute === this.lastOrgRoute) {\r\n this.refresh();\r\n }\r\n return ret;\r\n });\r\n }\r\n}\r\n// Export a singleton instance of the store\r\nexports.PersonStore = new PersonStoreClass();\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SeriesStore = void 0;\r\nconst mobx_1 = require(\"mobx\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst SessionStore_1 = require(\"./SessionStore\");\r\n/**\r\n * MobX store class containing states and actions for series\r\n */\r\nclass SeriesStoreClass {\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////////\r\n constructor() {\r\n //////////[ Observable Data Properties ]//////////////////////////////////////////////////////////\r\n /* None */\r\n //////////[ Cache Members ]///////////////////////////////////////////////////////////////////////\r\n this.seriesCache = {};\r\n (0, mobx_1.makeObservable)(this, {});\r\n }\r\n /**\r\n * Responsible for clearing ALL cached data in the store.\r\n */\r\n clearCache() {\r\n this.seriesCache = {};\r\n }\r\n /**\r\n * Creates a key used for caching operations\r\n * @param orgRoute - route of the organization with which the session is associated\r\n * @param seriesRoute - route of the series\r\n */\r\n getCacheKey(orgRoute, seriesRoute) {\r\n return `${orgRoute}-${seriesRoute}`;\r\n }\r\n //////////[ Actions ]/////////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Gets the specified series.\r\n * @param orgRoute - route of the organization with which the series is associated.\r\n * @param seriesRoute - route of the series to acquire.\r\n * @param allowCache - (optional) flag indicating whether caching is allowed (default:true)\r\n */\r\n readSeriesAsync(orgRoute, seriesRoute, allowCache = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let series = allowCache\r\n ? this.seriesCache[this.getCacheKey(orgRoute, seriesRoute)]\r\n : null;\r\n if (!series) {\r\n series = yield api_1.SeriesService.readAsync(orgRoute, seriesRoute);\r\n this.seriesCache[this.getCacheKey(orgRoute, seriesRoute)] = series;\r\n }\r\n return series;\r\n });\r\n }\r\n /**\r\n * Updates the specified series.\r\n * @param orgRoute - route of the organization with which the series is associated.\r\n * @param series - updated series to save.\r\n */\r\n updateSeriesAsync(orgRoute, series) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // Not Implemented?\r\n });\r\n }\r\n /**\r\n * Deletes the specified series.\r\n * @param orgRoute - route of the organization with which the series is assocaited.\r\n * @param seriesRoute - route of the series to delete.\r\n */\r\n deleteSeriesAsync(orgRoute, seriesRoute) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield api_1.SeriesService.deleteAsync(orgRoute, seriesRoute);\r\n // Remove from local\r\n SessionStore_1.SessionStore.orgSeries = (_a = SessionStore_1.SessionStore.orgSeries) === null || _a === void 0 ? void 0 : _a.filter((i) => i.route !== seriesRoute);\r\n SessionStore_1.SessionStore.groupSeries = (_b = SessionStore_1.SessionStore.groupSeries) === null || _b === void 0 ? void 0 : _b.filter((i) => i.route !== seriesRoute);\r\n delete this.seriesCache[this.getCacheKey(orgRoute, seriesRoute)];\r\n });\r\n }\r\n}\r\n// Export a singleton instance of the store\r\nexports.SeriesStore = new SeriesStoreClass();\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionStore = void 0;\r\nconst axios_1 = __importDefault(require(\"axios\"));\r\nconst mobx_1 = require(\"mobx\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst ConcurrentCache_1 = require(\"../modules/ConcurrentCache\");\r\n/**\r\n * MobX store class containing states and actions for sessions.\r\n */\r\nclass SessionStoreClass {\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////////\r\n constructor() {\r\n this.orgFeed = undefined;\r\n this.groupFeed = undefined;\r\n this.orgSeries = undefined;\r\n this.groupSeries = undefined;\r\n //////////[ Cache Members ]///////////////////////////////////////////////////////////////////////\r\n this.sessionDetailsCache = new ConcurrentCache_1.ConcurrentCache();\r\n (0, mobx_1.makeObservable)(this, {\r\n // Observables\r\n orgFeed: mobx_1.observable,\r\n orgSeries: mobx_1.observable,\r\n groupFeed: mobx_1.observable,\r\n groupSeries: mobx_1.observable,\r\n // Actions\r\n acknowledgeSessionAsync: mobx_1.action,\r\n createSessionAsync: mobx_1.action,\r\n deleteSessionAsync: mobx_1.action,\r\n readOrgFeedAsync: mobx_1.action,\r\n readOrgSeriesAsync: mobx_1.action,\r\n readGroupFeedAsync: mobx_1.action,\r\n readGroupSeriesAsync: mobx_1.action,\r\n updateParticipantStateAsync: mobx_1.action,\r\n updateSessionAsync: mobx_1.action,\r\n });\r\n }\r\n //////////[ Private Methods ]//////////////////////////////////////////////////////////\r\n /**\r\n * If the clip is not yet ready, then it checks if the API says it's ready now\r\n * It will not only return the current state, but also accumulate it into the given UploadResult to enable seamless retry\r\n * WARNING: Calling this may have a side-effect of just-in-time processing the workflow for a clip, but that behavior is still async and \"eventually consistent\", this it is not 1:1 the same as forcing a processing step on the clip/prompt/session\r\n * @param result\r\n */\r\n clipState(result) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // This may have already been determined as ready by successful form upload or a retry\r\n if (result.isReady || result.clipDraft == null) {\r\n return api_1.ClipState.Unknown;\r\n }\r\n // Check the file arrived\r\n const state = yield api_1.ClipService.stateAsync(result.clipDraft.orgRoute, result.clipDraft.sessionRoute, result.clipDraft.promptRoute, result.clipDraft.clipRoute);\r\n result.clipDraft.state = state;\r\n result.isReady = state === api_1.ClipState.Ready;\r\n return state;\r\n });\r\n }\r\n /**\r\n * Unless you're implementing a custom upload flow, you can use this.uploadClipAsync to accomplish a default clip create and upload lifecycle\r\n * Uploads the clip to storage based on current progress and stream size; supports retry via checking the given UploadResult\r\n * result.clipDraft.uploadUrl must contain a value, including an appended SAS token with upload permissions\r\n * newClip.Stream must contain a value and its size must be larger than SessionStoreClass.maxDirectUploadSize\r\n * If the clip is less than SessionStoreClass.maxDirectUploadSize, you should upload it directly via ClipService.createAsync\r\n * @param result\r\n * @param newClip\r\n * @param onProgress\r\n */\r\n uploadToStorageIfNeeded(result, newClip, onProgress) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const isStorageUpload = !result.isUploaded &&\r\n newClip.stream != null &&\r\n newClip.stream.size > SessionStoreClass.maxDirectUploadSize;\r\n // This may already be upload or simply doesn't need it\r\n if (((_a = result.clipDraft) === null || _a === void 0 ? void 0 : _a.uploadUrl) == null || !isStorageUpload) {\r\n return;\r\n }\r\n // We only indirect upload if we have a stream and a place to put it\r\n // TODO: Consider if it would be better to use the Azure SDK\r\n yield axios_1.default.put(result.clipDraft.uploadUrl, newClip.stream, {\r\n headers: {\r\n \"x-ms-blob-type\": \"BlockBlob\",\r\n },\r\n onUploadProgress: (progressEvent) => {\r\n if (onProgress != null) {\r\n const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);\r\n let newPercent = percentCompleted > 95 ? 95 : percentCompleted;\r\n newPercent = newPercent < 10 ? 10 : newPercent;\r\n // We have one more state check step, so we max at 99 for the upload\r\n onProgress(newPercent);\r\n }\r\n },\r\n });\r\n result.isReady = false;\r\n result.isUploaded = true;\r\n });\r\n }\r\n /**\r\n * Unless you're implementing a custom upload flow, you can use this.uploadClipAsync to accomplish a default clip create and upload lifecycle\r\n * Creates a new clip record via API if one does not already exist in the given UploadResult\r\n * If newClip.stream != null exists and newClip.stream.size <= SessionStoreClass.maxDirectUploadSize, this direct uploads the clip data\r\n * Otherwise, you should augment this call with uploadToStorageIfNeeded to perform upload direct to storage using this.uploadToStorageIfNeeded\r\n * @param result\r\n * @param newClip\r\n * @param onProgress\r\n * @param orgRoute\r\n * @param sessionRoute\r\n * @param promptRoute\r\n */\r\n createClipIfNeeded(result, newClip, orgRoute, sessionRoute, promptRoute, mediaEffects, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (result.clipDraft != null) {\r\n return;\r\n }\r\n var { formData, isFormUpload } = this.formDataForClip(newClip, mediaEffects);\r\n if (isFormUpload && onProgress != null) {\r\n onProgress(10);\r\n }\r\n // TODO: Impement progress callback when isApiUpload\r\n result.clipDraft = yield api_1.ClipService.createAsync(orgRoute, sessionRoute, promptRoute, formData, {\r\n onProgress: (percent) => {\r\n if (!isFormUpload || onProgress == null) {\r\n return;\r\n }\r\n const newPercent = percent < 90 ? percent : 90;\r\n onProgress(newPercent);\r\n },\r\n });\r\n result.isUploaded = isFormUpload;\r\n result.isReady = result.clipDraft.state === api_1.ClipState.Ready;\r\n });\r\n }\r\n /**\r\n * Analyzes the NewClip object, returning the related form data and a flag indicating if it already contains the clip\r\n * @param newClip\r\n * @param onProgress\r\n */\r\n formDataForClip(newClip, mediaEffects) {\r\n var _a, _b;\r\n let formData = new FormData();\r\n formData.append(\"fileType\", newClip.fileType.toString());\r\n formData.append(\"clipType\", newClip.clipType.toString());\r\n formData.append(\"participantRole\", newClip.participantRole.toString());\r\n formData.append(\"seconds\", (_b = (_a = newClip.seconds) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : \"0\");\r\n formData.append(\"mediaEffects\", JSON.stringify(mediaEffects));\r\n const isFormUpload = newClip.stream != null &&\r\n newClip.stream.size <= SessionStoreClass.maxDirectUploadSize;\r\n // API upload is the most reliable for us\r\n if (newClip.stream != null && isFormUpload) {\r\n // We only upload directly if we have a stream and it is small\r\n formData.append(\"clip\", newClip.stream, \"clip\");\r\n }\r\n return { formData, isFormUpload };\r\n }\r\n /**\r\n * Responsible for clearing ALL cached data in the store.\r\n */\r\n resetCache() {\r\n this.sessionDetailsCache.clear();\r\n }\r\n /** Resets the store such that it's ready to target a new organization */\r\n reset() {\r\n this.resetCache();\r\n this.lastOrgRoute = undefined;\r\n this.lastGroupRoute = undefined;\r\n // Feed\r\n this.orgFeed = undefined;\r\n this.groupFeed = undefined;\r\n // Series\r\n this.orgSeries = undefined;\r\n this.groupSeries = undefined;\r\n }\r\n /** Based on current data, refreshes the value of each property in this object based on its last state */\r\n refresh() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.resetCache();\r\n const promises = [];\r\n const orgRoute = this.lastOrgRoute;\r\n const orgSecurityType = this.lastOrgSecurityType || api_1.SessionSecurityType.Protected;\r\n const groupRoute = this.lastGroupRoute;\r\n const groupSecurityType = this.lastGroupSecurityType || api_1.SessionSecurityType.Protected;\r\n // Feed\r\n if (orgRoute != null) {\r\n promises.push(this.readOrgFeedAsync(orgRoute, orgSecurityType, false));\r\n if (groupRoute != null) {\r\n promises.push(this.readGroupFeedAsync(orgRoute, groupRoute, groupSecurityType, false));\r\n }\r\n }\r\n // Series\r\n if (orgRoute != null) {\r\n promises.push(this.readOrgSeriesAsync(orgRoute, false));\r\n if (groupRoute != null) {\r\n promises.push(this.readGroupSeriesAsync(orgRoute, groupRoute, false));\r\n }\r\n }\r\n yield Promise.all(promises);\r\n });\r\n }\r\n /**\r\n * Creates a key used for caching operations\r\n * @param orgRoute - route of the organization with which the session is associated\r\n * @param sessionRoute - route of the session to delete\r\n */\r\n getCacheKey(orgRoute, sessionRoute) {\r\n return `${orgRoute}-${sessionRoute}`;\r\n }\r\n //////////[ Actions ]/////////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Async read the session feed for the given org relevant to the current user\r\n * @param orgRoute\r\n * @param allowCache Default to TRUE\r\n */\r\n readOrgFeedAsync(orgRoute, sessionSecurity, allowCache = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.lastOrgRoute === orgRoute &&\r\n this.lastOrgSecurityType == sessionSecurity &&\r\n this.orgFeed != null &&\r\n allowCache) {\r\n return this.orgFeed;\r\n }\r\n // Reset\r\n this.lastOrgRoute = undefined;\r\n this.lastOrgSecurityType = undefined;\r\n this.orgFeed = undefined;\r\n // Load\r\n const ret = sessionSecurity === api_1.SessionSecurityType.Public\r\n ? yield api_1.SessionsService.readPublicFeedAsync(orgRoute)\r\n : yield api_1.SessionsService.readFeedAsync(orgRoute);\r\n this.lastOrgRoute = orgRoute;\r\n this.lastOrgSecurityType = sessionSecurity;\r\n this.orgFeed = ret;\r\n return ret;\r\n });\r\n }\r\n /**\r\n * Async read the feed for the given group in the given org\r\n * @param orgRoute\r\n * @param groupRoute\r\n * @param allowCache\r\n */\r\n readGroupFeedAsync(orgRoute, groupRoute, sessionSecurity, allowCache = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.lastOrgRoute === orgRoute &&\r\n this.lastGroupRoute === groupRoute &&\r\n this.lastGroupSecurityType === sessionSecurity &&\r\n this.groupFeed != null &&\r\n allowCache) {\r\n return this.groupFeed;\r\n }\r\n // Reset\r\n this.lastGroupRoute = undefined;\r\n this.lastOrgRoute = undefined;\r\n this.lastGroupSecurityType = undefined;\r\n this.groupFeed = undefined;\r\n // Load\r\n const ret = sessionSecurity === api_1.SessionSecurityType.Public\r\n ? yield api_1.SessionsService.readGroupPublicFeedAsync(orgRoute, groupRoute)\r\n : yield api_1.SessionsService.readGroupFeedAsync(orgRoute, groupRoute);\r\n this.lastOrgRoute = orgRoute;\r\n this.lastGroupRoute = groupRoute;\r\n this.lastGroupSecurityType = sessionSecurity;\r\n this.groupFeed = ret;\r\n return ret;\r\n });\r\n }\r\n /**\r\n * Async read the series for the given org relevant to the current user\r\n * @param orgRoute\r\n * @param allowCache Default to TRUE\r\n */\r\n readOrgSeriesAsync(orgRoute, allowCache = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.lastOrgRoute === orgRoute &&\r\n this.orgSeries != null &&\r\n allowCache) {\r\n return this.orgSeries;\r\n }\r\n // reset\r\n this.lastOrgRoute = undefined;\r\n this.orgSeries = undefined;\r\n // load\r\n const ret = yield api_1.SeriesService.readAllAsync(orgRoute);\r\n this.lastOrgRoute = orgRoute;\r\n this.orgSeries = ret;\r\n return ret;\r\n });\r\n }\r\n /**\r\n * Async read the series for the given group in the given org\r\n * @param orgRoute\r\n * @param groupRoute\r\n * @param allowCache\r\n */\r\n readGroupSeriesAsync(orgRoute, groupRoute, allowCache = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.lastOrgRoute === orgRoute &&\r\n this.lastGroupRoute === groupRoute &&\r\n this.groupSeries != null &&\r\n allowCache) {\r\n return this.groupSeries;\r\n }\r\n // Reset\r\n this.lastOrgRoute = undefined;\r\n this.lastGroupRoute = undefined;\r\n this.groupSeries = undefined;\r\n // Load\r\n const ret = yield api_1.SeriesService.readAllGroupAsync(orgRoute, groupRoute);\r\n this.lastOrgRoute = orgRoute;\r\n this.lastGroupRoute = groupRoute;\r\n this.groupSeries = ret;\r\n return ret;\r\n });\r\n }\r\n /**\r\n * Acknowledges the session as having been listent to by the current user.\r\n * @param orgRoute - route of the organization with which the session is associated\r\n * @param sessionRoute - route of the session to acknowledge\r\n * @param session - (optional) reference to the session to update with updated participant state\r\n */\r\n acknowledgeSessionAsync(orgRoute, sessionRoute, session, removeFromFeeds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const state = {\r\n participantRole: api_1.ParticipantRole.Unknown,\r\n participantState: api_1.ParticipantState.Consumed,\r\n };\r\n yield this.updateParticipantStateAsync(orgRoute, sessionRoute, state, session);\r\n // Remove the acknowledged session from the myFeed list\r\n if (removeFromFeeds) {\r\n (0, mobx_1.runInAction)(() => {\r\n var _a, _b;\r\n this.orgFeed = (_a = this.orgFeed) === null || _a === void 0 ? void 0 : _a.filter((i) => i.route !== sessionRoute);\r\n this.groupFeed = (_b = this.groupFeed) === null || _b === void 0 ? void 0 : _b.filter((i) => i.route !== sessionRoute);\r\n });\r\n }\r\n });\r\n }\r\n /**\r\n * Creates a new session.\r\n * @param orgRoute - route of the organization with which the session is associated.\r\n * @param newSession - session creation information.\r\n * @param newClip - initial recording to associate with the session.\r\n */\r\n createSessionAsync(orgRoute, newSession, clip, mediaEffects, onProgress, retry) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const result = retry !== null && retry !== void 0 ? retry : {};\r\n try {\r\n // Calling this when we already have a full session should do nothing\r\n if (result.session != null) {\r\n return result;\r\n }\r\n // Create draft if we don't already have one\r\n if (result.sessionDraft == null) {\r\n result.sessionDraft = yield api_1.SessionsService.createAsync(orgRoute, newSession);\r\n }\r\n if (result.sessionDraft == null) {\r\n console.warn(\"Create session draft failed\");\r\n return result;\r\n }\r\n // Attempt the upload and abort if it's not a complete success, capturing all draft objects)\r\n result.upload = yield this.uploadClipAsync(orgRoute, result.sessionDraft.route, result.sessionDraft.prompts[0].route, clip, mediaEffects, onProgress, result === null || result === void 0 ? void 0 : result.upload);\r\n if (result.upload == null ||\r\n result.upload.clipDraft == null ||\r\n !((_a = result.upload) === null || _a === void 0 ? void 0 : _a.isReady)) {\r\n console.warn(\"Clip upload incomplete\");\r\n return result;\r\n }\r\n // We pull the session again so this time we pick up all the prompts and links\r\n result.session = yield this.readSessionDetailsAsync(orgRoute, result.sessionDraft.route, false);\r\n if (result.session == null) {\r\n console.warn(\"Reading final session returned empty\");\r\n return result;\r\n }\r\n this.sessionDetailsCache.set(this.getCacheKey(orgRoute, result.session.route), result.session);\r\n this.refresh();\r\n }\r\n catch (err) {\r\n result.error = err;\r\n }\r\n return result;\r\n });\r\n }\r\n /**\r\n * Deletes the specified session\r\n * @param orgRoute - route of the organization with which the session is associated\r\n * @param sessionRoute - route of the session to delete\r\n */\r\n deleteSessionAsync(orgRoute, sessionRoute) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield api_1.SessionsService.deleteAsync(orgRoute, sessionRoute);\r\n // remove from local\r\n this.orgFeed = (_a = this.orgFeed) === null || _a === void 0 ? void 0 : _a.filter((i) => i.route !== sessionRoute);\r\n this.groupFeed = (_b = this.groupFeed) === null || _b === void 0 ? void 0 : _b.filter((i) => i.route !== sessionRoute);\r\n this.sessionDetailsCache.delete(this.getCacheKey(orgRoute, sessionRoute));\r\n });\r\n }\r\n /**\r\n * Updates the participant state\r\n * @param orgRoute - route of the organization with which the session is associated\r\n * @param sessionRoute - route of the session to acknowledge\r\n * @param state - participant state update information\r\n * @param session - (optional) reference to the session to update with updated participant state\r\n */\r\n updateParticipantStateAsync(orgRoute, sessionRoute, state, session) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield api_1.SessionsService.updateStateAsync(orgRoute, sessionRoute, state);\r\n // Update the session on the client - this logic needs to sync with Server-Side ISessionService.UpdateStateAsync\r\n if (session) {\r\n const participants = state.participantRole > api_1.ParticipantState.Unknown\r\n ? session.participants\r\n : session.participants.filter((p) => p.participantRole == state.participantRole);\r\n participants.forEach((p) => (p.participantState = state.participantState));\r\n }\r\n });\r\n }\r\n /**\r\n * Stores updates to the specified session\r\n * @param orgRoute - route of the organization with which the session is associated\r\n * @param sessionRoute - route of the session to update\r\n * @param session - updated session to persist\r\n */\r\n updateSessionAsync(orgRoute, sessionRoute, session) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const result = yield api_1.SessionsService.updateAsync(orgRoute, sessionRoute, session);\r\n this.sessionDetailsCache.set(this.getCacheKey(orgRoute, result.route), result);\r\n return result;\r\n });\r\n }\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Retrieves the specified session\r\n * @param orgRoute - route of the organization with which the session is associated\r\n * @param sessionRoute - route of the session to retrieve\r\n * @param allowCache - (optional) flag indicating whether caching is allowed (default:true)\r\n */\r\n readSessionDetailsAsync(orgRoute, sessionRoute, allowCache = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const key = this.getCacheKey(orgRoute, sessionRoute);\r\n const ret = this.sessionDetailsCache.getAsync(key, () => api_1.SessionsService.readAsync(orgRoute, sessionRoute), allowCache);\r\n return ret;\r\n });\r\n }\r\n /**\r\n * Uploads a new clip and associates it with the specified session / prompt\r\n * @param orgRoute Route of the organization with which the session is associated\r\n * @param sessionRoute Route of the session with which the new clip is associated\r\n * @param promptRoute Route of the prompt with which the new clip is associated\r\n * @param newClip New clip to upload\r\n * @param mediaEffects - effects to apply to the media server-sides\r\n * @param onProgress Optional callback that will receive at least one 100% progress call\r\n */\r\n uploadClipAsync(orgRoute, sessionRoute, promptRoute, newClip, mediaEffects, onProgress, retry) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const result = retry !== null && retry !== void 0 ? retry : {\r\n isReady: false,\r\n isUploaded: false,\r\n };\r\n // If we're retrying a success, then skip\r\n if (result.clipDraft != null && result.isReady) {\r\n if (onProgress != null) {\r\n onProgress(100);\r\n }\r\n return result;\r\n }\r\n try {\r\n if (onProgress != null) {\r\n onProgress(1);\r\n }\r\n // If !isApiUpload and !isStorageUpload then this would be a draft\r\n // TODO: Implement draft\r\n // If we didn't successfully make a draft clip last time, then make it now\r\n // This is to make a new record to start the process\r\n yield this.createClipIfNeeded(result, newClip, orgRoute, sessionRoute, promptRoute, mediaEffects, onProgress);\r\n // Direct to storage is for large clips and only if we have all the info we need\r\n yield this.uploadToStorageIfNeeded(result, newClip, onProgress);\r\n // If we're down to just verifying the clip, then we're almost completely done\r\n if (onProgress != null) {\r\n onProgress(95);\r\n }\r\n // We may be retrying simply because it wasn't done processing\r\n yield this.clipState(result);\r\n // We got to the end, so we've done everything we can\r\n if (onProgress != null) {\r\n onProgress(100);\r\n }\r\n }\r\n catch (err) {\r\n console.error(\"Error uploading clip\");\r\n result.error = err;\r\n }\r\n return result;\r\n });\r\n }\r\n}\r\n/** The max size where the session store will directly upload files to the API */\r\nSessionStoreClass.maxDirectUploadSize = 25000000;\r\n// Export a singleton instance of the store\r\nexports.SessionStore = new SessionStoreClass();\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OrgSyncStore = void 0;\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst mobx_1 = require(\"mobx\");\r\n/**\r\n * MobX store class containing states and actions for organizations.\r\n */\r\nclass SyncStoreClass {\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////////\r\n constructor() {\r\n //////////[ Observable Data Properties ]//////////////////////////////////////////////////////////\r\n this.config = undefined;\r\n this.result = undefined;\r\n this.validation = undefined;\r\n this.nextConfig = undefined;\r\n (0, mobx_1.makeObservable)(this, {\r\n // Observables\r\n config: mobx_1.observable,\r\n result: mobx_1.observable,\r\n validation: mobx_1.observable,\r\n nextConfig: mobx_1.observable,\r\n // Actions\r\n reset: mobx_1.action,\r\n validateConfigAsync: mobx_1.action,\r\n readConfigAsync: mobx_1.action,\r\n updateConfigAsync: mobx_1.action,\r\n syncAsync: mobx_1.action,\r\n updateToNextConfig: mobx_1.action,\r\n validateNextConfig: mobx_1.action,\r\n });\r\n }\r\n nextStrategyConfig() {\r\n if (this.nextConfig == null)\r\n return undefined;\r\n const json = this.nextConfig.syncConfigJson;\r\n if (json == null)\r\n return undefined;\r\n return JSON.parse(json);\r\n }\r\n //////////[ Methodss ]//////////////////////////////////////////////////////////\r\n sortTargets(result) {\r\n if (result == null || result.sort == null)\r\n return undefined;\r\n const originalLength = result.length;\r\n result = result\r\n .filter((t) => t.name != null)\r\n .sort((a, b) => { var _a, _b; return ((_a = a.name) !== null && _a !== void 0 ? _a : \"\").localeCompare((_b = b === null || b === void 0 ? void 0 : b.name) !== null && _b !== void 0 ? _b : \"\"); });\r\n const newLength = result.length;\r\n if (newLength !== originalLength)\r\n console.warn(\"Filtered out null names from sync targets\");\r\n return result;\r\n }\r\n reset() {\r\n this.config = undefined;\r\n this.result = undefined;\r\n this.validation = undefined;\r\n this.nextConfig = undefined;\r\n }\r\n //////////[ Actions ]/////////////////////////////////////////////////////////////////////////////\r\n setNextConfig(orgConfig) {\r\n this.nextConfig = Object.assign({}, orgConfig);\r\n }\r\n setNextStrategyConfig(strategyConfig) {\r\n if (strategyConfig == null && this.nextConfig == null) {\r\n return undefined;\r\n }\r\n const json = strategyConfig != null ? JSON.stringify(strategyConfig) : undefined;\r\n if (this.nextConfig != null)\r\n this.nextConfig.syncConfigJson = undefined;\r\n const nextConfig = Object.assign(Object.assign({}, this.nextConfig), { syncConfigJson: json });\r\n this.nextConfig = nextConfig;\r\n return nextConfig;\r\n }\r\n updateToNextConfig(orgRoute) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const val = yield this.updateConfigAsync(orgRoute, this.nextConfig);\r\n return val;\r\n });\r\n }\r\n validateNextConfig(orgRoute) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const val = yield this.validateConfigAsync(orgRoute, this.nextConfig);\r\n return val;\r\n });\r\n }\r\n /**\r\n * Async runs logic on the server to config orgConfig is valid\r\n * @param orgRoute\r\n * @param orgConfig If this is undefined, then it will check the current config on the server\r\n */\r\n validateConfigAsync(orgRoute, orgConfig) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.validation = undefined;\r\n const response = yield api_1.SyncService.validateAsync(orgRoute, orgConfig);\r\n this.validation = response;\r\n return response;\r\n });\r\n }\r\n /**\r\n * Reads the current config for the given org route\r\n * @param orgRoute\r\n * @param refresh Optional parameter that forces a refresh of the current org\r\n */\r\n readConfigAsync(orgRoute) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.config = undefined;\r\n const response = yield api_1.SyncService.readConfigAsync(orgRoute);\r\n this.config = response;\r\n this.nextConfig = response.sanitizedConfig;\r\n return response;\r\n });\r\n }\r\n /**\r\n * Updates the org sync config\r\n * If this errors, the current org sync config will not update\r\n * On success, this will update this.currentOrgSyncConfig\r\n * @param orgRoute\r\n * @param orgSyncConfig If you pass undefined, this will delete the config and disable directory sync for the org\r\n */\r\n updateConfigAsync(orgRoute, orgSyncConfig) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const response = yield api_1.SyncService.updateConfigAsync(orgRoute, orgSyncConfig);\r\n this.reset();\r\n this.config = response;\r\n this.nextConfig = response.sanitizedConfig;\r\n return response;\r\n });\r\n }\r\n /**\r\n * Runs the sync process for the given org\r\n * On start, this will clear this.currentOrgSyncResult\r\n * On success, this will update this.currentOrgSyncResult\r\n * @param orgRoute\r\n */\r\n syncAsync(orgRoute) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.result = undefined;\r\n const result = yield api_1.SyncService.syncAsync(orgRoute);\r\n this.result = result;\r\n return result;\r\n });\r\n }\r\n}\r\n// Export a singleton instance of the store\r\nexports.OrgSyncStore = new SyncStoreClass();\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UserStore = void 0;\r\nconst mobx_1 = require(\"mobx\");\r\nconst api_1 = require(\"@soundbite/api\");\r\n/**\r\n * MobX store class containing states and actions for users\r\n */\r\nclass UserStoreClass {\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////////\r\n constructor() {\r\n //////////[ Observable Data Properties ]//////////////////////////////////////////////////////////\r\n /**\r\n * Stores a reference to the current user's information.\r\n */\r\n this.currentUser = undefined;\r\n /**\r\n * Flag indicating whether the current user's information is loaded.\r\n */\r\n this.currentUserIsLoaded = false;\r\n (0, mobx_1.makeObservable)(this, {\r\n currentUser: mobx_1.observable,\r\n currentUserIsLoaded: mobx_1.observable,\r\n inviteUsersAsync: mobx_1.action,\r\n updateCurrentUserImageUrl: mobx_1.action,\r\n });\r\n }\r\n //////////[ Actions ]/////////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Allows the system to update the current user image URL with a new value.\r\n * @param userImgageUrl - new user image URL\r\n */\r\n updateCurrentUserImageUrl(userImgageUrl) {\r\n if (this.currentUser) {\r\n this.currentUser.imageSrc = userImgageUrl;\r\n }\r\n }\r\n /**\r\n * Invites a user to the platform\r\n * @param invites - invite information (e.g. email address)\r\n */\r\n inviteUsersAsync(invites) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield api_1.UsersService.inviteAsync(invites);\r\n });\r\n }\r\n}\r\n// Export a singleton instance of the store\r\nexports.UserStore = new UserStoreClass();\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DialogManager = void 0;\r\nconst React = __importStar(require(\"react\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst DialogManagerLink_1 = require(\"./DialogManagerLink\");\r\nconst PlayDlg_1 = require(\"../components/PlayDlg\");\r\nconst RecordDlg_1 = require(\"../components/RecordDlg\");\r\nconst SeriesDeleteDialog_1 = require(\"./SeriesDeleteDialog\");\r\nconst SessionDeleteDialog_1 = require(\"./SessionDeleteDialog\");\r\nconst SessionNewDialog_1 = require(\"./SessionNewDialog\");\r\nconst SessionReportDialog_1 = require(\"./SessionReportDialog\");\r\nconst WidgetStore_1 = require(\"../store/WidgetStore\");\r\nconst ProfileDialog_1 = require(\"./ProfileDialog\");\r\nconst ConfirmDialog_1 = require(\"./ConfirmDialog\");\r\nconst DialogStyleType_1 = require(\"./DialogStyleType\");\r\n/**\r\n * Responsible for displaying dialogs seen throughout the application. Defining all dialogs in\r\n * this class allows them to be displayed anywhere in the application without having to re-wire\r\n * the dialog into various UI components.\r\n */\r\nclass DialogManager {\r\n //////////[ Show Dialog Methods ]/////////////////////////////////////////////////////////////////\r\n static ShowRecordDialog(orgRoute, sessionRoute) {\r\n this.showDialog(React.createElement(RecordDlg_1.RecordDlg, { orgRoute: orgRoute, sessionRoute: sessionRoute, participantRole: api_1.ParticipantRole.Host, isOpen: true, onClose: this.close }));\r\n }\r\n static ShowReportsDialog(orgRoute, session) {\r\n this.showDialog(React.createElement(SessionReportDialog_1.SessionReportDialog, { orgRoute: orgRoute, session: session, onClose: this.close }));\r\n }\r\n static ShowPlayerDialog(orgRoute, sessionRoute) {\r\n var _a, _b;\r\n this.showDialog(React.createElement(PlayDlg_1.PlayDlg, { orgRoute: orgRoute, currentUserRoute: (_b = (_a = WidgetStore_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.details.me) === null || _b === void 0 ? void 0 : _b.user.route, sessionRoute: sessionRoute, openImmediately: true, onClose: this.close }));\r\n }\r\n /**\r\n * Displays the profile dialog for the given user, defaulting to the current user, optionally showing the settings for that user\r\n */\r\n static ShowProfileDialog(user, showSettings = true) {\r\n this.showDialog(React.createElement(ProfileDialog_1.ProfileDialog, { user: user, showSettings: showSettings, onClose: this.close }));\r\n }\r\n /**\r\n * Displays the series delete confirmation dialog.\r\n */\r\n static ShowSeriesDeleteDialog(orgRoute, series) {\r\n this.showDialog(React.createElement(SeriesDeleteDialog_1.SeriesDeleteDialog, { orgRoute: orgRoute, series: series, close: this.close }));\r\n }\r\n static ShowSeriesEditDialog(orgRoute, series) {\r\n console.warn(\"Show Series Edit Dialog\");\r\n }\r\n /**\r\n * Displays the session delete confirmation dialog.\r\n */\r\n static ShowSessionDeleteDialog(orgRoute, session) {\r\n this.showDialog(React.createElement(SessionDeleteDialog_1.SessionDeleteDialog, { orgRoute: orgRoute, session: session, close: this.close }));\r\n }\r\n /**\r\n * Displays the new session dialog.\r\n * @param orgRoute - route of the organization with which the session is associated.\r\n * @param isSeries - flag indicating whether the dialog is for a session (false) or a series (true)\r\n */\r\n static ShowSessionNewDialog(orgRoute, groupRoute, isSeries = false, onClose) {\r\n const close = () => {\r\n if (onClose != null) {\r\n onClose();\r\n }\r\n this.close();\r\n };\r\n this.showDialog(React.createElement(SessionNewDialog_1.SessionNewDialog, { orgRoute: orgRoute, groupRoute: groupRoute, close: close, isExpanded: isSeries }));\r\n }\r\n static ShowConfirmDialog(title, description, onConfirm, buttonTitle = \"Confirm\", dialogStyle = DialogStyleType_1.DialogStyleType.Normal, onClose) {\r\n const close = () => {\r\n if (onClose != null) {\r\n onClose();\r\n }\r\n this.close();\r\n };\r\n this.showDialog(React.createElement(ConfirmDialog_1.ConfirmDialog, { buttonTitle: buttonTitle, style: dialogStyle, title: title, description: description, onConfirm: onConfirm, close: close }));\r\n }\r\n //////////[ Utility Methods ]/////////////////////////////////////////////////////////////////////\r\n /**\r\n * Closes the current dialog by setting the current dialog reference to null.\r\n */\r\n static close() {\r\n if (DialogManagerLink_1.DialogManagerLink.setCurrentDialogRef) {\r\n DialogManagerLink_1.DialogManagerLink.setCurrentDialogRef(null);\r\n }\r\n }\r\n /**\r\n * Displays the specified dialog component\r\n * @param component - dialog component to display\r\n */\r\n static showDialog(component) {\r\n if (DialogManagerLink_1.DialogManagerLink.setCurrentDialogRef) {\r\n DialogManagerLink_1.DialogManagerLink.setCurrentDialogRef(component);\r\n }\r\n else {\r\n throw \"Attempted to show a dialog but the DialogManagerLink has not been established. Ensure there is a element in the application.\";\r\n }\r\n }\r\n}\r\nexports.DialogManager = DialogManager;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PlayDlg = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = require(\"react\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst HashHelper_1 = require(\"../modules/HashHelper\");\r\nconst WidgetStore_1 = require(\"../store/WidgetStore\");\r\nconst PlayerWidget_1 = require(\"../widgets/PlayerWidget\");\r\nconst ErrorDlg_1 = require(\"./ErrorDlg\");\r\nconst controls_1 = require(\"./controls\");\r\nclass PlayDlg extends react_2.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n session: undefined,\r\n isOpen: false,\r\n hasBeenClosed: false,\r\n isVideo: false,\r\n };\r\n this.open = this.open.bind(this);\r\n this.onClose = this.onClose.bind(this);\r\n this.onContext = this.onContext.bind(this);\r\n }\r\n componentDidMount() {\r\n if (this.props.openImmediately &&\r\n this.props.sessionRoute !== undefined &&\r\n !this.state.hasBeenClosed) {\r\n this.open();\r\n }\r\n }\r\n open() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n // Validate\r\n if (!this.props.sessionRoute) {\r\n this.setState({ session: undefined, isOpen: false });\r\n return;\r\n }\r\n api_1.Utils.setHash(`${HashHelper_1.DialogHash.Play}=${this.props.sessionRoute}`);\r\n const orgRoute = this.props.orgRoute;\r\n if (!orgRoute)\r\n throw new Error(\"Must have initialized organization to load session\");\r\n // Load\r\n this.setState({ session: undefined, isOpen: true });\r\n const session = yield WidgetStore_1.WidgetStore.sessions.readSessionDetailsAsync(orgRoute, this.props.sessionRoute);\r\n // Set returned value\r\n this.setState({ session });\r\n }\r\n catch (err) {\r\n this.setState({ isOpen: false });\r\n ErrorDlg_1.ErrorDlg.show(err, \"Error Loading Soundbite\", \"Likely could not make contact with server\");\r\n }\r\n });\r\n }\r\n onClose() {\r\n api_1.Utils.setHash();\r\n this.setState({ isOpen: false, hasBeenClosed: true });\r\n if (this.props.onClose)\r\n this.props.onClose(this.state.session);\r\n }\r\n getTitle() {\r\n if (this.state.session === undefined)\r\n return \"Loading Soundbite Session...\";\r\n return this.state.session.name;\r\n }\r\n getSubtitle() {\r\n if (this.state.session === undefined)\r\n return (0, react_1.jsx)(\"span\", null, \" \");\r\n return ((0, react_1.jsx)(\"span\", { className: \"sb-modal-header-subtitle\" }, api_1.Utils.formatRelativeDate(this.state.session.publish)));\r\n }\r\n onContext(context) {\r\n this.setState({ isVideo: context.isVideo });\r\n }\r\n render() {\r\n let isOpen = this.state.isOpen;\r\n if (this.props.openImmediately && this.state.hasBeenClosed)\r\n isOpen = false;\r\n const className = this.state.isVideo ? \"sb-cover-dialog\" : \"\";\r\n return ((0, react_1.jsx)(reactstrap_1.Modal, { isOpen: isOpen, toggle: this.onClose, backdrop: \"static\", className: className },\r\n (0, react_1.jsx)(reactstrap_1.ModalHeader, { toggle: this.onClose, className: \"bg-gradient-primary\" },\r\n this.getTitle(),\r\n this.getSubtitle()),\r\n (0, react_1.jsx)(reactstrap_1.ModalBody, null,\r\n (0, react_1.jsx)(controls_1.Loader, { isLoadedWhen: !!this.props.sessionRoute && !!this.state.session },\r\n (0, react_1.jsx)(PlayerWidget_1.PlayerWidget, { orgRoute: this.props.orgRoute, sessionRoute: this.props.sessionRoute, session: this.state.session, currentUserRoute: this.props.currentUserRoute, onClose: this.onClose, showButtons: true, autoPlay: true, onContext: this.onContext })))));\r\n }\r\n}\r\nexports.PlayDlg = PlayDlg;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PlayerWidget = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst components_1 = require(\"../components\");\r\nconst store_1 = require(\"../store\");\r\nconst SessionDetailWidget_1 = require(\"../components/SessionDetailWidget\");\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexports.PlayerWidget = (0, mobx_react_lite_1.observer)((props) => {\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n var _a;\r\n let [isSolo, setIsSolo] = react_1.default.useState(true);\r\n let [session, setSession] = react_1.default.useState();\r\n let [isMediaError, setIsMediaError] = react_1.default.useState(false);\r\n const isAdminOrMore = store_1.WidgetStore.isPersonRole(api_1.PersonRole.Admin);\r\n react_1.default.useEffect(() => {\r\n function init() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // Attempt to use the sessions passed into the component\r\n let currentSession = props.session;\r\n // Determine if there is a valid currentSession\r\n if (!currentSession) {\r\n // No currentSession so see if required props to load a currentSession are present\r\n if (props.orgRoute && props.sessionRoute) {\r\n // Attempt to load the currentSession\r\n currentSession = yield store_1.WidgetStore.sessions.readSessionDetailsAsync(props.orgRoute, props.sessionRoute);\r\n }\r\n }\r\n // Determine if there is a valid currentSession loaded\r\n if (currentSession) {\r\n setSession(props.session);\r\n // Not all clips are valid for display\r\n setIsSolo(getValidClips(currentSession).length === 1);\r\n }\r\n else {\r\n // No currentSession passed in and no currentSession could be loaded\r\n // TODO: do we need to do something here???\r\n }\r\n });\r\n }\r\n init();\r\n }, []);\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Gets an array containing only those clips in the session which are valid for consumption.\r\n */\r\n function getValidClips(session) {\r\n var _a, _b, _c;\r\n return ((_c = (_b = (_a = session === null || session === void 0 ? void 0 : session.prompts[0]) === null || _a === void 0 ? void 0 : _a.clips) === null || _b === void 0 ? void 0 : _b.filter((i) => i.clipType != api_1.ClipType.RawClip && i.clipType != api_1.ClipType.RawTranscript)) !== null && _c !== void 0 ? _c : []);\r\n }\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n function onClose() {\r\n if (props.onClose) {\r\n props.onClose();\r\n }\r\n }\r\n function onAcknowledge() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (props.orgRoute && session) {\r\n const remove = session.sessionSecurity !== api_1.SessionSecurityType.Public;\r\n yield store_1.WidgetStore.sessions.acknowledgeSessionAsync(props.orgRoute, session.route, session, remove);\r\n onClose();\r\n }\r\n });\r\n }\r\n function onMediaError(error) {\r\n setIsMediaError(true);\r\n }\r\n const onContext = (context) => {\r\n if (props.onContext != null) {\r\n props.onContext(context);\r\n }\r\n };\r\n // Determine whether the user has a participant role making them eligible to acknowledge the soundbite\r\n const canAcknowledge = (_a = session === null || session === void 0 ? void 0 : session.myParticipation) === null || _a === void 0 ? void 0 : _a.some((i) => {\r\n var _a;\r\n return i.person.user.route === ((_a = store_1.WidgetStore.users.currentUser) === null || _a === void 0 ? void 0 : _a.route) &&\r\n i.participantState === api_1.ParticipantState.ConsumptionRequested;\r\n });\r\n let errors = [];\r\n if (!props.orgRoute) {\r\n errors.push(\"Organization route not provided\");\r\n }\r\n if (!props.session && !props.sessionRoute) {\r\n errors.push(\"Session or session route was not provided.\");\r\n }\r\n if (errors.length > 0) {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(\"div\", null, \"Player Widget cannot display due to the following:\"),\r\n react_1.default.createElement(\"ul\", null, errors.map((error) => {\r\n return react_1.default.createElement(\"li\", null, error);\r\n }))));\r\n }\r\n else {\r\n return (react_1.default.createElement(components_1.Loader, { isLoadedWhen: session !== undefined, style: { minHeight: \"12rem\" }, message: \"Loading Player...\" },\r\n react_1.default.createElement(\"div\", null,\r\n react_1.default.createElement(\"div\", null,\r\n isSolo ? (react_1.default.createElement(components_1.SoloPlayer, { session: session, allowDownload: isAdminOrMore, onMediaError: onMediaError, autoPlay: props.autoPlay, onContext: onContext })) : (react_1.default.createElement(components_1.GroupPlayer, { session: session, currentUserRoute: props.currentUserRoute })),\r\n react_1.default.createElement(SessionDetailWidget_1.SessionDetailWidget, { orgRoute: props.orgRoute, sessionRoute: props.sessionRoute, session: session, currentUserRoute: props.currentUserRoute }),\r\n react_1.default.createElement(components_1.ShowWhen, { is: props.showButtons },\r\n react_1.default.createElement(\"div\", { className: \"modal-footer\" },\r\n react_1.default.createElement(\"button\", { type: \"button\", className: \"btn btn-outline-secondary sb-close-btn\", onClick: onClose, title: \"Close\" }, \"Close\"),\r\n react_1.default.createElement(components_1.ShowWhen, { is: canAcknowledge && !isMediaError },\r\n react_1.default.createElement(\"button\", { type: \"button\", className: \"btn btn-primary sb-acknowledge-btn\", onClick: onAcknowledge, title: \"Acknowledge Session\" }, \"Acknowledge\"))))))));\r\n }\r\n});\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Avatar = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst __1 = require(\"..\");\r\n/** Displays the given user in a standardized format, scaling by viewport size */\r\nclass Avatar extends react_1.Component {\r\n constructor() {\r\n super(...arguments);\r\n this.onClick = () => {\r\n if (this.props.onClick)\r\n this.props.onClick();\r\n };\r\n }\r\n render() {\r\n var _a, _b;\r\n const showName = (_a = this.props.showName) !== null && _a !== void 0 ? _a : true;\r\n const showTitle = this.props.showJobTitle === true && this.props.user.title != null;\r\n let avatarlUrl = api_1.SoundbiteApiConfig.imgAvatarUrl;\r\n if (this.props.user.imageSrc)\r\n avatarlUrl = this.props.user.imageSrc;\r\n let displayName = api_1.Utils.userDisplay(this.props.user);\r\n let outerClass = \"media align-items-center\";\r\n if (this.props.onClick)\r\n outerClass += \" sb-clickable\";\r\n if (this.props.className)\r\n outerClass += \" \" + this.props.className;\r\n const paddingRight = showName || showTitle ? \"mr-3\" : \"mr-1\";\r\n const sizingClassName = (_b = this.props.sizingClassName) !== null && _b !== void 0 ? _b : \"d-none d-sm-block\";\r\n return (react_1.default.createElement(\"div\", { className: outerClass, onClick: this.onClick.bind(this), title: this.props.title },\r\n react_1.default.createElement(\"span\", { className: `avatar rounded-circle ${paddingRight} ${sizingClassName}` },\r\n react_1.default.createElement(\"img\", { alt: \"Avatar\", src: avatarlUrl })),\r\n react_1.default.createElement(\"div\", { className: \"media-body\" },\r\n react_1.default.createElement(__1.ShowWhen, { is: this.props.alwaysHasEmail && showName },\r\n react_1.default.createElement(\"span\", { className: \"name mb-0 text-sm\" }, displayName)),\r\n react_1.default.createElement(__1.ShowWhen, { is: !this.props.alwaysHasEmail && showName },\r\n react_1.default.createElement(\"div\", { className: \"d-md-none\" },\r\n react_1.default.createElement(\"span\", { className: \"name mb-0 text-sm\" }, displayName)),\r\n react_1.default.createElement(\"div\", { className: \"d-none d-md-block\" },\r\n react_1.default.createElement(\"span\", { className: \"name mb-0 text-sm\" }, displayName))),\r\n react_1.default.createElement(__1.ShowWhen, { is: showTitle },\r\n react_1.default.createElement(\"div\", null,\r\n react_1.default.createElement(\"span\", { className: \"name mb-0 text-sm text-muted font-weight-light\" }, this.props.user.title))))));\r\n }\r\n}\r\nexports.Avatar = Avatar;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FaPrepend = void 0;\r\nconst fontawesome_svg_core_1 = require(\"@fortawesome/fontawesome-svg-core\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\n// List of icons accepted by FaPrepend\r\nfontawesome_svg_core_1.library.add(free_solid_svg_icons_1.faCalendarAlt, free_solid_svg_icons_1.faHouseUser, free_solid_svg_icons_1.faHourglassHalf, free_solid_svg_icons_1.faKey, free_solid_svg_icons_1.faPen, free_solid_svg_icons_1.faSyncAlt);\r\n/**\r\n * Component for prepending a Font Awesome icon onto a control in a Bootstrap InputGroup\r\n * */\r\nclass FaPrepend extends react_1.Component {\r\n render() {\r\n var _a;\r\n return (react_1.default.createElement(reactstrap_1.InputGroupAddon, { addonType: \"prepend\" },\r\n react_1.default.createElement(\"span\", { className: \"input-group-text\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: [((_a = this.props.prefix) !== null && _a !== void 0 ? _a : \"fas\"), this.props.icon] }))));\r\n }\r\n}\r\nexports.FaPrepend = FaPrepend;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ParticipantSummary = exports.GroupParticipantWrapper = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst LabelInfo_1 = require(\"./LabelInfo\");\r\nconst ShowWhen_1 = require(\"./ShowWhen\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst __1 = require(\"../..\");\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\n/***************************************************************************************************\r\n * Constants / Global Variables\r\n **************************************************************************************************/\r\nconst getStyles = () => {\r\n const ret = (0, react_1.css) `\r\n & > ul:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n & .sb-participant-block svg {\r\n margin-right: 0.25rem;\r\n }\r\n\r\n .sb-pg-expandable:hover {\r\n background-color: ${__1.GlobalTheme.current.colors.neutrals.n300};\r\n cursor: pointer;\r\n }\r\n\r\n .sb-block-list {\r\n padding-left: 0;\r\n }\r\n\r\n .sb-block-list:empty {\r\n display: none;\r\n }\r\n\r\n .sb-block-list li {\r\n display: inline-block;\r\n list-style: none;\r\n color: ${__1.GlobalTheme.current.colors.neutrals.n800};\r\n background-color: ${__1.GlobalTheme.current.colors.neutrals.n100};\r\n border-radius: 4px;\r\n padding: 2px 6px;\r\n margin: 2px;\r\n }\r\n\r\n .sb-block-list li:first-of-type {\r\n margin-left: 0;\r\n }\r\n\r\n .sb-participant-summary > ul:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n .sb-participant-summary .sb-participant-block i {\r\n margin-right: 0.25rem;\r\n }\r\n `;\r\n return ret;\r\n};\r\nlet styles = undefined;\r\n/***************************************************************************************************\r\n * Component Classes\r\n **************************************************************************************************/\r\nclass ComponentContent {\r\n constructor(hostInfo, title, info) {\r\n this.hostInfo = hostInfo;\r\n this.participantTitle = title;\r\n this.participantInfo = info;\r\n }\r\n}\r\nclass GroupParticipantWrapper {\r\n constructor(item) {\r\n this.isExpanded = false;\r\n this.members = [];\r\n this.isInitialized = false;\r\n this.hasMoreMembers = undefined;\r\n this.isLoading = false;\r\n this.totalCount = undefined;\r\n this.skipCount = 0;\r\n this.item = item;\r\n }\r\n}\r\nexports.GroupParticipantWrapper = GroupParticipantWrapper;\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexports.ParticipantSummary = (0, mobx_react_lite_1.observer)((props) => {\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n const [isExpanded, setIsExpanded] = (0, react_2.useState)(false);\r\n const [reRenderIndex, setReRenderIndex] = (0, react_2.useState)(0);\r\n const [hosts, setHosts] = (0, react_2.useState)([]);\r\n const [hostGroups, setHostGroups] = (0, react_2.useState)([]);\r\n const [participants, setParticipants] = (0, react_2.useState)([]);\r\n const [participantGroups, setParticipantGroups] = (0, react_2.useState)([]);\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n (0, react_2.useEffect)(() => {\r\n if (isExpanded != props.isExpanded) {\r\n toggleExpanded();\r\n }\r\n }, [props.isExpanded]);\r\n (0, react_2.useEffect)(() => {\r\n var _a, _b;\r\n if (props.session) {\r\n setHosts(((_a = props.session.participants) === null || _a === void 0 ? void 0 : _a.filter((p) => p.participantRole === api_1.ParticipantRole.Host)) || []);\r\n setParticipants(((_b = props.session.participants) === null || _b === void 0 ? void 0 : _b.filter((p) => p.participantRole !== api_1.ParticipantRole.Host)) || []);\r\n setHostGroups(uniqueGroups(props.session.groups, true));\r\n setParticipantGroups(uniqueGroups(props.session.groups, false));\r\n if (props.autoExpand === true && !isExpanded && !isBig()) {\r\n toggleExpanded();\r\n }\r\n }\r\n }, [props.session]);\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Determines whether there are an excessive number of items to show initially.\r\n */\r\n function isBig() {\r\n var _a, _b;\r\n return ((_b = (_a = props.session) === null || _a === void 0 ? void 0 : _a.participants.length) !== null && _b !== void 0 ? _b : 0) > 128;\r\n }\r\n /**\r\n * Determines the appropriate terminology to use in the control based on session type.\r\n */\r\n function getContent(session) {\r\n switch (session.sessionType) {\r\n case api_1.SessionType.Announcement:\r\n return new ComponentContent(\"Records announcement\", \"Audience\", \"Listens to the announcement\");\r\n case api_1.SessionType.Survey:\r\n return new ComponentContent(\"Listens to survey results\", \"Audience\", \"Responds to the survey\");\r\n default:\r\n return new ComponentContent(\"Can edit or delete this Session\", \"Participants\", \"Can contribute to this Session\");\r\n }\r\n }\r\n /**\r\n * Toggles the state of the expansion for the participant list\r\n */\r\n function toggleExpanded() {\r\n if (props.onToggleExpansion) {\r\n props.onToggleExpansion(!isExpanded);\r\n }\r\n setIsExpanded(!isExpanded);\r\n }\r\n /**\r\n * Reads the unique Groups with a set of ParticipantGroup, returning them in alphabetical order\r\n * @param arr - array of groups to filter and sort\r\n * @param lookForHost - flag indicating whether to look for the host (true) or audience (false) participants.\r\n */\r\n function uniqueGroups(arr, lookForHost) {\r\n const filtered = (arr === null || arr === void 0 ? void 0 : arr.filter((p) => lookForHost\r\n ? p.participantRole === api_1.ParticipantRole.Host\r\n : p.participantRole !== api_1.ParticipantRole.Host)) || undefined;\r\n if (!filtered)\r\n return [];\r\n // Pull out the unique groups\r\n const participantGroups = filtered.map((i) => new GroupParticipantWrapper(i));\r\n const unique = new Map();\r\n participantGroups.forEach((i) => {\r\n unique.set(i.item.groupRoute, i);\r\n });\r\n // Return them sorted\r\n const ret = Array.from(unique.values());\r\n ret.sort((a, b) => a.item.group.name > b.item.group.name\r\n ? 1\r\n : a.item.group.name === b.item.group.name\r\n ? a.item.group.name > b.item.group.name\r\n ? 1\r\n : -1\r\n : -1);\r\n return ret;\r\n }\r\n function toggleGroupExpanded(groupToExpand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n groupToExpand.isExpanded = !groupToExpand.isExpanded;\r\n groupToExpand.isLoading = true;\r\n setReRenderIndex(reRenderIndex + 1);\r\n fetchMembers(groupToExpand);\r\n });\r\n }\r\n function fetchMembers(groupToExpand) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (groupToExpand.hasMoreMembers != false &&\r\n __1.WidgetStore.organizations.currentOrg &&\r\n props.session) {\r\n // Acquire \"next\" page of group members\r\n const result = yield api_1.SessionsService.readPariticpantsInGroup(__1.WidgetStore.organizations.currentOrg.details.route, props.session.route, groupToExpand.item.route, undefined, {\r\n includesCounts: groupToExpand.totalCount === undefined,\r\n skip: groupToExpand.skipCount,\r\n take: 100,\r\n });\r\n // Update group information\r\n groupToExpand.members = [...groupToExpand.members, ...result.result];\r\n groupToExpand.totalCount =\r\n groupToExpand.totalCount === undefined\r\n ? result.totalCount\r\n : (_a = groupToExpand.totalCount) !== null && _a !== void 0 ? _a : 0;\r\n groupToExpand.skipCount = groupToExpand.members.length;\r\n groupToExpand.hasMoreMembers =\r\n groupToExpand.members.length < ((_b = groupToExpand.totalCount) !== null && _b !== void 0 ? _b : 0);\r\n // Force re-rendering\r\n setReRenderIndex(reRenderIndex + 2);\r\n }\r\n });\r\n }\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n //////////[ Component UI Helper Methods ]/////////////////////////////////////////////////////////\r\n function renderComponent(session) {\r\n var _a, _b, _c, _d;\r\n const content = getContent(session);\r\n const showRoleWarning = ((_c = (_b = (_a = __1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.permissions) === null || _b === void 0 ? void 0 : _b.minRoleForAudience) !== null && _c !== void 0 ? _c : api_1.PersonRole.Unknown) > api_1.PersonRole.Person &&\r\n !props.hideAudienceRoleWarning;\r\n const btnMsg = \"Show Audience\";\r\n if (styles == null) {\r\n styles = getStyles();\r\n }\r\n return ((0, react_1.jsx)(\"span\", { className: `sb-participant-summary ${props.className}`, css: styles },\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: props.isExpandable && !isExpanded },\r\n (0, react_1.jsx)(reactstrap_1.Button, { onClick: toggleExpanded, color: \"secondary\", size: \"sm\", type: \"button\", outline: true, title: \"Show Participants\" }, btnMsg)),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: isExpanded },\r\n (0, react_1.jsx)(\"div\", null,\r\n RenderSection(\"Hosts\", content.hostInfo, hosts, hostGroups),\r\n RenderSection(content.participantTitle, content.participantInfo, participants, participantGroups),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: showRoleWarning },\r\n (0, react_1.jsx)(\"small\", { className: \"text-muted\" },\r\n \"This audience is only visible to\",\r\n \" \", (_d = __1.WidgetStore.organizations.currentOrg) === null || _d === void 0 ? void 0 :\r\n _d.details.name,\r\n \" admins\"))))));\r\n }\r\n function RenderParticipant(p) {\r\n return ((0, react_1.jsx)(\"li\", { key: p.person.route, className: \"sb-participant-block sb-participant-state-\" +\r\n api_1.ParticipantState[p.participantState].toLowerCase() },\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: p.participantState === api_1.ParticipantState.Consumed },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faHeadphones })),\r\n api_1.Utils.userDisplay(p.person.user)));\r\n }\r\n function RenderSection(label, labelDesc, people, groups) {\r\n return ((0, react_1.jsx)(react_2.default.Fragment, null,\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: people.length > 0 || groups.length > 0 },\r\n (0, react_1.jsx)(LabelInfo_1.LabelInfo, { label: label, info: labelDesc }),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: people.length > 0 },\r\n (0, react_1.jsx)(\"ul\", { className: \"sb-block-list\" }, people.map((p) => RenderParticipant(p)))),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: groups.length > 0 },\r\n (0, react_1.jsx)(\"ul\", { className: \"sb-block-list\" }, groups.map((group) => {\r\n return ((0, react_1.jsx)(react_2.default.Fragment, { key: group.item.route },\r\n (0, react_1.jsx)(\"li\", { className: \"sb-pg-expandable\", onClick: () => toggleGroupExpanded(group) },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: reRenderIndex > 0 && group.isExpanded\r\n ? free_solid_svg_icons_1.faSquareMinus\r\n : free_solid_svg_icons_1.faSquarePlus }),\r\n \" \",\r\n group.item.group.name),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: group.isExpanded },\r\n group.members.map((p, index) => RenderParticipant(p)),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: group.hasMoreMembers === true },\r\n (0, react_1.jsx)(\"li\", { className: \"sb-pg-expandable\", onClick: () => fetchMembers(group) }, \"Load More\")))));\r\n }))))));\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n if (props.session !== undefined && props.session !== null) {\r\n return renderComponent(props.session);\r\n }\r\n else {\r\n // Do not render the component\r\n return (0, react_1.jsx)(react_2.default.Fragment, null);\r\n }\r\n});\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SbProgressButton = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = require(\"react\");\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst react_progress_button_1 = __importDefault(require(\"react-progress-button\"));\r\nconst __1 = require(\"../..\");\r\nconst getBaseStyles = () => {\r\n const styles = (0, react_1.css) `\r\n .pb-button span {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .pb-button .svg-inline--fa {\r\n height: 1rem;\r\n width: 0.875em;\r\n overflow: visible;\r\n }\r\n\r\n .pb-container .pb-button svg.svg-inline--fa path {\r\n opacity: 1;\r\n fill: ${__1.GlobalTheme.current.colors.bootstrap.primary};\r\n }\r\n\r\n .pb-container .pb-button:hover svg.svg-inline--fa path {\r\n fill: ${__1.GlobalTheme.current.colors.neutrals.min};\r\n }\r\n\r\n .pb-container .pb-button svg.svg-inline--fa {\r\n height: 20px;\r\n width: 20px;\r\n left: 10px;\r\n top: 15px;\r\n }\r\n\r\n .pb-container {\r\n display: inline-block;\r\n text-align: center;\r\n width: 100%;\r\n height: 60px;\r\n }\r\n\r\n .pb-container .pb-button {\r\n background: ${__1.GlobalTheme.current.colors.neutrals.midground};\r\n border: 1px solid ${__1.GlobalTheme.current.colors.bootstrap.primary};\r\n border-radius: 0.25rem;\r\n color: currentColor;\r\n cursor: pointer;\r\n padding: 0.7em 1em;\r\n text-decoration: none;\r\n text-align: center;\r\n height: 40px;\r\n width: 40px;\r\n -webkit-tap-highlight-color: transparent;\r\n outline: none;\r\n transition: background-color 0.3s, width 0.3s, border-width 0.3s,\r\n border-color 0.3s, border-radius 0.3s;\r\n position: relative;\r\n }\r\n\r\n .pb-container .pb-button:hover,\r\n .pb-container.loading .pb-button:hover {\r\n background-color: ${__1.GlobalTheme.current.colors.bootstrap.primaryHigh};\r\n border-color: ${__1.GlobalTheme.current.colors.bootstrap.primaryHigh};\r\n color: white;\r\n }\r\n\r\n .pb-container .pb-button span {\r\n transition: all 0.15s;\r\n display: inherit;\r\n transition: opacity 0.3s 0.1s;\r\n font-size: 1.4em;\r\n font-weight: 100;\r\n position: absolute;\r\n top: 3px;\r\n left: calc(50% - 9px);\r\n }\r\n\r\n .pb-container .pb-button span i {\r\n width: 19px;\r\n }\r\n\r\n .pb-container .pb-button svg {\r\n height: 40px;\r\n width: 40px;\r\n position: absolute;\r\n transform: translate(-50%, -50%);\r\n pointer-events: none;\r\n }\r\n\r\n .pb-container .pb-button svg path {\r\n opacity: 0;\r\n fill: none;\r\n }\r\n\r\n .pb-container .pb-button svg.pb-progress-circle {\r\n animation: spin 0.9s infinite cubic-bezier(0.085, 0.26, 0.935, 0.71);\r\n }\r\n\r\n .pb-container .pb-button svg.pb-progress-circle path {\r\n stroke: currentColor;\r\n stroke-width: 5;\r\n }\r\n\r\n .pb-container .pb-button svg.pb-checkmark path,\r\n .pb-container .pb-button svg.pb-cross path {\r\n stroke: #fff;\r\n stroke-linecap: round;\r\n stroke-width: 4;\r\n }\r\n\r\n .pb-container.disabled .pb-button {\r\n cursor: not-allowed;\r\n }\r\n\r\n .pb-container.loading .pb-button {\r\n background-color: ${__1.GlobalTheme.current.colors.neutrals.midground};\r\n padding: 0;\r\n border-radius: 50%;\r\n }\r\n\r\n .pb-container.loading .pb-button span {\r\n transition: all 0.15s;\r\n }\r\n\r\n .pb-container.loading .pb-button .pb-progress-circle > path {\r\n transition: opacity 0.15s 0.3s;\r\n opacity: 1;\r\n }\r\n\r\n .pb-container.success .pb-button span {\r\n transition: all 0.15s;\r\n opacity: 0;\r\n display: none;\r\n }\r\n\r\n .pb-container.success .pb-button .pb-checkmark > path {\r\n opacity: 1;\r\n }\r\n\r\n .pb-container.error .pb-button span {\r\n transition: all 0.15s;\r\n opacity: 0;\r\n display: none;\r\n }\r\n\r\n .pb-container.error .pb-button .pb-cross > path {\r\n opacity: 1;\r\n }\r\n\r\n @keyframes spin {\r\n from {\r\n transform: translate(-50%, -50%) rotate(0deg);\r\n transform-origin: center center;\r\n }\r\n\r\n to {\r\n transform: translate(-50%, -50%) rotate(360deg);\r\n transform-origin: center center;\r\n }\r\n }\r\n `;\r\n return styles;\r\n};\r\nlet baseStyles = undefined;\r\n/** A button that shows active progress when pressed */\r\nclass SbProgressButton extends react_2.Component {\r\n render() {\r\n let buttonState = this.props.isRunning ? \"loading\" : \"\";\r\n if (this.props.disabled)\r\n buttonState = \"disabled\";\r\n let icon = this.props.isRecordMode\r\n ? this.props.isRunning\r\n ? free_solid_svg_icons_1.faStop\r\n : free_solid_svg_icons_1.faMicrophone\r\n : this.props.isRunning\r\n ? free_solid_svg_icons_1.faPause\r\n : free_solid_svg_icons_1.faPlay;\r\n if (!baseStyles)\r\n baseStyles = getBaseStyles();\r\n return ((0, react_1.jsx)(\"div\", { className: \"sb-pb-button\", css: baseStyles },\r\n (0, react_1.jsx)(react_progress_button_1.default, { onClick: this.props.onClick, state: buttonState, shouldAllowClickOnLoading: this.props.allowClickOnLoading, title: this.props.title },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: icon, size: \"xs\" }))));\r\n }\r\n}\r\nexports.SbProgressButton = SbProgressButton;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SeriesDetailsDlg = void 0;\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst sanitize_html_1 = __importDefault(require(\"sanitize-html\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst LabelInfo_1 = require(\"./LabelInfo\");\r\nconst Loader_1 = require(\"./Loader\");\r\nconst ParticipantSummary_1 = require(\"./ParticipantSummary\");\r\nconst ShowWhen_1 = require(\"./ShowWhen\");\r\nconst store_1 = require(\"../../store\");\r\nconst ErrorDlg_1 = require(\"../ErrorDlg\");\r\n/**\r\n * Shows the details for a given series object\r\n * */\r\nclass SeriesDetailsDlg extends react_1.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n seriesDetails: undefined,\r\n isOpen: false,\r\n isExpanded: false,\r\n };\r\n this.open = this.open.bind(this);\r\n this.close = this.close.bind(this);\r\n this.renderScheduleRow = this.renderScheduleRow.bind(this);\r\n this.expandSchedule = this.expandSchedule.bind(this);\r\n }\r\n open() {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n // Validate\r\n if (!this.props.series) {\r\n this.setState({ seriesDetails: undefined, isOpen: false });\r\n return;\r\n }\r\n const orgRoute = (_a = store_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.details.route;\r\n if (!orgRoute) {\r\n throw new Error(\"Must have initialized organization to load session\");\r\n }\r\n // Load\r\n this.setState({\r\n seriesDetails: undefined,\r\n isOpen: true,\r\n isExpanded: false,\r\n });\r\n const seriesDetails = yield store_1.WidgetStore.series.readSeriesAsync(orgRoute, this.props.series.route);\r\n // Set returned value\r\n this.setState({ seriesDetails });\r\n }\r\n catch (err) {\r\n this.setState({ isOpen: false });\r\n ErrorDlg_1.ErrorDlg.show(err, \"Error Loading Soundbite Session\", \"Likely could not make contact with server\");\r\n }\r\n });\r\n }\r\n close() {\r\n this.setState({ isOpen: false });\r\n }\r\n getTitle() {\r\n if (this.state.seriesDetails === undefined)\r\n return \"Loading Soundbite Series...\";\r\n return this.state.seriesDetails.name;\r\n }\r\n getSubtitle() {\r\n if (this.state.seriesDetails === undefined)\r\n return react_1.default.createElement(\"span\", null, \" \");\r\n const details = this.state.seriesDetails;\r\n return (react_1.default.createElement(\"span\", { className: \"sb-modal-header-subtitle\" }, api_1.Utils.recurrenceDescription(details.template.publish, details.recurrence)));\r\n }\r\n renderScheduleRow(session, key) {\r\n return (react_1.default.createElement(\"tr\", { key: session.route },\r\n react_1.default.createElement(\"td\", null, api_1.Utils.formatRelativeDate(session.reminder)),\r\n react_1.default.createElement(\"td\", null, api_1.Utils.formatRelativeDate(session.publish))));\r\n }\r\n expandSchedule() {\r\n this.setState({ isExpanded: true });\r\n }\r\n schedule() {\r\n var _a, _b, _c, _d;\r\n const previewCount = 3;\r\n const sessions = this.state.isExpanded\r\n ? (_a = this.state.seriesDetails) === null || _a === void 0 ? void 0 : _a.sessions\r\n : (_b = this.state.seriesDetails) === null || _b === void 0 ? void 0 : _b.sessions.slice(0, previewCount);\r\n const showExpandBtn = ((_d = (_c = this.state.seriesDetails) === null || _c === void 0 ? void 0 : _c.sessions.length) !== null && _d !== void 0 ? _d : 0) > previewCount &&\r\n !this.state.isExpanded;\r\n return (react_1.default.createElement(\"div\", { className: \"mt-3\" },\r\n react_1.default.createElement(LabelInfo_1.LabelInfo, { label: \"Schedule\", info: \"Future Soundbite Sessions for this series\" }),\r\n react_1.default.createElement(\"table\", { className: \"table align-items-center\" },\r\n react_1.default.createElement(\"thead\", { className: \"thead-light\" },\r\n react_1.default.createElement(\"tr\", null,\r\n react_1.default.createElement(\"th\", { scope: \"col\", className: \"sort\" }, \"Reminder\"),\r\n react_1.default.createElement(\"th\", { scope: \"col\", className: \"sort\" }, \"Publish\"))),\r\n react_1.default.createElement(\"tbody\", { className: \"list\" }, sessions === null || sessions === void 0 ? void 0 : sessions.map(this.renderScheduleRow))),\r\n react_1.default.createElement(ShowWhen_1.ShowWhen, { is: showExpandBtn },\r\n react_1.default.createElement(reactstrap_1.Button, { onClick: this.expandSchedule, color: \"info\", size: \"sm\", type: \"button\", title: \"Show More Scheduled Sessions\" }, \"Show More\"))));\r\n }\r\n render() {\r\n var _a, _b, _c, _d;\r\n let isOpen = this.state.isOpen;\r\n const series = this.state.seriesDetails;\r\n const cleanPromptContext = (0, sanitize_html_1.default)(((_a = series === null || series === void 0 ? void 0 : series.template) === null || _a === void 0 ? void 0 : _a.prompts[0].text) || \"\");\r\n const isAudienceEnabled = store_1.WidgetStore.isPersonRole((_d = (_c = (_b = store_1.WidgetStore.organizations.currentOrg) === null || _b === void 0 ? void 0 : _b.permissions) === null || _c === void 0 ? void 0 : _c.minRoleForAudience) !== null && _d !== void 0 ? _d : api_1.PersonRole.Unknown);\r\n return (react_1.default.createElement(reactstrap_1.Modal, { isOpen: isOpen, toggle: this.close, backdrop: \"static\" },\r\n react_1.default.createElement(reactstrap_1.ModalHeader, { toggle: this.close, className: \"bg-gradient-primary\" },\r\n this.getTitle(),\r\n this.getSubtitle()),\r\n react_1.default.createElement(Loader_1.Loader, { isLoadedWhen: this.state.seriesDetails !== undefined, style: { minHeight: \"12rem\" } },\r\n react_1.default.createElement(reactstrap_1.ModalBody, null,\r\n react_1.default.createElement(ShowWhen_1.ShowWhen, { is: cleanPromptContext.trim().length > 0 },\r\n react_1.default.createElement(LabelInfo_1.LabelInfo, { label: \"Call to Action\", info: \"Text to prime the conversation\" }),\r\n react_1.default.createElement(\"p\", { dangerouslySetInnerHTML: { __html: cleanPromptContext } })),\r\n react_1.default.createElement(ShowWhen_1.ShowWhen, { is: isAudienceEnabled },\r\n react_1.default.createElement(ParticipantSummary_1.ParticipantSummary, { session: series === null || series === void 0 ? void 0 : series.template })),\r\n this.schedule()),\r\n react_1.default.createElement(reactstrap_1.ModalFooter, null,\r\n react_1.default.createElement(\"button\", { type: \"button\", className: \"btn btn-primary\", onClick: this.close, title: \"Close\" }, \"Close\")))));\r\n }\r\n}\r\nexports.SeriesDetailsDlg = SeriesDetailsDlg;\r\nclass SeriesDetailsBtn extends react_1.Component {\r\n constructor(props) {\r\n super(props);\r\n this.dialog = (0, react_1.createRef)();\r\n this.state = {\r\n isOpen: false,\r\n };\r\n this.open = this.open.bind(this);\r\n }\r\n open() {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n (_a = this.dialog.current) === null || _a === void 0 ? void 0 : _a.open();\r\n });\r\n }\r\n render() {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(\"button\", { className: \"btn btn-outline-primary btn-sm\", type: \"button\", onClick: this.open, title: \"Show Series Schedule\" },\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faCalendar }),\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--text\" }, \"Schedule\"))),\r\n react_1.default.createElement(SeriesDetailsDlg, { ref: this.dialog, series: this.props.series })));\r\n }\r\n}\r\nexports.default = SeriesDetailsBtn;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./DateTimePicker\"), exports);\r\n__exportStar(require(\"./EmailPicker\"), exports);\r\n__exportStar(require(\"./GroupPicker\"), exports);\r\n__exportStar(require(\"./ItemPicker\"), exports);\r\n__exportStar(require(\"./ParticipantGroupPicker\"), exports);\r\n__exportStar(require(\"./ParticipantPicker\"), exports);\r\n__exportStar(require(\"./PeoplePicker\"), exports);\r\n__exportStar(require(\"./PickerUtils\"), exports);\r\n__exportStar(require(\"./SchedulePicker\"), exports);\r\n__exportStar(require(\"./TimePicker\"), exports);\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DateTimePicker = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst react_datetime_1 = __importDefault(require(\"react-datetime\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst moment_1 = __importDefault(require(\"moment\"));\r\nconst controls_1 = require(\"../controls\");\r\nconst TimePicker_1 = require(\"./TimePicker\");\r\n/**\r\n * Allows users to pick the date and hour of their choosing\r\n * This receives and sends the date/hour as an ISO String\r\n * TODO: Consider limiting the amount of string-to-moment transformations in the code\r\n * */\r\nclass DateTimePicker extends react_1.Component {\r\n constructor(props) {\r\n super(props);\r\n let start = props.defaultValueDateIsoString;\r\n if (start === undefined)\r\n start = DateTimePicker.nextHalfHourIsoString();\r\n this.state = {\r\n selectedDateIsoString: start,\r\n isEnabled: props.togglable\r\n ? props.defaultValueDateIsoString !== undefined\r\n : true,\r\n };\r\n this.onDateChange = this.onDateChange.bind(this);\r\n this.onTimeChange = this.onTimeChange.bind(this);\r\n this.onToggle = this.onToggle.bind(this);\r\n this.isValidDate = this.isValidDate.bind(this);\r\n }\r\n static nextHalfHourIsoString() {\r\n const start = (0, moment_1.default)();\r\n if (start.minute() >= 30) {\r\n start.add(1, \"h\");\r\n start.minute(0);\r\n }\r\n else {\r\n start.minute(30);\r\n }\r\n const ret = start.toISOString();\r\n return ret;\r\n }\r\n get dateMoment() {\r\n return moment_1.default.utc(this.state.selectedDateIsoString).local();\r\n }\r\n set dateMoment(val) {\r\n const selectedDateIsoString = val.utc().toISOString();\r\n this.setState({ selectedDateIsoString });\r\n this.props.onDateChange(this.state.isEnabled || !this.props.togglable\r\n ? selectedDateIsoString\r\n : undefined);\r\n }\r\n onDateChange(arg) {\r\n const argMoment = arg;\r\n let newMoment = this.dateMoment;\r\n newMoment = newMoment\r\n .year(argMoment.year())\r\n .month(argMoment.month())\r\n .date(argMoment.date());\r\n this.dateMoment = newMoment;\r\n }\r\n onTimeChange(argMoment) {\r\n let newMoment = this.dateMoment;\r\n newMoment = newMoment.hour(argMoment.hour()).minute(argMoment.minute());\r\n this.dateMoment = newMoment;\r\n }\r\n onToggle(isEnabled) {\r\n this.setState({ isEnabled });\r\n this.props.onDateChange(isEnabled ? this.state.selectedDateIsoString : undefined);\r\n }\r\n isValidDate(currentDate, selectedDate) {\r\n if (!!this.props.isValidDate)\r\n return this.props.isValidDate(currentDate, selectedDate);\r\n else\r\n return true;\r\n }\r\n renderControls() {\r\n const selectedMoment = (0, moment_1.default)(this.state.selectedDateIsoString);\r\n const selectedDate = selectedMoment.format(\"L\");\r\n const selectedHour = selectedMoment.format(\"h:mmA\");\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(react_datetime_1.default, { timeFormat: false, defaultValue: selectedDate, onChange: this.onDateChange, className: \"sb-date-picker\", isValidDate: this.isValidDate, inputProps: { disabled: this.props.disabled } }),\r\n react_1.default.createElement(TimePicker_1.TimePicker, { defaultValue: selectedHour, onChange: this.onTimeChange, disabled: this.props.disabled })));\r\n }\r\n renderBody() {\r\n if (this.state.isEnabled || !this.props.togglable) {\r\n return this.renderControls();\r\n }\r\n else {\r\n return (react_1.default.createElement(\"label\", { className: \"sb-datepicker-none-label text-muted\" }, this.props.noneTitle));\r\n }\r\n }\r\n render() {\r\n return (react_1.default.createElement(reactstrap_1.FormGroup, { className: \"sb-datepicker\" },\r\n react_1.default.createElement(reactstrap_1.InputGroup, { \"aria-disabled\": this.props.disabled },\r\n react_1.default.createElement(controls_1.FaPrepend, { icon: \"calendar-alt\" }),\r\n react_1.default.createElement(reactstrap_1.InputGroupAddon, { addonType: \"prepend\", className: \"sb-title-input-addon\" }, this.props.title),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: this.props.togglable },\r\n react_1.default.createElement(controls_1.Toggle, { onToggle: this.onToggle, defaultValue: this.state.isEnabled, disabled: this.props.disabled, title: \"Session Schedule\" })),\r\n this.renderBody())));\r\n }\r\n}\r\nexports.DateTimePicker = DateTimePicker;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TimePicker = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\n// TODO: Swap with Luxon the moment we don't already have a dependency on moment\r\nconst moment_1 = __importDefault(require(\"moment\"));\r\n/** Time of day picker */\r\nclass TimePicker extends react_1.Component {\r\n // TODO: Timezones\r\n constructor(props) {\r\n super(props);\r\n this.onChange = this.onChange.bind(this);\r\n }\r\n onChange(event) {\r\n const selectedText = event.target.selectedOptions[0].text;\r\n const selectedTime = (0, moment_1.default)(selectedText, \"h:mmA\");\r\n this.props.onChange(selectedTime);\r\n }\r\n render() {\r\n return (react_1.default.createElement(\"select\", { className: \"form-control sb-input-group-height-fix sb-time-picker\", defaultValue: typeof this.props.defaultValue === \"number\"\r\n ? this.props.defaultValue.toString()\r\n : this.props.defaultValue, onChange: this.onChange, disabled: this.props.disabled, title: \"Time of Day\" },\r\n react_1.default.createElement(\"option\", { value: \"12:00AM\" }, \"12:00AM\"),\r\n react_1.default.createElement(\"option\", { value: \"12:30AM\" }, \"12:30AM\"),\r\n react_1.default.createElement(\"option\", { value: \"1:00AM\" }, \"1:00AM\"),\r\n react_1.default.createElement(\"option\", { value: \"1:30AM\" }, \"1:30AM\"),\r\n react_1.default.createElement(\"option\", { value: \"2:00AM\" }, \"2:00AM\"),\r\n react_1.default.createElement(\"option\", { value: \"2:30AM\" }, \"2:30AM\"),\r\n react_1.default.createElement(\"option\", { value: \"3:00AM\" }, \"3:00AM\"),\r\n react_1.default.createElement(\"option\", { value: \"3:30AM\" }, \"3:30AM\"),\r\n react_1.default.createElement(\"option\", { value: \"4:00AM\" }, \"4:00AM\"),\r\n react_1.default.createElement(\"option\", { value: \"4:30AM\" }, \"4:30AM\"),\r\n react_1.default.createElement(\"option\", { value: \"5:00AM\" }, \"5:00AM\"),\r\n react_1.default.createElement(\"option\", { value: \"5:30AM\" }, \"5:30AM\"),\r\n react_1.default.createElement(\"option\", { value: \"6:00AM\" }, \"6:00AM\"),\r\n react_1.default.createElement(\"option\", { value: \"6:30AM\" }, \"6:30AM\"),\r\n react_1.default.createElement(\"option\", { value: \"7:00AM\" }, \"7:00AM\"),\r\n react_1.default.createElement(\"option\", { value: \"7:30AM\" }, \"7:30AM\"),\r\n react_1.default.createElement(\"option\", { value: \"8:00AM\" }, \"8:00AM\"),\r\n react_1.default.createElement(\"option\", { value: \"8:30AM\" }, \"8:30AM\"),\r\n react_1.default.createElement(\"option\", { value: \"9:00AM\" }, \"9:00AM\"),\r\n react_1.default.createElement(\"option\", { value: \"9:30AM\" }, \"9:30AM\"),\r\n react_1.default.createElement(\"option\", { value: \"10:00AM\" }, \"10:00AM\"),\r\n react_1.default.createElement(\"option\", { value: \"10:30AM\" }, \"10:30AM\"),\r\n react_1.default.createElement(\"option\", { value: \"11:00AM\" }, \"11:00AM\"),\r\n react_1.default.createElement(\"option\", { value: \"11:30AM\" }, \"11:30AM\"),\r\n react_1.default.createElement(\"option\", { value: \"12:00PM\" }, \"12:00PM\"),\r\n react_1.default.createElement(\"option\", { value: \"12:30PM\" }, \"12:30PM\"),\r\n react_1.default.createElement(\"option\", { value: \"1:00PM\" }, \"1:00PM\"),\r\n react_1.default.createElement(\"option\", { value: \"1:30PM\" }, \"1:30PM\"),\r\n react_1.default.createElement(\"option\", { value: \"2:00PM\" }, \"2:00PM\"),\r\n react_1.default.createElement(\"option\", { value: \"2:30PM\" }, \"2:30PM\"),\r\n react_1.default.createElement(\"option\", { value: \"3:00PM\" }, \"3:00PM\"),\r\n react_1.default.createElement(\"option\", { value: \"3:30PM\" }, \"3:30PM\"),\r\n react_1.default.createElement(\"option\", { value: \"4:00PM\" }, \"4:00PM\"),\r\n react_1.default.createElement(\"option\", { value: \"4:30PM\" }, \"4:30PM\"),\r\n react_1.default.createElement(\"option\", { value: \"5:00PM\" }, \"5:00PM\"),\r\n react_1.default.createElement(\"option\", { value: \"5:30PM\" }, \"5:30PM\"),\r\n react_1.default.createElement(\"option\", { value: \"6:00PM\" }, \"6:00PM\"),\r\n react_1.default.createElement(\"option\", { value: \"6:30PM\" }, \"6:30PM\"),\r\n react_1.default.createElement(\"option\", { value: \"7:00PM\" }, \"7:00PM\"),\r\n react_1.default.createElement(\"option\", { value: \"7:30PM\" }, \"7:30PM\"),\r\n react_1.default.createElement(\"option\", { value: \"8:00PM\" }, \"8:00PM\"),\r\n react_1.default.createElement(\"option\", { value: \"8:30PM\" }, \"8:30PM\"),\r\n react_1.default.createElement(\"option\", { value: \"9:00PM\" }, \"9:00PM\"),\r\n react_1.default.createElement(\"option\", { value: \"9:30PM\" }, \"9:30PM\"),\r\n react_1.default.createElement(\"option\", { value: \"10:00PM\" }, \"10:00PM\"),\r\n react_1.default.createElement(\"option\", { value: \"10:30PM\" }, \"10:30PM\"),\r\n react_1.default.createElement(\"option\", { value: \"11:00PM\" }, \"11:00PM\"),\r\n react_1.default.createElement(\"option\", { value: \"11:30PM\" }, \"11:30PM\")));\r\n }\r\n}\r\nexports.TimePicker = TimePicker;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ItemPicker = exports.ListItemActionType = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst react_select_1 = __importDefault(require(\"react-select\"));\r\nconst animated_1 = __importDefault(require(\"react-select/animated\"));\r\nvar ListItemActionType;\r\n(function (ListItemActionType) {\r\n ListItemActionType[ListItemActionType[\"add\"] = 1] = \"add\";\r\n ListItemActionType[ListItemActionType[\"none\"] = 0] = \"none\";\r\n ListItemActionType[ListItemActionType[\"remove\"] = -1] = \"remove\";\r\n})(ListItemActionType = exports.ListItemActionType || (exports.ListItemActionType = {}));\r\n/***************************************************************************************************\r\n * Utility Methods\r\n **************************************************************************************************/\r\n/**\r\n * Converts an ad-hoc item into an IOption instance using custom getName/getValue functions.\r\n * @param items - array of ad-hoc items to convert into an array of IOption items.\r\n * @param getName - function used to extract the display name of an item.\r\n * @param getValue - function used to extract the value of an item.\r\n */\r\nfunction mapToOption(items, getName, getValue) {\r\n // Make sure if items is nullish to return an empty array\r\n if (!items)\r\n return [];\r\n // Map the items into options (e.g. something consumable by react-select)\r\n const mappedItems = items.map((item) => {\r\n return {\r\n label: getName(item),\r\n value: getValue(item),\r\n item: item,\r\n };\r\n });\r\n return mappedItems;\r\n}\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\n/**\r\n * The ItemPicker component is a generic picker component with single/multi selection capability.\r\n * @param props - component properties\r\n */\r\nconst ItemPicker = (props) => {\r\n //////////[ Variables ]///////////////////////////////////////////////////////////////////////////\r\n var _a;\r\n const placeHolder = (_a = props.placeHolder) !== null && _a !== void 0 ? _a : \"Select an Item...\";\r\n const isMulti = props.isMulti === true ? true : false;\r\n const closeMenuOnSelect = isMulti === false || props.closeMenuOnSelect === true ? true : false;\r\n const mappedOptions = mapToOption(props.selectedItems, props.getName, props.getValue);\r\n //////////[ State ]///////////////////////////////////////////////////////////////////////////////\r\n let [isMounting, setIsMounting] = (0, react_1.useState)(true);\r\n let [allOptions, setAllOptions] = (0, react_1.useState)(mapToOption(props.items, props.getName, props.getValue));\r\n let [selectedOrig, setSelectedOrig] = (0, react_1.useState)(mappedOptions);\r\n let [selected, setSelected] = (0, react_1.useState)(mappedOptions);\r\n //////////[ Initialization ]//////////////////////////////////////////////////////////////////////\r\n function initialize() {\r\n if (isMounting) {\r\n setIsMounting(false);\r\n }\r\n else {\r\n const mappedOptions = mapToOption(props.selectedItems, props.getName, props.getValue);\r\n setAllOptions(mapToOption(props.items, props.getName, props.getValue));\r\n setSelectedOrig(mappedOptions);\r\n setSelected(mappedOptions);\r\n }\r\n }\r\n (0, react_1.useEffect)(() => {\r\n initialize();\r\n }, [props.items, props.selectedItems]);\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n function onChange(selected, actionMeta) {\r\n var _a;\r\n // Update state based on the selected value(s)\r\n setSelected(selected);\r\n if (isMulti) {\r\n onChangeList((_a = selected) !== null && _a !== void 0 ? _a : []);\r\n }\r\n else {\r\n if (props.onItemSelected) {\r\n props.onItemSelected(selected === null || selected === void 0 ? void 0 : selected.item);\r\n }\r\n onChangeList(selected ? [selected.item] : []);\r\n }\r\n }\r\n function onChangeList(selectedOptions) {\r\n if (props.onChange) {\r\n // Determine the status of all originally selected items\r\n let changes = selectedOrig.map((origSel) => {\r\n return {\r\n item: origSel.item,\r\n index: selectedOptions.findIndex((selectedOption) => selectedOption.value == origSel.value),\r\n // When an originally selected item appears in the selected list, nothing has changed\r\n // When an originally selected item does NOT appear in the selected list, it was removed\r\n action: selectedOptions.find((curSel) => curSel.value == origSel.value)\r\n ? ListItemActionType.none\r\n : ListItemActionType.remove,\r\n };\r\n });\r\n // Iterate through currently selected items\r\n selectedOptions.forEach((currentSelItem, index) => {\r\n // When a currently selected item is not present in the list of changes it is an addition\r\n if (!changes.find((changeEntry) => props.getValue(changeEntry.item) == currentSelItem.value)) {\r\n changes.push({\r\n index: index,\r\n item: currentSelItem.item,\r\n action: ListItemActionType.add,\r\n });\r\n }\r\n });\r\n // Let callers know about any changes\r\n props.onChange(changes);\r\n }\r\n }\r\n //////////[ Render ]//////////////////////////////////////////////////////////////////////////////\r\n return (react_1.default.createElement(react_select_1.default, { className: \"sb-picker\", classNamePrefix: \"sb-picker\", options: allOptions, defaultValue: selected, value: selected, components: (0, animated_1.default)(), isMulti: isMulti, closeMenuOnSelect: closeMenuOnSelect, onChange: onChange, isClearable: false, isDisabled: props.disabled, placeholder: placeHolder }));\r\n};\r\nexports.ItemPicker = ItemPicker;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PeoplePicker = exports.PeoplePickerMePolicy = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = require(\"react\");\r\nconst react_select_1 = __importDefault(require(\"react-select\"));\r\nconst creatable_1 = __importDefault(require(\"react-select/creatable\"));\r\nconst animated_1 = __importDefault(require(\"react-select/animated\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst select_1 = require(\"../select\");\r\nconst __1 = require(\"../..\");\r\nconst CreatablePaginatingSelect = (0, select_1.withAsyncPaginate)(creatable_1.default);\r\nconst PaginatingSelect = (0, select_1.withAsyncPaginate)(react_select_1.default);\r\n/** The behavior of the picker in regard to the current user */\r\nvar PeoplePickerMePolicy;\r\n(function (PeoplePickerMePolicy) {\r\n /** Allow the current user on the list, but not pre-selected */\r\n PeoplePickerMePolicy[PeoplePickerMePolicy[\"Allow\"] = 0] = \"Allow\";\r\n /** Current user is included */\r\n PeoplePickerMePolicy[PeoplePickerMePolicy[\"Include\"] = 1] = \"Include\";\r\n /** Current user is locked into the list to be included */\r\n PeoplePickerMePolicy[PeoplePickerMePolicy[\"Require\"] = 2] = \"Require\";\r\n /** Does not show the current user whatsoever */\r\n PeoplePickerMePolicy[PeoplePickerMePolicy[\"Deny\"] = 3] = \"Deny\";\r\n})(PeoplePickerMePolicy = exports.PeoplePickerMePolicy || (exports.PeoplePickerMePolicy = {}));\r\n/**\r\n * A list of people in the organization, potentially subsetted to a team, that also optionally allows for new options via email\r\n * */\r\nclass PeoplePicker extends react_2.Component {\r\n static personToOption(person) {\r\n let name = api_1.Utils.userDisplay(person.user, false, true);\r\n return { label: name, value: person.route };\r\n }\r\n static peopleToOptions(people) {\r\n if (people == null) {\r\n return [];\r\n }\r\n const ret = people.map((p) => PeoplePicker.personToOption(p));\r\n return ret;\r\n }\r\n constructor(props) {\r\n var _a, _b;\r\n super(props);\r\n this.doPropsOnChange = this.doPropsOnChange.bind(this);\r\n this.onChange = this.onChange.bind(this);\r\n this.onCreateOption = this.onCreateOption.bind(this);\r\n this.onFormatCreateLabel = this.onFormatCreateLabel.bind(this);\r\n this.loadOptions = this.loadOptions.bind(this);\r\n this.animatedComponents = (0, animated_1.default)();\r\n const value = [];\r\n const mePolicy = (_a = this.props.mePolicy) !== null && _a !== void 0 ? _a : PeoplePickerMePolicy.Allow;\r\n if (mePolicy === PeoplePickerMePolicy.Include) {\r\n const me = (_b = __1.WidgetStore.organizations.currentOrg) === null || _b === void 0 ? void 0 : _b.details.me;\r\n if (me == null) {\r\n console.error(\"Trying to load me into a picker before initialization\");\r\n }\r\n else {\r\n value.push(PeoplePicker.personToOption(me));\r\n }\r\n }\r\n else if (mePolicy !== PeoplePickerMePolicy.Allow) {\r\n console.warn(\"People picker requested missing me policy:\", PeoplePickerMePolicy[mePolicy]);\r\n }\r\n this.state = {\r\n value,\r\n };\r\n }\r\n doPropsOnChange(newValue) {\r\n var _a, _b, _c, _d;\r\n const tokens = [];\r\n const myRoute = (_b = (_a = __1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.details.me) === null || _b === void 0 ? void 0 : _b.route;\r\n const checkForMeAndFilter = this.props.mePolicy === PeoplePickerMePolicy.Deny &&\r\n ((_d = (_c = __1.WidgetStore.organizations.currentOrg) === null || _c === void 0 ? void 0 : _c.details.me) === null || _d === void 0 ? void 0 : _d.route) != null;\r\n if (newValue) {\r\n const listOfOptions = newValue;\r\n for (const option of listOfOptions) {\r\n if (checkForMeAndFilter && option.value === myRoute) {\r\n continue;\r\n }\r\n tokens.push(option.value);\r\n }\r\n }\r\n this.props.onChange(tokens);\r\n }\r\n onChange(newValue) {\r\n this.setState({ value: newValue });\r\n this.doPropsOnChange(newValue);\r\n }\r\n onCreateOption(inputValue) {\r\n const email = api_1.Utils.validateEmail(inputValue);\r\n if (!email)\r\n return;\r\n const newOption = {\r\n label: email,\r\n value: email,\r\n };\r\n let newValue = [...(this.state.value || []), newOption];\r\n this.setState({\r\n value: newValue,\r\n });\r\n this.doPropsOnChange(newValue);\r\n }\r\n onFormatCreateLabel(inputValue) {\r\n return `Send Invite to ${inputValue}...`;\r\n }\r\n get isEmptyMode() {\r\n return this.props.orgRoute == null;\r\n }\r\n loadOptions(filter, prevOptions) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // If we don't have an org associated, then we don't load groups at all - we're just empty\r\n if (this.isEmptyMode || this.props.orgRoute == null) {\r\n return {\r\n options: [],\r\n hasMore: false,\r\n };\r\n }\r\n const page = yield __1.WidgetStore.people.readAllAsync(this.props.orgRoute, {\r\n filter,\r\n skip: (_a = prevOptions === null || prevOptions === void 0 ? void 0 : prevOptions.length) !== null && _a !== void 0 ? _a : 0,\r\n });\r\n const hasMore = api_1.PageUtils.hasMorePages(page);\r\n const options = PeoplePicker.peopleToOptions(page.result);\r\n return {\r\n options,\r\n hasMore,\r\n };\r\n });\r\n }\r\n pendingEmails() {\r\n const { value } = this.state;\r\n let emailOptions = [];\r\n if (value)\r\n emailOptions = value.filter((o) => api_1.Utils.validateEmail(o.value) !== undefined);\r\n return emailOptions;\r\n }\r\n staticPicker() {\r\n var _a;\r\n const options = PeoplePicker.peopleToOptions(this.props.options);\r\n return ((0, react_1.jsx)(creatable_1.default, { className: \"sb-picker\", classNamePrefix: \"sb-picker\", closeMenuOnSelect: this.isEmptyMode, components: this.animatedComponents, formatCreateLabel: this.onFormatCreateLabel, isDisabled: this.props.disabled, isMulti: true, onChange: this.onChange, options: options, placeholder: (_a = this.props.placeholder) !== null && _a !== void 0 ? _a : \"Select Person or Enter E-Mail...\", value: this.state.value }));\r\n }\r\n pagingPicker() {\r\n var _a, _b;\r\n if (this.props.allowInvite) {\r\n return ((0, react_1.jsx)(CreatablePaginatingSelect, { className: \"sb-picker\", classNamePrefix: \"sb-picker\", closeMenuOnSelect: this.isEmptyMode, debounceTimeout: 300, formatCreateLabel: this.onFormatCreateLabel, isMulti: true, loadOptions: this.loadOptions, onChange: this.onChange, placeholder: (_a = this.props.placeholder) !== null && _a !== void 0 ? _a : \"Select Person or Enter E-Mail...\", shouldLoadMore: __1.shouldLoadMorePickerPages, value: this.state.value }));\r\n }\r\n else {\r\n return ((0, react_1.jsx)(PaginatingSelect, { className: \"sb-picker\", classNamePrefix: \"sb-picker\", closeMenuOnSelect: this.isEmptyMode, debounceTimeout: 300, formatCreateLabel: this.onFormatCreateLabel, isMulti: true, loadOptions: this.loadOptions, onChange: this.onChange, placeholder: (_b = this.props.placeholder) !== null && _b !== void 0 ? _b : \"Select Person or Enter E-Mail...\", shouldLoadMore: __1.shouldLoadMorePickerPages, value: this.state.value }));\r\n }\r\n }\r\n picker() {\r\n if (this.props.options != null) {\r\n return this.staticPicker();\r\n }\r\n else {\r\n return this.pagingPicker();\r\n }\r\n }\r\n render() {\r\n // Pull e-mails\r\n const pendingEmails = this.pendingEmails();\r\n return ((0, react_1.jsx)(\"div\", { title: this.props.title },\r\n this.picker(),\r\n (0, react_1.jsx)(__1.ShowWhen, { is: pendingEmails.length > 0 },\r\n (0, react_1.jsx)(\"ul\", { className: \"sb-peoplepicker-invites\" }, pendingEmails.map((opt) => {\r\n return ((0, react_1.jsx)(\"li\", { key: opt.value, className: \"text-muted\" },\r\n \"Invite will be sent to '\",\r\n opt.value,\r\n \"'\"));\r\n })))));\r\n }\r\n}\r\nexports.PeoplePicker = PeoplePicker;\r\n","\"use strict\";\r\n// This file is directly imported from the react-select-async-paginate project due to React version conflicts\r\n// https://github.com/vtaits/react-select-async-paginate\r\n// At some point, we should catch up to React 17, then it should be possible to replace these files with the real npm package again\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AsyncPaginate = exports.useComponents = exports.useAsyncPaginate = exports.useAsyncPaginateBase = exports.withAsyncPaginate = exports.reduceGroupedOptions = exports.wrapMenuList = void 0;\r\nconst react_select_1 = __importDefault(require(\"react-select\"));\r\nconst withAsyncPaginate_1 = require(\"./withAsyncPaginate\");\r\nObject.defineProperty(exports, \"withAsyncPaginate\", { enumerable: true, get: function () { return withAsyncPaginate_1.withAsyncPaginate; } });\r\nvar wrapMenuList_1 = require(\"./wrapMenuList\");\r\nObject.defineProperty(exports, \"wrapMenuList\", { enumerable: true, get: function () { return wrapMenuList_1.wrapMenuList; } });\r\nvar reduceGroupedOptions_1 = require(\"./reduceGroupedOptions\");\r\nObject.defineProperty(exports, \"reduceGroupedOptions\", { enumerable: true, get: function () { return reduceGroupedOptions_1.reduceGroupedOptions; } });\r\nvar useAsyncPaginateBase_1 = require(\"./useAsyncPaginateBase\");\r\nObject.defineProperty(exports, \"useAsyncPaginateBase\", { enumerable: true, get: function () { return useAsyncPaginateBase_1.useAsyncPaginateBase; } });\r\nvar useAsyncPaginate_1 = require(\"./useAsyncPaginate\");\r\nObject.defineProperty(exports, \"useAsyncPaginate\", { enumerable: true, get: function () { return useAsyncPaginate_1.useAsyncPaginate; } });\r\nvar useComponents_1 = require(\"./useComponents\");\r\nObject.defineProperty(exports, \"useComponents\", { enumerable: true, get: function () { return useComponents_1.useComponents; } });\r\nexports.AsyncPaginate = (0, withAsyncPaginate_1.withAsyncPaginate)(react_select_1.default);\r\n__exportStar(require(\"./types\"), exports);\r\n","\"use strict\";\r\n// This file is directly imported from the react-select-async-paginate project due to React version conflicts\r\n// https://github.com/vtaits/react-select-async-paginate\r\n// At some point, we should catch up to React 17, then it should be possible to replace these files with the real npm package again\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.useAsyncPaginate = exports.useAsyncPaginatePure = void 0;\r\nconst react_1 = require(\"react\");\r\nconst useAsyncPaginateBase_1 = require(\"./useAsyncPaginateBase\");\r\nconst useAsyncPaginatePure = (useStateParam, useCallbackParam, useAsyncPaginateBaseParam, params, deps = []) => {\r\n const { inputValue: inputValueParam, menuIsOpen: menuIsOpenParam, defaultInputValue: defaultInputValueParam, defaultMenuIsOpen: defaultMenuIsOpenParam, onInputChange: onInputChangeParam, onMenuClose: onMenuCloseParam, onMenuOpen: onMenuOpenParam, } = params;\r\n const [inputValueState, setInputValue] = useStateParam(defaultInputValueParam || \"\");\r\n const [menuIsOpenState, setMenuIsOpen] = useStateParam(!!defaultMenuIsOpenParam);\r\n const inputValue = typeof inputValueParam === \"string\" ? inputValueParam : inputValueState;\r\n const menuIsOpen = typeof menuIsOpenParam === \"boolean\" ? menuIsOpenParam : menuIsOpenState;\r\n const onInputChange = useCallbackParam((nextInputValue, actionMeta) => {\r\n if (onInputChangeParam) {\r\n onInputChangeParam(nextInputValue, actionMeta);\r\n }\r\n setInputValue(nextInputValue);\r\n }, [onInputChangeParam]);\r\n const onMenuClose = useCallbackParam(() => {\r\n if (onMenuCloseParam) {\r\n onMenuCloseParam();\r\n }\r\n setMenuIsOpen(false);\r\n }, [onMenuCloseParam]);\r\n const onMenuOpen = useCallbackParam(() => {\r\n if (onMenuOpenParam) {\r\n onMenuOpenParam();\r\n }\r\n setMenuIsOpen(true);\r\n }, [onMenuOpenParam]);\r\n const baseResult = useAsyncPaginateBaseParam(Object.assign(Object.assign({}, params), { inputValue,\r\n menuIsOpen }), deps);\r\n return Object.assign(Object.assign({}, baseResult), { inputValue,\r\n menuIsOpen,\r\n onInputChange,\r\n onMenuClose,\r\n onMenuOpen });\r\n};\r\nexports.useAsyncPaginatePure = useAsyncPaginatePure;\r\nconst useAsyncPaginate = (params, deps = []) => (0, exports.useAsyncPaginatePure)(react_1.useState, react_1.useCallback, useAsyncPaginateBase_1.useAsyncPaginateBase, params, deps);\r\nexports.useAsyncPaginate = useAsyncPaginate;\r\n","\"use strict\";\r\n// This file is directly imported from the react-select-async-paginate project due to React version conflicts\r\n// https://github.com/vtaits/react-select-async-paginate\r\n// At some point, we should catch up to React 17, then it should be possible to replace these files with the real npm package again\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __rest = (this && this.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.useAsyncPaginateBase = exports.useAsyncPaginateBasePure = exports.increaseStateId = exports.requestOptions = exports.getInitialCache = exports.getInitialOptionsCache = exports.validateResponse = void 0;\r\nconst react_1 = require(\"react\");\r\nconst sleep_promise_1 = __importDefault(require(\"sleep-promise\"));\r\nconst react_is_mounted_hook_1 = __importDefault(require(\"react-is-mounted-hook\"));\r\nconst defaultShouldLoadMore_1 = require(\"./defaultShouldLoadMore\");\r\nconst defaultReduceOptions_1 = require(\"./defaultReduceOptions\");\r\nconst errorText = '[react-select-async-paginate] response of \"loadOptions\" should be an object with \"options\" prop, which contains array of options.';\r\nconst validateResponse = (console, \r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nresponse) => {\r\n if (!response) {\r\n console.error(errorText, \"Received:\", response);\r\n throw new Error(errorText);\r\n }\r\n if (!Array.isArray(response.options)) {\r\n console.error(errorText, \"Received:\", response);\r\n throw new Error(errorText);\r\n }\r\n};\r\nexports.validateResponse = validateResponse;\r\nconst getInitialOptionsCache = ({ options, defaultOptions, additional, defaultAdditional, }) => {\r\n const initialOptions = defaultOptions === true\r\n ? null\r\n : defaultOptions instanceof Array\r\n ? defaultOptions\r\n : options;\r\n if (initialOptions) {\r\n return {\r\n \"\": {\r\n isFirstLoad: false,\r\n isLoading: false,\r\n options: initialOptions,\r\n hasMore: true,\r\n additional: defaultAdditional || additional,\r\n },\r\n };\r\n }\r\n return {};\r\n};\r\nexports.getInitialOptionsCache = getInitialOptionsCache;\r\nconst getInitialCache = (params) => ({\r\n isFirstLoad: true,\r\n options: [],\r\n hasMore: true,\r\n isLoading: false,\r\n additional: params.additional,\r\n});\r\nexports.getInitialCache = getInitialCache;\r\nconst requestOptions = (caller, paramsRef, optionsCacheRef, debounceTimeout, sleepParam, setOptionsCache, validateResponseParam, reduceOptions) => __awaiter(void 0, void 0, void 0, function* () {\r\n const currentInputValue = paramsRef.current.inputValue;\r\n const isCacheEmpty = !optionsCacheRef.current[currentInputValue];\r\n const currentOptions = isCacheEmpty\r\n ? (0, exports.getInitialCache)(paramsRef.current)\r\n : optionsCacheRef.current[currentInputValue];\r\n if (currentOptions.isLoading || !currentOptions.hasMore) {\r\n return;\r\n }\r\n setOptionsCache((prevOptionsCache) => (Object.assign(Object.assign({}, prevOptionsCache), { [currentInputValue]: Object.assign(Object.assign({}, currentOptions), { isLoading: true }) })));\r\n if (debounceTimeout > 0 && caller === \"input-change\") {\r\n yield sleepParam(debounceTimeout);\r\n const newInputValue = paramsRef.current.inputValue;\r\n if (currentInputValue !== newInputValue) {\r\n setOptionsCache((prevOptionsCache) => {\r\n if (isCacheEmpty) {\r\n const _a = prevOptionsCache, _b = currentInputValue, itemForDelete = _a[_b], restCache = __rest(_a, [typeof _b === \"symbol\" ? _b : _b + \"\"]);\r\n return restCache;\r\n }\r\n return Object.assign(Object.assign({}, prevOptionsCache), { [currentInputValue]: Object.assign(Object.assign({}, currentOptions), { isLoading: false }) });\r\n });\r\n return;\r\n }\r\n }\r\n let response;\r\n let hasError;\r\n try {\r\n const { loadOptions } = paramsRef.current;\r\n response = yield loadOptions(currentInputValue, currentOptions.options, currentOptions.additional);\r\n hasError = false;\r\n }\r\n catch (e) {\r\n hasError = true;\r\n }\r\n if (hasError) {\r\n setOptionsCache((prevOptionsCache) => (Object.assign(Object.assign({}, prevOptionsCache), { [currentInputValue]: Object.assign(Object.assign({}, currentOptions), { isLoading: false }) })));\r\n return;\r\n }\r\n validateResponseParam(console, response);\r\n const { options, hasMore } = response;\r\n // eslint-disable-next-line no-prototype-builtins\r\n const newAdditional = response.hasOwnProperty(\"additional\")\r\n ? response.additional\r\n : currentOptions.additional;\r\n setOptionsCache((prevOptionsCache) => (Object.assign(Object.assign({}, prevOptionsCache), { [currentInputValue]: Object.assign(Object.assign({}, currentOptions), { options: reduceOptions(currentOptions.options, options, newAdditional), hasMore: !!hasMore, isLoading: false, isFirstLoad: false, additional: newAdditional }) })));\r\n});\r\nexports.requestOptions = requestOptions;\r\nconst increaseStateId = (prevStateId) => prevStateId + 1;\r\nexports.increaseStateId = increaseStateId;\r\nconst useAsyncPaginateBasePure = (useRefParam, useStateParam, useEffectParam, useCallbackParam, useIsMountedParam, validateResponseParam, getInitialOptionsCacheParam, requestOptionsParam, params, deps = []) => {\r\n const { defaultOptions, loadOptionsOnMenuOpen = true, debounceTimeout = 0, inputValue, menuIsOpen, filterOption = null, reduceOptions = defaultReduceOptions_1.defaultReduceOptions, shouldLoadMore = defaultShouldLoadMore_1.defaultShouldLoadMore, } = params;\r\n const isMounted = useIsMountedParam();\r\n const isInitRef = useRefParam(true);\r\n const paramsRef = useRefParam(params);\r\n paramsRef.current = params;\r\n const setStateId = useStateParam(0)[1];\r\n // WARNING from Erik: Library has some kind of type declaraction issue here since it's settings a null on a non-nullable type; coercing it for now\r\n const optionsCacheRef = useRefParam(null);\r\n if (optionsCacheRef.current === null) {\r\n optionsCacheRef.current = getInitialOptionsCacheParam(params);\r\n }\r\n const callRequestOptions = useCallbackParam((caller) => {\r\n requestOptionsParam(caller, paramsRef, optionsCacheRef, debounceTimeout, sleep_promise_1.default, (reduceState) => {\r\n optionsCacheRef.current = reduceState(optionsCacheRef.current);\r\n if (isMounted()) {\r\n setStateId(exports.increaseStateId);\r\n }\r\n }, validateResponseParam, reduceOptions);\r\n }, [debounceTimeout]);\r\n const handleScrolledToBottom = useCallbackParam(() => {\r\n const currentInputValue = paramsRef.current.inputValue;\r\n const currentOptions = optionsCacheRef.current[currentInputValue];\r\n if (currentOptions) {\r\n callRequestOptions(\"menu-scroll\");\r\n }\r\n }, [callRequestOptions]);\r\n useEffectParam(() => {\r\n if (isInitRef.current) {\r\n isInitRef.current = false;\r\n }\r\n else {\r\n optionsCacheRef.current = {};\r\n setStateId(exports.increaseStateId);\r\n }\r\n if (defaultOptions === true) {\r\n callRequestOptions(\"autoload\");\r\n }\r\n }, deps);\r\n useEffectParam(() => {\r\n if (menuIsOpen && !optionsCacheRef.current[inputValue]) {\r\n callRequestOptions(\"input-change\");\r\n }\r\n }, [inputValue]);\r\n useEffectParam(() => {\r\n if (menuIsOpen && !optionsCacheRef.current[\"\"] && loadOptionsOnMenuOpen) {\r\n callRequestOptions(\"menu-toggle\");\r\n }\r\n }, [menuIsOpen]);\r\n const currentOptions = optionsCacheRef.current[inputValue] || (0, exports.getInitialCache)(params);\r\n return {\r\n handleScrolledToBottom,\r\n shouldLoadMore,\r\n filterOption,\r\n isLoading: currentOptions.isLoading,\r\n isFirstLoad: currentOptions.isFirstLoad,\r\n options: currentOptions.options,\r\n };\r\n};\r\nexports.useAsyncPaginateBasePure = useAsyncPaginateBasePure;\r\nconst useAsyncPaginateBase = (params, deps = []) => (0, exports.useAsyncPaginateBasePure)(react_1.useRef, react_1.useState, react_1.useEffect, react_1.useCallback, react_is_mounted_hook_1.default, exports.validateResponse, exports.getInitialOptionsCache, exports.requestOptions, params, deps);\r\nexports.useAsyncPaginateBase = useAsyncPaginateBase;\r\n","\"use strict\";\r\n// This file is directly imported from the react-select-async-paginate project due to React version conflicts\r\n// https://github.com/vtaits/react-select-async-paginate\r\n// At some point, we should catch up to React 17, then it should be possible to replace these files with the real npm package again\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.useComponents = exports.useComponentsPure = exports.MenuList = void 0;\r\nconst react_1 = require(\"react\");\r\nconst react_select_1 = require(\"react-select\");\r\nconst wrapMenuList_1 = require(\"./wrapMenuList\");\r\nexports.MenuList = (0, wrapMenuList_1.wrapMenuList)(react_select_1.components.MenuList);\r\nconst useComponentsPure = (useMemoParam, components) => useMemoParam(() => (Object.assign({ MenuList: exports.MenuList }, components)), [components]);\r\nexports.useComponentsPure = useComponentsPure;\r\nconst useComponents = (components) => (0, exports.useComponentsPure)(react_1.useMemo, components);\r\nexports.useComponents = useComponents;\r\n","\"use strict\";\r\n// This file is directly imported from the react-select-async-paginate project due to React version conflicts\r\n// https://github.com/vtaits/react-select-async-paginate\r\n// At some point, we should catch up to React 17, then it should be possible to replace these files with the real npm package again\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.wrapMenuList = exports.CHECK_TIMEOUT = void 0;\r\nconst react_1 = require(\"react\");\r\nconst compose_react_refs_1 = __importDefault(require(\"@seznam/compose-react-refs\"));\r\nconst react_2 = __importDefault(require(\"react\"));\r\nexports.CHECK_TIMEOUT = 300;\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst wrapMenuList = (MenuList) => {\r\n function WrappedMenuList(props) {\r\n const { selectProps: { handleScrolledToBottom, shouldLoadMore }, innerRef, useEffect: useEffectProp, useRef: useRefProp, useCallback: useCallbackProp, setTimeout: setTimeoutProp, clearTimeout: clearTimeoutProp, } = props;\r\n // WARNING: Type inconsistency in the library\r\n if (useRefProp == null) {\r\n throw new Error(\"useRefProp cannot be null\");\r\n }\r\n // WARNING: Type inconsistency in the library\r\n if (useCallbackProp == null) {\r\n throw new Error(\"useCallbackProp cannot be null\");\r\n }\r\n // WARNING: Type inconsistency in the library\r\n const checkTimeoutRef = useRefProp(null);\r\n const menuListRef = useRefProp(null);\r\n const shouldHandle = useCallbackProp(() => {\r\n const el = menuListRef.current;\r\n // menu not rendered\r\n if (!el) {\r\n return false;\r\n }\r\n const { scrollTop, scrollHeight, clientHeight } = el;\r\n return shouldLoadMore(scrollHeight, clientHeight, scrollTop);\r\n }, [shouldLoadMore]);\r\n const checkAndHandle = useCallbackProp(() => {\r\n if (shouldHandle()) {\r\n if (handleScrolledToBottom) {\r\n handleScrolledToBottom();\r\n }\r\n }\r\n }, [shouldHandle, handleScrolledToBottom]);\r\n // WARNING: Type inconsistency in the library\r\n if (setTimeoutProp == null) {\r\n throw new Error(\"setTimeoutProp cannot be null\");\r\n }\r\n const setCheckAndHandleTimeout = useCallbackProp(() => {\r\n checkAndHandle();\r\n checkTimeoutRef.current = setTimeoutProp(setCheckAndHandleTimeout, exports.CHECK_TIMEOUT);\r\n }, [checkAndHandle]);\r\n // WARNING: Type inconsistency in the library\r\n if (useEffectProp == null) {\r\n throw new Error(\"useEffectProp cannot be null\");\r\n }\r\n // WARNING: Type inconsistency in the library\r\n if (clearTimeoutProp == null) {\r\n throw new Error(\"clearTimeoutProp cannot be null\");\r\n }\r\n useEffectProp(() => {\r\n setCheckAndHandleTimeout();\r\n return () => {\r\n if (checkTimeoutRef.current) {\r\n clearTimeoutProp(checkTimeoutRef.current);\r\n }\r\n };\r\n }, []);\r\n return (react_2.default.createElement(MenuList, Object.assign({}, props, { innerRef: (0, compose_react_refs_1.default)(innerRef, menuListRef) })));\r\n }\r\n WrappedMenuList.defaultProps = {\r\n useEffect: react_1.useEffect,\r\n useRef: react_1.useRef,\r\n useCallback: react_1.useCallback,\r\n setTimeout,\r\n clearTimeout,\r\n };\r\n return WrappedMenuList;\r\n};\r\nexports.wrapMenuList = wrapMenuList;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ActivityCards = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst KpiCard_1 = require(\"./KpiCard\");\r\nconst controls_1 = require(\"../controls\");\r\n/** Shows the people and time metrics for the given ActivityReport object */\r\nexports.ActivityCards = (0, mobx_react_lite_1.observer)((props) => {\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n const timeSummary = (minutes) => {\r\n if (minutes == null) {\r\n return \"\";\r\n }\r\n const hrs = Math.floor(minutes / 60);\r\n const min = (minutes - hrs * 60) % 60;\r\n let ret = \"\";\r\n if (hrs > 0)\r\n ret += `${hrs}h `;\r\n ret += `${min}m`;\r\n return ret;\r\n };\r\n const highlight = (highlight) => {\r\n return (react_1.default.createElement(reactstrap_1.Col, { lg: 6, xl: 3, className: \"mt-4\" },\r\n react_1.default.createElement(KpiCard_1.KpiCard, { title: highlight.title, stat: highlight.value })));\r\n };\r\n return (react_1.default.createElement(controls_1.ShowWhen, { is: !!props.activityReport },\r\n react_1.default.createElement(\"div\", { className: \"ml-2\" },\r\n react_1.default.createElement(\"h3\", { className: \"mt-3\" },\r\n react_1.default.createElement(\"i\", { className: \"fas fa-chart-area\" }),\r\n \"Activity\")),\r\n react_1.default.createElement(reactstrap_1.Row, { className: \"\" },\r\n react_1.default.createElement(reactstrap_1.Col, { lg: 6, xl: 3, className: \"mt-1\" },\r\n react_1.default.createElement(KpiCard_1.KpiCard, { title: \"Listeners\", tooltip: \"Number of unique people who have listened to at least one Soundbite Session\", stat: (_a = props.activityReport) === null || _a === void 0 ? void 0 : _a.consumerCount, statIcon: free_solid_svg_icons_1.faHeadphonesAlt })),\r\n react_1.default.createElement(reactstrap_1.Col, { lg: 6, xl: 3, className: \"mt-1\" },\r\n react_1.default.createElement(KpiCard_1.KpiCard, { title: \"Listening Time\", tooltip: \"Total session time listened by all people - remember it's possible to listen to a Soundbite Session more than once per person\", stat: timeSummary((_b = props.activityReport) === null || _b === void 0 ? void 0 : _b.unitsConsumed), statIcon: free_solid_svg_icons_1.faHourglassEnd })),\r\n react_1.default.createElement(reactstrap_1.Col, { lg: 6, xl: 3, className: \"mt-1\" },\r\n react_1.default.createElement(KpiCard_1.KpiCard, { title: \"Speakers\", tooltip: \"Number of unique people who have created one or more Soundbite Session\", stat: (_c = props.activityReport) === null || _c === void 0 ? void 0 : _c.producerCount, statIcon: free_solid_svg_icons_1.faHeadset })),\r\n react_1.default.createElement(reactstrap_1.Col, { lg: 6, xl: 3, className: \"mt-1\" },\r\n react_1.default.createElement(KpiCard_1.KpiCard, { title: \"Recording Time\", tooltip: \"Total Soundbite Session time recorded by all people\", stat: timeSummary((_d = props.activityReport) === null || _d === void 0 ? void 0 : _d.unitsProduced), statIcon: free_solid_svg_icons_1.faHourglassStart }))),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: ((_f = (_e = props.activityReport) === null || _e === void 0 ? void 0 : _e.highlights.length) !== null && _f !== void 0 ? _f : 0) > 0 },\r\n react_1.default.createElement(reactstrap_1.Row, null, (_g = props.activityReport) === null || _g === void 0 ? void 0 : _g.highlights.slice(0, 4).map((item) => {\r\n return highlight(item);\r\n })))));\r\n});\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ContentCards = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst KpiCard_1 = require(\"./KpiCard\");\r\nconst controls_1 = require(\"../controls\");\r\nconst widgets_1 = require(\"../../widgets\");\r\n/** Visualizes the metrics for the OrgContentReport object */\r\nexports.ContentCards = (0, mobx_react_lite_1.observer)((props) => {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\r\n const highlight = (highlight, icon, tooltip) => {\r\n if (highlight == null) {\r\n return react_1.default.createElement(react_1.default.Fragment, null);\r\n }\r\n return (react_1.default.createElement(reactstrap_1.Col, { lg: 6, xl: 3, className: \"mt-1\" },\r\n react_1.default.createElement(KpiCard_1.KpiCard, { title: highlight.title, tooltip: tooltip, stat: highlight.value, statIcon: icon })));\r\n };\r\n return (react_1.default.createElement(controls_1.ShowWhen, { is: !!props.contentReport },\r\n react_1.default.createElement(\"div\", { className: \"ml-1\" },\r\n react_1.default.createElement(\"h3\", { className: \"mt-3\" },\r\n react_1.default.createElement(\"i\", { className: \"fas fa-chart-area\" }),\r\n \"Content\")),\r\n react_1.default.createElement(reactstrap_1.Row, { className: \"\" },\r\n highlight((_a = props.contentReport) === null || _a === void 0 ? void 0 : _a.sessionsCount, free_solid_svg_icons_1.faMicrophone, \"Number of sessions in the organization for the given time period\"),\r\n highlight((_b = props.contentReport) === null || _b === void 0 ? void 0 : _b.seriesCount, free_solid_svg_icons_1.faRedo, \"Number of active recurring sessions in the organization for the given time period\"),\r\n highlight((_c = props.contentReport) === null || _c === void 0 ? void 0 : _c.consumeCount, free_solid_svg_icons_1.faPlay, \"Number of times anyone played a session - people may have listened to a session more than once\"),\r\n highlight((_d = props.contentReport) === null || _d === void 0 ? void 0 : _d.acknowledgeCount, free_solid_svg_icons_1.faCheck, \"Number of times a session was confirmed by someone - this can only happen once per person per session\")),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: ((_f = (_e = props.contentReport) === null || _e === void 0 ? void 0 : _e.highlights.length) !== null && _f !== void 0 ? _f : 0) > 0 },\r\n react_1.default.createElement(reactstrap_1.Row, null, (_g = props.contentReport) === null || _g === void 0 ? void 0 : _g.highlights.slice(0, 4).map((item) => {\r\n return highlight(item);\r\n }))),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: props.orgRoute != null && ((_h = props.contentReport) === null || _h === void 0 ? void 0 : _h.recentSessions) != null },\r\n react_1.default.createElement(reactstrap_1.Row, null,\r\n react_1.default.createElement(reactstrap_1.Col, { className: \"mt-4\" },\r\n react_1.default.createElement(widgets_1.FeedWidget, { title: \"Most Recent Soundbite Sessions\", isReadOnly: true, orgRoute: props.orgRoute, sessions: (_j = props.contentReport) === null || _j === void 0 ? void 0 : _j.recentSessions }))))));\r\n});\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./FeedWidget\"), exports);\r\n__exportStar(require(\"./MegaWidget\"), exports);\r\n__exportStar(require(\"./PastSessionsWidget\"), exports);\r\n__exportStar(require(\"./PendingSessionsWidget\"), exports);\r\n__exportStar(require(\"./PeopleWidget\"), exports);\r\n__exportStar(require(\"./PlayerWidget\"), exports);\r\n__exportStar(require(\"./PublicPlayerWidget\"), exports);\r\n__exportStar(require(\"./RecordWidget\"), exports);\r\n__exportStar(require(\"./SeriesWidget\"), exports);\r\n__exportStar(require(\"./SessionEditorWidget\"), exports);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FeedWidget = exports.FeedMode = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst TableFeedWidget_1 = require(\"./TableFeedWidget\");\r\nconst CardFeedWidget_1 = require(\"./CardFeedWidget\");\r\nvar FeedMode;\r\n(function (FeedMode) {\r\n FeedMode[FeedMode[\"Table\"] = 0] = \"Table\";\r\n FeedMode[FeedMode[\"Card\"] = 1] = \"Card\";\r\n})(FeedMode = exports.FeedMode || (exports.FeedMode = {}));\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexports.FeedWidget = (0, mobx_react_lite_1.observer)((props) => {\r\n if (props.mode === FeedMode.Card) {\r\n return (0, react_1.jsx)(CardFeedWidget_1.CardFeedWidget, Object.assign({}, props));\r\n }\r\n return (0, react_1.jsx)(TableFeedWidget_1.TableFeedWidget, Object.assign({}, props));\r\n});\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RecordWidget = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst sanitize_html_1 = __importDefault(require(\"sanitize-html\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst components_1 = require(\"../components\");\r\nconst enums_1 = require(\"../enums\");\r\nconst store_1 = require(\"../store\");\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\n/**\r\n * Widget for the standalone recording of content\r\n * @param props\r\n */\r\nconst RecordWidget = (props) => {\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n var _a, _b;\r\n let [isSaving, setIsSaving] = (0, react_1.useState)(false);\r\n let [recorderState, setRecorderState] = (0, react_1.useState)(enums_1.DialogState.Empty);\r\n let recordAndPlay = (0, react_1.useRef)(null);\r\n let [session, setSession] = react_1.default.useState();\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n react_1.default.useEffect(() => {\r\n function init() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (props.session) {\r\n setSession(props.session);\r\n }\r\n else if (!props.session && props.orgRoute && props.sessionRoute) {\r\n const result = yield store_1.WidgetStore.sessions.readSessionDetailsAsync(props.orgRoute, props.sessionRoute);\r\n if (result) {\r\n setSession(result);\r\n }\r\n }\r\n });\r\n }\r\n init();\r\n }, [props.session, props.sessionRoute, props.orgRoute]);\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n function onRecordChange(state) {\r\n setRecorderState(state);\r\n if (props.onRecordChange) {\r\n props.onRecordChange(state);\r\n }\r\n }\r\n function onSave() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n if (!props.orgRoute)\r\n throw new Error(\"No current organization loaded\");\r\n if (!recordAndPlay.current)\r\n throw new Error(\"Cannot upload clip without live recorder\");\r\n setIsSaving(true);\r\n const file = recordAndPlay.current.file;\r\n if (!file)\r\n throw new Error(\"Could not load recording as file\");\r\n if (!session)\r\n throw new Error(\"Could not load Soundbite Session\");\r\n const promptRoute = session.prompts[0].route;\r\n const newClip = {\r\n hostingType: api_1.ClipHostingType.AzureStorage,\r\n clipType: api_1.ClipType.Prompt,\r\n fileType: api_1.FileType.Mp3,\r\n participantRole: props.participantRole,\r\n stream: file,\r\n seconds: recordAndPlay.current.duration,\r\n };\r\n yield store_1.WidgetStore.sessions.uploadClipAsync(props.orgRoute, session.route, promptRoute, newClip);\r\n if (props.onSave) {\r\n props.onSave();\r\n }\r\n if (props.onClose) {\r\n props.onClose();\r\n }\r\n }\r\n catch (err) {\r\n onError(err);\r\n //TODO: do we need to show something directly in the widget?\r\n }\r\n finally {\r\n setIsSaving(false);\r\n }\r\n });\r\n }\r\n function isInvalid() {\r\n if (!session)\r\n return true;\r\n if (recorderState !== enums_1.DialogState.Ready)\r\n return true;\r\n return false;\r\n }\r\n function onError(err) {\r\n if (props.onError) {\r\n props.onError(err);\r\n }\r\n }\r\n function onClose() {\r\n if (props.onClose) {\r\n props.onClose();\r\n }\r\n }\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n const agendaText = (_a = session === null || session === void 0 ? void 0 : session.prompts[0].text) !== null && _a !== void 0 ? _a : \"\";\r\n const cleanPromptContext = (0, sanitize_html_1.default)(agendaText);\r\n let errors = [];\r\n if (!props.orgRoute) {\r\n errors.push(\"Organization route not provided\");\r\n }\r\n if (!props.session && !props.sessionRoute) {\r\n errors.push(\"Session or session route was not provided.\");\r\n }\r\n if (errors.length > 0) {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(\"div\", null, \"Record Widget cannot display due to the following:\"),\r\n react_1.default.createElement(\"ul\", null, errors.map((error) => {\r\n return react_1.default.createElement(\"li\", null, error);\r\n }))));\r\n }\r\n else {\r\n return (react_1.default.createElement(components_1.Loader, { isLoadedWhen: session !== undefined, style: { minHeight: \"12rem\" }, message: \"Loading Recorder...\" },\r\n react_1.default.createElement(\"div\", { className: \"sb-record-widget\" },\r\n react_1.default.createElement(\"div\", null,\r\n react_1.default.createElement(components_1.RecordAndPlay, { ref: recordAndPlay, onChange: onRecordChange }),\r\n react_1.default.createElement(components_1.ShowWhen, { is: ((_b = agendaText === null || agendaText === void 0 ? void 0 : agendaText.length) !== null && _b !== void 0 ? _b : 0) > 0 },\r\n react_1.default.createElement(\"h3\", { className: \"mb-0 mt-3\" }, \"Call to Action\"),\r\n react_1.default.createElement(\"div\", { dangerouslySetInnerHTML: { __html: cleanPromptContext } })),\r\n react_1.default.createElement(components_1.ParticipantSummary, { className: \"mt-2\", session: session, hideAudienceRoleWarning: true })),\r\n react_1.default.createElement(components_1.ShowWhen, { is: props.showButtons },\r\n react_1.default.createElement(\"div\", { className: \"modal-footer\" },\r\n react_1.default.createElement(\"button\", { type: \"button\", className: \"btn btn-outline-secondary\", onClick: onClose, title: \"Close\" }, \"Close\"),\r\n \" \",\r\n react_1.default.createElement(\"button\", { type: \"button\", className: \"btn btn-primary\", onClick: onSave, disabled: isInvalid() || isSaving, title: \"Save Session Recording\" }, \"Save\"))))));\r\n }\r\n};\r\nexports.RecordWidget = RecordWidget;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PastSessionsWidget = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst store_1 = require(\"../store\");\r\nconst controls_1 = require(\"../components/controls\");\r\nconst components_1 = require(\"../components\");\r\nconst SessionTable_1 = require(\"../components/SessionTable\");\r\n/**\r\n * Starts the request for more SessionPreview objects\r\n * @param orgRoute\r\n * @param groupRoute\r\n * @param page\r\n */\r\nfunction readPastSessions(orgRoute, groupRoute, page) {\r\n if (groupRoute == null) {\r\n return api_1.SessionsService.readPastAsync(orgRoute, page);\r\n }\r\n else {\r\n return api_1.SessionsService.readGroupPastAsync(orgRoute, groupRoute, page);\r\n }\r\n}\r\n/** Display an expandable list of sessions that are pending for the given org or group */\r\nexports.PastSessionsWidget = (0, mobx_react_lite_1.observer)((props) => {\r\n var _a, _b;\r\n let { orgRoute, groupRoute } = props;\r\n // Component state\r\n const [count, setCount] = (0, react_1.useState)(undefined);\r\n const [isCreateEnabled, setCreateEnabled] = (0, react_1.useState)(!props.isReadOnly);\r\n const [title, setTitle] = (0, react_1.useState)(\"\");\r\n const tableRef = react_1.default.useRef(null);\r\n // Calculated\r\n const showTitle = props.showTitle === false ? false : true;\r\n const icon = (_a = props.icon) !== null && _a !== void 0 ? _a : free_solid_svg_icons_1.faCalendarCheck;\r\n const currentPerson = (_b = store_1.WidgetStore.organizations.currentOrg) === null || _b === void 0 ? void 0 : _b.details.me;\r\n /**\r\n * Async retrieve the title given the current context and optionally a current group\r\n * @param group\r\n */\r\n function getTitle(group) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (props.title) {\r\n return props.title;\r\n }\r\n if (group) {\r\n return `${group.name} History`;\r\n }\r\n if (props.orgRoute) {\r\n const org = yield store_1.WidgetStore.organizations.readOrgAsync(props.orgRoute);\r\n if (org) {\r\n return `${org.details.name} History`;\r\n }\r\n }\r\n return \"My History\";\r\n });\r\n }\r\n react_1.default.useEffect(() => {\r\n const load = () => __awaiter(void 0, void 0, void 0, function* () {\r\n var _a;\r\n const grp = groupRoute != null && groupRoute.trim().length > 0\r\n ? yield store_1.WidgetStore.groups.readGroupAsync(orgRoute, groupRoute)\r\n : undefined;\r\n const isCreateEnabled = !props.isReadOnly && ((_a = props.showCreateButton) !== null && _a !== void 0 ? _a : true);\r\n setCreateEnabled(isCreateEnabled);\r\n const newTitle = yield getTitle(grp);\r\n setTitle(newTitle);\r\n });\r\n load();\r\n // eslint-disable-next-line\r\n }, [\r\n props.orgRoute,\r\n props.groupRoute,\r\n store_1.WidgetStore.sessions.groupFeed,\r\n store_1.WidgetStore.sessions.orgFeed,\r\n store_1.WidgetStore.organizations.currentOrg,\r\n ]);\r\n // Events\r\n const onRefresh = () => __awaiter(void 0, void 0, void 0, function* () {\r\n var _c;\r\n (_c = tableRef.current) === null || _c === void 0 ? void 0 : _c.refresh();\r\n });\r\n function onOpenNewSession() {\r\n if (props.orgRoute) {\r\n store_1.WidgetStore.showNewSession(props.orgRoute, props.groupRoute, undefined, () => {\r\n onRefresh();\r\n });\r\n }\r\n }\r\n const onFirstLoad = (allowCache, page) => __awaiter(void 0, void 0, void 0, function* () {\r\n var _d;\r\n page.includesCounts = true;\r\n const ret = yield readPastSessions(orgRoute, groupRoute, page);\r\n setCount((_d = ret.totalCount) !== null && _d !== void 0 ? _d : 0);\r\n return ret;\r\n });\r\n const onFurtherLoad = (allowCache, page) => __awaiter(void 0, void 0, void 0, function* () {\r\n const ret = yield readPastSessions(orgRoute, groupRoute, page);\r\n return ret;\r\n });\r\n const Body = () => {\r\n let emptyMsg = \"No Past Sessions\";\r\n if (isCreateEnabled) {\r\n emptyMsg +=\r\n \". Create a new session and it will appear here after publishing.\";\r\n }\r\n if (count === 0) {\r\n return (react_1.default.createElement(components_1.EmptyCardBody, { hasBorder: true, prompt: emptyMsg, showImage: true },\r\n react_1.default.createElement(controls_1.ShowWhen, { is: isCreateEnabled },\r\n react_1.default.createElement(\"button\", { className: \"btn btn-icon btn-primary\", type: \"button\", onClick: onOpenNewSession, title: \"Create Soundbite Session\" },\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faPlus })),\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--text\" },\r\n react_1.default.createElement(react_1.Fragment, null, \"\\u00A0\"),\r\n \"Create Soundbite Session\")))));\r\n }\r\n return (react_1.default.createElement(SessionTable_1.SessionTable, { currentPerson: currentPerson, itemSize: 54, onFirstLoad: onFirstLoad, onFurtherLoad: onFurtherLoad, orgRoute: orgRoute, groupRoute: groupRoute, ref: tableRef }));\r\n };\r\n function Header() {\r\n return (react_1.default.createElement(controls_1.ShowWhen, { is: showTitle },\r\n react_1.default.createElement(reactstrap_1.CardHeader, { className: \"bg-transparent\" },\r\n react_1.default.createElement(reactstrap_1.Row, { className: \"align-items-center\" },\r\n react_1.default.createElement(reactstrap_1.Col, { xs: \"8\", md: \"6\" },\r\n react_1.default.createElement(\"h1\", { className: \"mb-0\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: icon, className: \"d-none d-sm-inline mr-1\" }),\r\n title)),\r\n react_1.default.createElement(reactstrap_1.Col, { className: \"text-right\", xs: \"4\", md: \"6\" },\r\n react_1.default.createElement(reactstrap_1.Button, { color: \"secondary\", outline: true, onClick: onRefresh, size: \"sm\", title: \"Refresh Session History\" },\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faSyncAlt }))),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: !props.isReadOnly && isCreateEnabled },\r\n react_1.default.createElement(\"button\", { className: \"btn btn-icon btn-primary btn-sm\", type: \"button\", onClick: onOpenNewSession, title: \"Create Soundbite Session\" },\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faPlus })),\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--text\" },\r\n react_1.default.createElement(\"span\", { className: \"d-none d-sm-inline\" },\r\n react_1.default.createElement(react_1.Fragment, null, \"\\u00A0\"),\r\n \"Create\"),\r\n react_1.default.createElement(\"span\", { className: \"d-none d-lg-inline\" },\r\n react_1.default.createElement(react_1.Fragment, null, \"\\u00A0\"),\r\n \"Soundbite\"),\r\n react_1.default.createElement(\"span\", { className: \"d-none d-md-inline\" },\r\n react_1.default.createElement(react_1.Fragment, null, \"\\u00A0\"),\r\n \"Session\")))))))));\r\n }\r\n return (react_1.default.createElement(reactstrap_1.Card, { className: \"sb-feed-card\" },\r\n react_1.default.createElement(Header, null),\r\n react_1.default.createElement(Body, null)));\r\n});\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionTable = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst moment_1 = __importDefault(require(\"moment\"));\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst RecordBtn_1 = require(\"../components/RecordBtn\");\r\nconst WidgetStore_1 = require(\"../store/WidgetStore\");\r\nconst controls_1 = require(\"../components/controls\");\r\nconst ErrorDlg_1 = require(\"./ErrorDlg\");\r\nconst InfiniteTable_1 = require(\"./controls/InfiniteTable\");\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexports.SessionTable = (0, mobx_react_lite_1.observer)(react_1.default.forwardRef((props, ref) => {\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n // State\r\n const [isLoading, setIsloading] = (0, react_1.useState)();\r\n const sessions = (0, react_1.useRef)(new Map());\r\n const [group, setGroup] = (0, react_1.useState)();\r\n const [count, setCount] = (0, react_1.useState)(undefined);\r\n // Optional columns only show if the data demands it\r\n const [showLimit, setShowLimit] = (0, react_1.useState)(false);\r\n const [showReminder, setShowReminder] = (0, react_1.useState)(false);\r\n const [showPublish, setShowPublish] = (0, react_1.useState)(false);\r\n const maxTake = (0, react_1.useRef)(32);\r\n const maxTotalItems = (0, react_1.useRef)(1024);\r\n // Calculated\r\n const isAdmin = WidgetStore_1.WidgetStore.isPersonRole(api_1.PersonRole.Admin);\r\n const isOwner = WidgetStore_1.WidgetStore.isMemberRole(api_1.MemberRole.Owner, group);\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Examines the given sessions to see if they activate showing any optional columns; if sessions is undefined, then this does nothing\r\n * @param sessions\r\n */\r\n const checkShowColumns = (sessions) => {\r\n if (sessions == null) {\r\n return;\r\n }\r\n for (const s of sessions) {\r\n if (!showReminder && s.reminder) {\r\n setShowReminder(true);\r\n }\r\n if ((!showPublish && s.publishSent != null) || s.publish != null) {\r\n setShowPublish(true);\r\n }\r\n if (!showLimit && s.limit > 0) {\r\n setShowLimit(true);\r\n }\r\n }\r\n };\r\n function firstLoad(allowCache = true) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n // Ensure defaults are set before proceeding\r\n if (isLoading ||\r\n props.currentPerson == null ||\r\n props.orgRoute == null) {\r\n return;\r\n }\r\n setIsloading(true);\r\n if (!allowCache) {\r\n sessions.current.clear();\r\n }\r\n const promises = [\r\n props.onFirstLoad(allowCache, { includesCounts: true }),\r\n ];\r\n if (props.groupRoute != null) {\r\n promises.push(WidgetStore_1.WidgetStore.groups.readGroupAsync(props.orgRoute, props.groupRoute, allowCache));\r\n }\r\n const results = yield Promise.all(promises);\r\n const firstSessions = results[0];\r\n const newGroup = results[1];\r\n checkShowColumns(firstSessions.result);\r\n api_1.PageUtils.addPageToMap(firstSessions, sessions.current);\r\n maxTake.current = firstSessions.maxTake;\r\n maxTotalItems.current = firstSessions.maxTotalResults;\r\n setGroup(newGroup);\r\n setCount((_a = firstSessions === null || firstSessions === void 0 ? void 0 : firstSessions.totalCount) !== null && _a !== void 0 ? _a : 0);\r\n setIsloading(false);\r\n }\r\n catch (err) {\r\n ErrorDlg_1.ErrorDlg.show(err, \"Error on first load of sessions\");\r\n }\r\n });\r\n }\r\n const loadMore = (startIndex, stopIndex) => __awaiter(void 0, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(void 0, void 0, void 0, function* () {\r\n try {\r\n // Indicate\r\n for (let index = startIndex; index <= stopIndex; index++) {\r\n sessions.current.set(index, null);\r\n }\r\n const page = yield props.onFurtherLoad(true, {\r\n skip: startIndex - 1,\r\n take: maxTake.current,\r\n });\r\n api_1.PageUtils.addPageToMap(page, sessions.current);\r\n resolve();\r\n }\r\n catch (err) {\r\n ErrorDlg_1.ErrorDlg.show(err, \"Error Loading Sessions\", `Error querying for sessions ${startIndex} to ${stopIndex}:`);\r\n reject();\r\n }\r\n }));\r\n });\r\n //////////[ Lifecycle ]/////////////////////////////////////////////////////////////////////////////\r\n react_1.default.useImperativeHandle(ref, () => ({\r\n refresh() {\r\n return firstLoad(false);\r\n },\r\n }));\r\n (0, react_1.useEffect)(() => {\r\n firstLoad(false);\r\n }, [props.currentPerson, props.orgRoute, props.groupRoute]);\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n function iAmHost(session) {\r\n if (session.myParticipants == null) {\r\n return false;\r\n }\r\n const myParticipants = session.myParticipants.filter((p) => p.participantRole === api_1.ParticipantRole.Host);\r\n return myParticipants.length > 0;\r\n }\r\n function isReadyToPlay(session) {\r\n // With dynamic group ownership, it is no longer possible to predict if the current user can or cannot play something\r\n return true;\r\n }\r\n function isReadyToRecord(session) {\r\n if (session.myParticipants == null) {\r\n return false;\r\n }\r\n const myParticipants = session.myParticipants.filter((p) => p.participantState === api_1.ParticipantState.ContributionRequested);\r\n return myParticipants.length > 0;\r\n }\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n function onDeleteSession(session) {\r\n if (props.orgRoute) {\r\n WidgetStore_1.WidgetStore.showDeleteSession(props.orgRoute, session);\r\n }\r\n }\r\n //function onEditSession(session: SessionPreview): void {\r\n // if (props.orgRoute) {\r\n // WidgetStore.showEditSession(props.orgRoute, session);\r\n // }\r\n //}\r\n function onReport(session) {\r\n if (props.orgRoute) {\r\n WidgetStore_1.WidgetStore.showReports(props.orgRoute, session);\r\n }\r\n }\r\n //////////[ Component UI Helper Methods ]/////////////////////////////////////////////////////////\r\n function renderButtons(session) {\r\n const isPrivileged = isAdmin || isOwner || iAmHost(session);\r\n const canRecord = !props.disableRecord &&\r\n !props.isReadOnly &&\r\n isPrivileged &&\r\n isReadyToRecord(session);\r\n const canDelete = !props.disableDelete && !props.isReadOnly && isPrivileged;\r\n const canReport = !props.disableReport && isPrivileged;\r\n const canPlay = !props.disablePlay && isReadyToPlay(session);\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(controls_1.ShowWhen, { is: canReport },\r\n react_1.default.createElement(\"button\", { className: \"btn btn-outline-primary btn-sm sb-edit-btn\", type: \"button\", onClick: () => onReport(session), title: \"Show Session Report\" },\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faSignal })),\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--text\" }))),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: canDelete },\r\n react_1.default.createElement(\"button\", { className: \"btn btn-outline-secondary btn-sm sb-delete-btn\", type: \"button\", onClick: () => onDeleteSession(session), title: \"Delete Session\" },\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faTrash })),\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--text\" }, \"Delete\"))),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: canRecord },\r\n react_1.default.createElement(RecordBtn_1.RecordBtn, { orgRoute: props.orgRoute, sessionRoute: session.route, participantRole: api_1.ParticipantRole.Host })),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: canPlay },\r\n react_1.default.createElement(controls_1.PlayBtn, { orgRoute: props.orgRoute, sessionRoute: session.route }))));\r\n }\r\n const SessionRow = (rowProps) => {\r\n var _a;\r\n // Emphasize either the reminder or publish date\r\n const reminderMoment = moment_1.default.utc(rowProps.session.reminder);\r\n const reminderTxt = showReminder && reminderMoment.isValid()\r\n ? reminderMoment.local().calendar()\r\n : \"None\";\r\n let reminderClass = reminderMoment.isValid() ? \"\" : \"text-muted\";\r\n const deadlineMoment = moment_1.default.utc((_a = rowProps.session.publishSent) !== null && _a !== void 0 ? _a : rowProps.session.publish);\r\n const publishTxt = showPublish && deadlineMoment.isValid()\r\n ? deadlineMoment.local().calendar()\r\n : \"None\";\r\n let publishClass = deadlineMoment.isValid() ? \"\" : \"text-muted\";\r\n // If we're showing both and they're valid, then we have to pick one to emphasize\r\n if (showReminder &&\r\n showPublish &&\r\n reminderMoment.isValid() &&\r\n deadlineMoment.isValid()) {\r\n // If we're still waiting on the deadline\r\n if (deadlineMoment.isBefore()) {\r\n reminderClass = \"text-muted\";\r\n }\r\n else {\r\n publishClass = \"text-muted\";\r\n }\r\n }\r\n return (react_1.default.createElement(\"tr\", { \"data-session-route\": rowProps.session.route, \"data-session-index\": rowProps.index },\r\n react_1.default.createElement(\"th\", null,\r\n rowProps.session.name,\r\n react_1.default.createElement(\"div\", { className: \"d-table-cell d-md-none\" },\r\n react_1.default.createElement(\"span\", { className: \"text-muted sb-cell-detail\" }, publishTxt))),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: !props.isReadOnly && showReminder },\r\n react_1.default.createElement(\"td\", { className: \"d-none d-lg-table-cell\" },\r\n react_1.default.createElement(\"span\", { className: reminderClass }, reminderTxt))),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: showPublish },\r\n react_1.default.createElement(\"td\", { className: \"d-none d-md-table-cell\" },\r\n react_1.default.createElement(\"span\", { className: publishClass }, publishTxt))),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: showLimit },\r\n react_1.default.createElement(\"td\", null, api_1.Utils.secondsToString(rowProps.session.limit))),\r\n react_1.default.createElement(\"td\", { className: \"text-right\" }, renderButtons(rowProps.session))));\r\n };\r\n const LoadingRow = (rowProps) => {\r\n return (react_1.default.createElement(\"tr\", { \"data-row-index\": rowProps.index, style: { height: `${props.itemSize}px` } },\r\n react_1.default.createElement(\"th\", { scope: \"row\", className: \"text-muted\" },\r\n \"Loading \",\r\n rowProps.index != null ? `${rowProps.index}...` : \"...\"),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: !props.isReadOnly && showReminder },\r\n react_1.default.createElement(\"td\", { className: \"d-none d-lg-table-cell\" })),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: showPublish },\r\n react_1.default.createElement(\"td\", { className: \"d-none d-md-table-cell\" })),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: showLimit },\r\n react_1.default.createElement(\"td\", null)),\r\n react_1.default.createElement(\"td\", null)));\r\n };\r\n const LastRow = () => {\r\n return (react_1.default.createElement(\"tr\", { style: { height: \"73px\" } },\r\n react_1.default.createElement(\"th\", { scope: \"row\", className: \"sort\", \"data-sort\": \"name\" },\r\n \"Cannot load more than \",\r\n maxTotalItems.current,\r\n \" at this time\"),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: !props.isReadOnly && showReminder },\r\n react_1.default.createElement(\"td\", null)),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: showPublish },\r\n react_1.default.createElement(\"td\", null)),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: showLimit },\r\n react_1.default.createElement(\"td\", null)),\r\n react_1.default.createElement(\"td\", null)));\r\n };\r\n const TableRow = ({ index, }) => {\r\n if (index >= maxTotalItems.current) {\r\n return react_1.default.createElement(LastRow, null);\r\n }\r\n const session = sessions.current.get(index);\r\n if (session == null) {\r\n return react_1.default.createElement(LoadingRow, { index: index });\r\n }\r\n return react_1.default.createElement(SessionRow, { session: session, index: index });\r\n };\r\n const TableHeader = () => {\r\n return (react_1.default.createElement(\"thead\", { className: \"thead-light\" },\r\n react_1.default.createElement(\"tr\", null,\r\n react_1.default.createElement(\"th\", { scope: \"col\", className: \"sort\", \"data-sort\": \"name\" }, \"Name\"),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: !props.isReadOnly && showReminder },\r\n react_1.default.createElement(\"th\", { scope: \"col\", className: \"sort d-none d-lg-table-cell\", \"data-sort\": \"reminder\" }, \"Reminder\")),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: showPublish },\r\n react_1.default.createElement(\"th\", { scope: \"col\", className: \"sort d-none d-md-table-cell\", \"data-sort\": \"publish\" }, \"Publish\")),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: showLimit },\r\n react_1.default.createElement(\"th\", { scope: \"col\", className: \"sort\", \"data-sort\": \"time\" }, \"Limit\")),\r\n react_1.default.createElement(\"th\", { scope: \"col\", className: \"sort\", \"data-sort\": \"action\", style: { width: \"206px\" } }))));\r\n };\r\n const isItemLoaded = (index) => {\r\n const session = sessions.current.get(index);\r\n return session != null;\r\n };\r\n return (react_1.default.createElement(controls_1.Loader, { isDisplayBased: true, isLoadedWhen: !isLoading, message: \"Loading Sessions...\", style: { minHeight: \"12rem\" } },\r\n react_1.default.createElement(InfiniteTable_1.InfiniteTable, { className: \"sb-max-width-table table align-items-center\", count: count !== null && count !== void 0 ? count : -1 + 1, header: react_1.default.createElement(TableHeader, null), isItemLoaded: isItemLoaded, itemSize: props.itemSize, loadMore: loadMore, minimumBatchSize: 32, row: TableRow })));\r\n}));\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PendingSessionsWidget = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst store_1 = require(\"../store\");\r\nconst controls_1 = require(\"../components/controls\");\r\nconst components_1 = require(\"../components\");\r\nconst SessionTable_1 = require(\"../components/SessionTable\");\r\n/**\r\n * Starts the request for more SessionPreview objects\r\n * @param orgRoute\r\n * @param groupRoute\r\n * @param page\r\n */\r\nfunction readPendingSessions(orgRoute, groupRoute, page) {\r\n if (groupRoute == null) {\r\n return api_1.SessionsService.readPendingAsync(orgRoute, page);\r\n }\r\n else {\r\n return api_1.SessionsService.readGroupPendingAsync(orgRoute, groupRoute, page);\r\n }\r\n}\r\n/** Display an expandable list of sessions that are pending for the given org or group */\r\nexports.PendingSessionsWidget = (0, mobx_react_lite_1.observer)((props) => {\r\n var _a, _b;\r\n let { orgRoute, groupRoute } = props;\r\n // Component state\r\n const [count, setCount] = (0, react_1.useState)(undefined);\r\n const [isCreateEnabled, setCreateEnabled] = (0, react_1.useState)(!props.isReadOnly);\r\n const [title, setTitle] = (0, react_1.useState)(\"\");\r\n const tableRef = react_1.default.useRef(null);\r\n // Calculated\r\n const showTitle = props.showTitle === false ? false : true;\r\n const icon = (_a = props.icon) !== null && _a !== void 0 ? _a : free_solid_svg_icons_1.faCalendarDay;\r\n const currentPerson = (_b = store_1.WidgetStore.organizations.currentOrg) === null || _b === void 0 ? void 0 : _b.details.me;\r\n /**\r\n * Async retrieve the title given the current context and optionally a current group\r\n * @param group\r\n */\r\n function getTitle(group) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (props.title) {\r\n return props.title;\r\n }\r\n if (group) {\r\n return `${group.name} Scheduled`;\r\n }\r\n if (props.orgRoute) {\r\n const org = yield store_1.WidgetStore.organizations.readOrgAsync(props.orgRoute);\r\n if (org) {\r\n return `${org.details.name} Scheduled`;\r\n }\r\n }\r\n return \"My Scheduled\";\r\n });\r\n }\r\n react_1.default.useEffect(() => {\r\n const load = () => __awaiter(void 0, void 0, void 0, function* () {\r\n var _a;\r\n const grp = groupRoute != null\r\n ? yield store_1.WidgetStore.groups.readGroupAsync(orgRoute, groupRoute)\r\n : undefined;\r\n const isCreateEnabled = !props.isReadOnly && ((_a = props.showCreateButton) !== null && _a !== void 0 ? _a : true);\r\n setCreateEnabled(isCreateEnabled);\r\n const newTitle = yield getTitle(grp);\r\n setTitle(newTitle);\r\n });\r\n load();\r\n // eslint-disable-next-line\r\n }, [\r\n props.orgRoute,\r\n props.groupRoute,\r\n store_1.WidgetStore.sessions.groupFeed,\r\n store_1.WidgetStore.sessions.orgFeed,\r\n store_1.WidgetStore.organizations.currentOrg,\r\n ]);\r\n // Events\r\n const onRefresh = () => __awaiter(void 0, void 0, void 0, function* () {\r\n var _c;\r\n (_c = tableRef.current) === null || _c === void 0 ? void 0 : _c.refresh();\r\n });\r\n function onOpenNewSession() {\r\n if (props.orgRoute) {\r\n store_1.WidgetStore.showNewSession(props.orgRoute, props.groupRoute, undefined, () => {\r\n onRefresh();\r\n });\r\n }\r\n }\r\n const onFirstLoad = (allowCache, page) => __awaiter(void 0, void 0, void 0, function* () {\r\n var _d;\r\n page.includesCounts = true;\r\n const ret = yield readPendingSessions(orgRoute, groupRoute, page);\r\n setCount((_d = ret.totalCount) !== null && _d !== void 0 ? _d : 0);\r\n return ret;\r\n });\r\n const onFurtherLoad = (allowCache, page) => __awaiter(void 0, void 0, void 0, function* () {\r\n const ret = yield readPendingSessions(orgRoute, groupRoute, page);\r\n return ret;\r\n });\r\n const Body = () => {\r\n let emptyMsg = \"No Scheduled Sessions\";\r\n if (isCreateEnabled) {\r\n emptyMsg +=\r\n \". Create a new scheduled or recurring session and it will appear here.\";\r\n }\r\n if (count === 0) {\r\n return (react_1.default.createElement(components_1.EmptyCardBody, { hasBorder: true, prompt: emptyMsg, showImage: true },\r\n react_1.default.createElement(controls_1.ShowWhen, { is: isCreateEnabled },\r\n react_1.default.createElement(\"button\", { className: \"btn btn-icon btn-primary\", type: \"button\", onClick: onOpenNewSession, title: \"Create Soundbite Session\" },\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faPlus })),\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--text\" },\r\n react_1.default.createElement(react_1.Fragment, null, \"\\u00A0\"),\r\n \"Create Soundbite Session\")))));\r\n }\r\n return (react_1.default.createElement(SessionTable_1.SessionTable, { currentPerson: currentPerson, disablePlay: true, disableReport: true, itemSize: 54, onFirstLoad: onFirstLoad, onFurtherLoad: onFurtherLoad, orgRoute: orgRoute, groupRoute: groupRoute, ref: tableRef }));\r\n };\r\n function Header() {\r\n return (react_1.default.createElement(controls_1.ShowWhen, { is: showTitle },\r\n react_1.default.createElement(reactstrap_1.CardHeader, { className: \"bg-transparent\" },\r\n react_1.default.createElement(reactstrap_1.Row, { className: \"align-items-center\" },\r\n react_1.default.createElement(reactstrap_1.Col, { xs: \"8\", md: \"6\" },\r\n react_1.default.createElement(\"h1\", { className: \"mb-0\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: icon, className: \"d-none d-sm-inline mr-1\" }),\r\n title)),\r\n react_1.default.createElement(reactstrap_1.Col, { className: \"text-right\", xs: \"4\", md: \"6\" },\r\n react_1.default.createElement(reactstrap_1.Button, { color: \"secondary\", outline: true, onClick: onRefresh, size: \"sm\", title: \"Refresh Scheduled Sessions\" },\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faSyncAlt }))),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: !props.isReadOnly && isCreateEnabled },\r\n react_1.default.createElement(\"button\", { className: \"btn btn-icon btn-primary btn-sm\", type: \"button\", onClick: onOpenNewSession, title: \"Create Soundbite Session\" },\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faPlus })),\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--text\" },\r\n react_1.default.createElement(\"span\", { className: \"d-none d-sm-inline\" },\r\n react_1.default.createElement(react_1.Fragment, null, \"\\u00A0\"),\r\n \"Create\"),\r\n react_1.default.createElement(\"span\", { className: \"d-none d-lg-inline\" },\r\n react_1.default.createElement(react_1.Fragment, null, \"\\u00A0\"),\r\n \"Soundbite\"),\r\n react_1.default.createElement(\"span\", { className: \"d-none d-md-inline\" },\r\n react_1.default.createElement(react_1.Fragment, null, \"\\u00A0\"),\r\n \"Session\")))))))));\r\n }\r\n return (react_1.default.createElement(reactstrap_1.Card, { className: \"sb-feed-card\" },\r\n react_1.default.createElement(Header, null),\r\n react_1.default.createElement(Body, null)));\r\n});\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SeriesWidget = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst components_1 = require(\"../components\");\r\nconst store_1 = require(\"../store\");\r\nconst SeriesDetailsBtn_1 = __importDefault(require(\"../components/controls/SeriesDetailsBtn\"));\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexports.SeriesWidget = (0, mobx_react_lite_1.observer)((props) => {\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n let [isLoading, setIsLoading] = react_2.default.useState(false);\r\n const [title, setTitle] = (0, react_2.useState)(\"Calendar\");\r\n const [feedSeries, setFeedSeries] = (0, react_2.useState)([]);\r\n const [isCreateEnabled, setCreateEnabled] = (0, react_2.useState)(false);\r\n const [emptyMessage, setEmptyMessage] = (0, react_2.useState)(\"You have no recurring Soundbite Sessions\");\r\n const isGroupMode = props.groupRoute != null && props.groupRoute.trim().length > 0;\r\n const [errorTitle, setErrorTitle] = (0, react_2.useState)(undefined);\r\n const showTitle = props.showTitle === false ? false : true;\r\n const orderSessions = (series) => {\r\n if (series == null) {\r\n return [];\r\n }\r\n const ret = series.sort((a, b) => {\r\n var _a, _b, _c, _d;\r\n return ((_a = a.template.publish) !== null && _a !== void 0 ? _a : \"\") < ((_b = b.template.publish) !== null && _b !== void 0 ? _b : \"\")\r\n ? 1\r\n : ((_c = a.template.publish) !== null && _c !== void 0 ? _c : \"\") > ((_d = b.template.publish) !== null && _d !== void 0 ? _d : \"\")\r\n ? -1\r\n : 0;\r\n });\r\n return ret;\r\n };\r\n const applySeries = (sessions) => {\r\n const feed = orderSessions(sessions);\r\n setFeedSeries(feed);\r\n };\r\n const loadSeries = (inGroup, allowCache = true) => __awaiter(void 0, void 0, void 0, function* () {\r\n // Determine whether the sessions were passed directly to the widget\r\n if (props.series) {\r\n // Use the explicitly specified sessions\r\n applySeries(props.series);\r\n return;\r\n }\r\n // Determine whether a group context was specified\r\n if (props.groupRoute) {\r\n // Determine whether the current user is part of the specified group\r\n let canLoadGroup = inGroup;\r\n if (!inGroup) {\r\n let outsideGroup = yield store_1.WidgetStore.groups.readGroupAsync(props.orgRoute, props.groupRoute, allowCache);\r\n canLoadGroup = outsideGroup != null;\r\n }\r\n if (canLoadGroup) {\r\n const series = yield store_1.WidgetStore.sessions.readGroupSeriesAsync(props.orgRoute, props.groupRoute, allowCache);\r\n applySeries(series);\r\n }\r\n else {\r\n throw new api_1.PublicError(undefined, \"Cannot load feed for team, no access\");\r\n }\r\n }\r\n else {\r\n // Use sessions from \"My Feed\"\r\n const feed = yield store_1.WidgetStore.sessions.readOrgSeriesAsync(props.orgRoute, allowCache);\r\n applySeries(feed);\r\n }\r\n });\r\n /** Gets the current group for the context and whether or not the current user appears to be in it */\r\n /** Gets the current group for the context and whether or not the current user appears to be in it */\r\n function getGroup(allowCache) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!props.orgRoute || !props.groupRoute) {\r\n return { inGroup: false };\r\n }\r\n try {\r\n const group = yield store_1.WidgetStore.groups.readGroupAsync(props.orgRoute, props.groupRoute, allowCache);\r\n const inGroup = group.memberRole >= api_1.MemberRole.Member;\r\n return { group, inGroup };\r\n }\r\n catch (err) {\r\n setErrorTitle(`Cannot access group series for ${props.groupRoute}`);\r\n return { inGroup: false };\r\n }\r\n });\r\n }\r\n /**\r\n * Async retrieve the title given the current context and optionally a current group\r\n * @param group\r\n */\r\n const getTitle = (group, allowCache = true) => __awaiter(void 0, void 0, void 0, function* () {\r\n if (props.title) {\r\n return props.title;\r\n }\r\n if (group) {\r\n return `${group.name} Calendar`;\r\n }\r\n if (props.orgRoute) {\r\n const org = yield store_1.WidgetStore.organizations.readOrgAsync(props.orgRoute, allowCache);\r\n if (org) {\r\n return `${org.details.name} Calendar`;\r\n }\r\n }\r\n return \"My Calendar\";\r\n });\r\n const loadTitle = (group, allowCache = true) => __awaiter(void 0, void 0, void 0, function* () {\r\n const newTitle = yield getTitle(group, allowCache);\r\n setTitle(newTitle);\r\n });\r\n const load = (allowCache = true) => __awaiter(void 0, void 0, void 0, function* () {\r\n var _a, _b;\r\n if (isLoading) {\r\n return;\r\n }\r\n setIsLoading(true);\r\n // TODO: Parallel?\r\n // Reset the feed first\r\n setFeedSeries(undefined);\r\n const { group, inGroup } = yield getGroup(allowCache);\r\n yield loadTitle(group), allowCache;\r\n yield loadSeries(inGroup, allowCache);\r\n const isCreateEnabled = (_a = props.showCreateButton) !== null && _a !== void 0 ? _a : true;\r\n setCreateEnabled(isCreateEnabled);\r\n const noun = isGroupMode ? \"team\" : \"organization\";\r\n const noFeedMessage = isCreateEnabled\r\n ? (_b = props.noFeedMessage) !== null && _b !== void 0 ? _b : `Try making a recurring Soundbite Session for your ${noun} to consistently collaborate`\r\n : `Your ${noun} does not yet have any recurring Soundbite Sessions`;\r\n setEmptyMessage(noFeedMessage);\r\n setIsLoading(false);\r\n });\r\n (0, react_2.useEffect)(() => {\r\n load();\r\n }, [\r\n props.orgRoute,\r\n props.groupRoute,\r\n props.currentUser,\r\n props.series,\r\n store_1.WidgetStore.sessions.orgSeries,\r\n store_1.WidgetStore.sessions.groupSeries,\r\n ]);\r\n react_2.default.useEffect(() => {\r\n var _a;\r\n applySeries((_a = props.series) !== null && _a !== void 0 ? _a : []);\r\n }, [props.series]);\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n function iAmHost(series) {\r\n const myParticipants = series.template.myParticipants.filter((p) => p.participantRole === api_1.ParticipantRole.Host);\r\n return myParticipants.length > 0;\r\n }\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n function onOpenNewSession() {\r\n store_1.WidgetStore.showNewSession(props.orgRoute, props.groupRoute, true);\r\n }\r\n //////////[ Component UI Helper Methods ]/////////////////////////////////////////////////////////\r\n function Header() {\r\n return ((0, react_1.jsx)(components_1.ShowWhen, { is: showTitle },\r\n (0, react_1.jsx)(reactstrap_1.CardHeader, { className: \"border-0\" },\r\n (0, react_1.jsx)(reactstrap_1.Row, { className: \"align-items-center\" },\r\n (0, react_1.jsx)(reactstrap_1.Col, { xs: \"8\", md: \"6\" },\r\n (0, react_1.jsx)(\"h1\", { className: \"mb-0\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faCalendar, className: \"d-none d-sm-inline mr-1\" }),\r\n title)),\r\n (0, react_1.jsx)(reactstrap_1.Col, { className: \"text-right\", xs: \"4\", md: \"6\" },\r\n (0, react_1.jsx)(reactstrap_1.Button, { className: \"btn-icon\", size: \"sm\", color: \"secondary\", outline: true, type: \"button\", onClick: () => {\r\n load(false);\r\n }, title: \"Refresh Series\" },\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--icon\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faSyncAlt }))),\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: isCreateEnabled },\r\n (0, react_1.jsx)(\"button\", { className: \"btn btn-icon btn-primary btn-sm\", type: \"button\", onClick: onOpenNewSession, title: \"Create Soundbite Series\" },\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--icon\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faPlus })),\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--text\" },\r\n (0, react_1.jsx)(\"span\", { className: \"d-none d-sm-inline\" },\r\n (0, react_1.jsx)(react_2.Fragment, null, \"\\u00A0\"),\r\n \"Create\"),\r\n (0, react_1.jsx)(\"span\", { className: \"d-none d-lg-inline\" },\r\n (0, react_1.jsx)(react_2.Fragment, null, \"\\u00A0\"),\r\n \"Soundbite\"),\r\n (0, react_1.jsx)(\"span\", { className: \"d-none d-md-inline\" },\r\n (0, react_1.jsx)(react_2.Fragment, null, \"\\u00A0\"),\r\n \"Series\")))))))));\r\n }\r\n function Body() {\r\n var _a, _b;\r\n return ((0, react_1.jsx)(\"div\", { className: \"table-responsive\" },\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: ((_a = feedSeries === null || feedSeries === void 0 ? void 0 : feedSeries.length) !== null && _a !== void 0 ? _a : 0) === 0 },\r\n (0, react_1.jsx)(components_1.EmptyCardBody, { hasBorder: true, prompt: emptyMessage },\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: isCreateEnabled },\r\n (0, react_1.jsx)(\"button\", { className: \"btn btn-icon btn-primary\", type: \"button\", onClick: onOpenNewSession, title: \"Create Soundbite Series\" },\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--icon\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faPlus })),\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--text\" },\r\n (0, react_1.jsx)(react_2.Fragment, null, \"\\u00A0\"),\r\n \"Create Soundbite Series\"))))),\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: ((_b = feedSeries === null || feedSeries === void 0 ? void 0 : feedSeries.length) !== null && _b !== void 0 ? _b : 0) !== 0 },\r\n (0, react_1.jsx)(\"table\", { className: \"table align-items-center sb-max-width-table\" },\r\n (0, react_1.jsx)(\"thead\", { className: \"thead-light\" },\r\n (0, react_1.jsx)(\"tr\", null,\r\n (0, react_1.jsx)(\"th\", { scope: \"col\", className: \"sort\", \"data-sort\": \"name\" }, \"Name\"),\r\n (0, react_1.jsx)(\"th\", { scope: \"col\", className: \"sort d-none d-md-table-cell\", \"data-sort\": \"appointment\" }, \"Appointment\"),\r\n (0, react_1.jsx)(\"th\", { scope: \"col\", className: \"sort\", style: { width: \"164px\" } }))),\r\n (0, react_1.jsx)(\"tbody\", { className: \"list\" }, feedSeries === null || feedSeries === void 0 ? void 0 : feedSeries.map(renderRow))))));\r\n }\r\n function renderRow(series, key) {\r\n return ((0, react_1.jsx)(\"tr\", { key: series.route, \"data-series-route\": series.route },\r\n (0, react_1.jsx)(\"th\", null,\r\n (0, react_1.jsx)(\"span\", { className: \"\" }, series.name),\r\n (0, react_1.jsx)(\"div\", { className: \"d-table-cell d-md-none\" },\r\n (0, react_1.jsx)(\"span\", { className: \"text-muted sb-cell-detail\" },\r\n (0, react_1.jsx)(components_1.RecurrenceSummary, { series: series })))),\r\n (0, react_1.jsx)(\"td\", { className: \"sort d-none d-md-table-cell\" },\r\n (0, react_1.jsx)(components_1.RecurrenceSummary, { series: series })),\r\n (0, react_1.jsx)(\"td\", { className: \"text-right\" },\r\n (0, react_1.jsx)(SeriesDetailsBtn_1.default, { series: series }),\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: iAmHost(series) },\r\n (0, react_1.jsx)(\"button\", { className: \"btn btn-outline-secondary btn-sm\", type: \"button\", onClick: () => store_1.WidgetStore.showDeleteSeries(props.orgRoute, series), title: \"Delete Series\" },\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--icon\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faTrash })))))));\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n return ((0, react_1.jsx)(reactstrap_1.Card, { className: \"sb-feed-card\" },\r\n (0, react_1.jsx)(components_1.Loader, { isLoadedWhen: !isLoading && feedSeries != null, style: { minHeight: \"12rem\" }, message: \"Loading Series...\" },\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: errorTitle == null },\r\n (0, react_1.jsx)(Header, null),\r\n (0, react_1.jsx)(Body, null)),\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: errorTitle != null },\r\n (0, react_1.jsx)(reactstrap_1.Alert, { color: \"danger\" }, errorTitle)))));\r\n});\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ProfileDialog = void 0;\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst react_2 = require(\"react\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst classnames_1 = __importDefault(require(\"classnames\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst DialogHelper_1 = require(\"./DialogHelper\");\r\nconst DialogStyleType_1 = require(\"./DialogStyleType\");\r\nconst _1 = require(\".\");\r\nconst ShowWhen_1 = require(\"../components/controls/ShowWhen\");\r\nconst ErrorDlg_1 = require(\"../components/ErrorDlg\");\r\nconst Loader_1 = require(\"../components/controls/Loader\");\r\n/** A row that provides a view into a selected MemberRole */\r\nconst PermissionRow = (0, mobx_react_lite_1.observer)((props) => {\r\n const createTab = (title, value, onClick, currentMode) => {\r\n const className = (0, classnames_1.default)({ active: value === currentMode }, \"sb-tab-btn\");\r\n return (react_1.default.createElement(reactstrap_1.NavItem, null,\r\n react_1.default.createElement(reactstrap_1.NavLink, { role: \"tab\", \"aria-selected\": value === currentMode, className: className, onClick: onClick }, title)));\r\n };\r\n const Tabs = () => {\r\n return (react_1.default.createElement(\"div\", { className: \"d-flex flex-md-row flex-row mt-2\" },\r\n react_1.default.createElement(reactstrap_1.Nav, { className: \"sb-2-tab flex-row\", role: \"tablist\" },\r\n createTab(\"Allow\", true, () => {\r\n props.onChange(true);\r\n }, props.defaultValue),\r\n createTab(\"Block\", false, () => {\r\n props.onChange(false);\r\n }, props.defaultValue))));\r\n };\r\n return (react_1.default.createElement(\"tr\", null,\r\n react_1.default.createElement(\"td\", null, props.title),\r\n react_1.default.createElement(\"td\", { className: \"d-flex justify-content-end pr-4\" },\r\n react_1.default.createElement(Tabs, null))));\r\n});\r\n/** Configuration card for org permissions */\r\nexports.ProfileDialog = (0, mobx_react_lite_1.observer)((props) => {\r\n let [isActionRunning, setIsActionRunning] = react_1.default.useState(false);\r\n const [user, setUser] = (0, react_1.useState)(props.user);\r\n const [isChanged, setIsChanged] = (0, react_1.useState)(false);\r\n const [isSaving, setIsSaving] = (0, react_1.useState)(false);\r\n (0, react_2.useEffect)(() => {\r\n const load = () => __awaiter(void 0, void 0, void 0, function* () {\r\n setIsChanged(false);\r\n if (user != null) {\r\n return;\r\n }\r\n const myUser = yield api_1.UsersService.readMeAsync();\r\n setUser(myUser);\r\n });\r\n load();\r\n }, []);\r\n const onSave = () => __awaiter(void 0, void 0, void 0, function* () {\r\n // Must have settings; otherwise, just ignore\r\n if (user == null) {\r\n return;\r\n }\r\n setIsSaving(true);\r\n try {\r\n yield api_1.UsersService.updateNotificationAsync(user);\r\n setIsChanged(false);\r\n }\r\n catch (err) {\r\n ErrorDlg_1.ErrorDlg.show(err, \"Error Saving User Settings\");\r\n }\r\n setIsSaving(false);\r\n });\r\n const onChangeEmail = (allow) => {\r\n if (user == null) {\r\n return;\r\n }\r\n setUser(Object.assign(Object.assign({}, user), { allowEmail: allow }));\r\n setIsChanged(true);\r\n };\r\n const onChangeSms = (allow) => {\r\n if (user == null) {\r\n return;\r\n }\r\n setUser(Object.assign(Object.assign({}, user), { allowSms: allow }));\r\n setIsChanged(true);\r\n };\r\n const getBody = () => {\r\n var _a, _b;\r\n const mailtoLink = `mailto:${user === null || user === void 0 ? void 0 : user.email}`;\r\n const telLinks = `tel:${user === null || user === void 0 ? void 0 : user.phone}`;\r\n let avatarlUrl = api_1.SoundbiteApiConfig.imgAvatarUrl;\r\n if (user === null || user === void 0 ? void 0 : user.imageSrc) {\r\n avatarlUrl = user.imageSrc;\r\n }\r\n return (react_1.default.createElement(\"div\", null,\r\n react_1.default.createElement(Loader_1.Loader, { isLoadedWhen: !!user, style: { minHeight: \"12rem\" } },\r\n react_1.default.createElement(reactstrap_1.FormGroup, { className: \"rounded border p-2\" },\r\n react_1.default.createElement(reactstrap_1.Row, null,\r\n react_1.default.createElement(reactstrap_1.Col, { xs: \"12\", sm: \"9\" },\r\n react_1.default.createElement(\"div\", null, api_1.Utils.userDisplay(user)),\r\n react_1.default.createElement(ShowWhen_1.ShowWhen, { is: !!(user === null || user === void 0 ? void 0 : user.title) },\r\n react_1.default.createElement(\"div\", null,\r\n react_1.default.createElement(\"small\", { className: \"text-muted\" }, user === null || user === void 0 ? void 0 : user.title))),\r\n react_1.default.createElement(ShowWhen_1.ShowWhen, { is: !!(user === null || user === void 0 ? void 0 : user.phone) },\r\n react_1.default.createElement(\"div\", null,\r\n react_1.default.createElement(\"a\", { href: telLinks }, user === null || user === void 0 ? void 0 : user.phone))),\r\n react_1.default.createElement(\"div\", null,\r\n react_1.default.createElement(\"a\", { href: mailtoLink }, user === null || user === void 0 ? void 0 : user.email))),\r\n react_1.default.createElement(reactstrap_1.Col, { xs: \"12\", sm: \"3\" },\r\n react_1.default.createElement(\"div\", null,\r\n react_1.default.createElement(\"span\", { className: \"avatar rounded-circle\" },\r\n react_1.default.createElement(\"img\", { src: avatarlUrl, className: \"rounded-circle\", alt: \"Avatar\" })))))),\r\n react_1.default.createElement(ShowWhen_1.ShowWhen, { is: !!props.showSettings },\r\n react_1.default.createElement(\"table\", { className: \"table align-items-center sb-max-width-table sb-dual-column-table mt-4\" },\r\n react_1.default.createElement(\"thead\", { className: \"thead-light\" },\r\n react_1.default.createElement(\"tr\", null,\r\n react_1.default.createElement(\"th\", { scope: \"col\", className: \"sort\", \"data-sort\": \"name\", colSpan: 2 }, \"Notification Channels\"))),\r\n react_1.default.createElement(PermissionRow, { title: \"E-Mail\", defaultValue: (_a = user === null || user === void 0 ? void 0 : user.allowEmail) !== null && _a !== void 0 ? _a : true, onChange: onChangeEmail }),\r\n react_1.default.createElement(PermissionRow, { title: \"SMS\", defaultValue: (_b = user === null || user === void 0 ? void 0 : user.allowSms) !== null && _b !== void 0 ? _b : true, onChange: onChangeSms }))))));\r\n };\r\n function getActions() {\r\n const ret = [\r\n {\r\n name: \"Close\",\r\n isClose: true,\r\n style: _1.DialogButtonStyleType.Secondary,\r\n },\r\n ];\r\n if (props.showSettings) {\r\n ret.push({\r\n name: \"Save\",\r\n isClose: true,\r\n style: _1.DialogButtonStyleType.Primary,\r\n onSelected: onSave,\r\n isEnabled: isChanged && !isSaving,\r\n });\r\n }\r\n return ret;\r\n }\r\n function getSubTitle() {\r\n return \"\";\r\n }\r\n const title = user != null ? `${api_1.Utils.userDisplay(user, true)}'s Profile` : \"Profile\";\r\n return DialogHelper_1.DialogHelper.RenderDialogWithSubTitle(DialogStyleType_1.DialogStyleType.Normal, title, getSubTitle(), getActions(), getBody(), isActionRunning, setIsActionRunning, props.onClose);\r\n});\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SeriesDeleteDialog = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst WidgetStore_1 = require(\"../store/WidgetStore\");\r\nconst DialogButtonStyleType_1 = require(\"./DialogButtonStyleType\");\r\nconst DialogHelper_1 = require(\"./DialogHelper\");\r\nconst DialogStyleType_1 = require(\"./DialogStyleType\");\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nconst SeriesDeleteDialog = (props) => {\r\n /////[ State ]//////////////////////////////////////////////////////////////////////////////////\r\n let [isActionRunning, setIsActionRunning] = react_1.default.useState(false);\r\n /////[ Methods ]//////////////////////////////////////////////////////////////////////////////////\r\n function getBody() {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(\"p\", null,\r\n \"Are you sure you want to delete\",\r\n \" \",\r\n react_1.default.createElement(\"strong\", null, props.series ? props.series.name : \"this appointment\"),\r\n \"?\"),\r\n react_1.default.createElement(\"p\", null, \"This will stop the series and delete any future Soundbite Sessions that have not already commenced. Past Soundbite Sessions will still be available.\")));\r\n }\r\n function getActions() {\r\n return [\r\n {\r\n name: \"Cancel\",\r\n isClose: true,\r\n style: DialogButtonStyleType_1.DialogButtonStyleType.Secondary,\r\n },\r\n {\r\n name: \"Delete\",\r\n isClose: true,\r\n style: DialogButtonStyleType_1.DialogButtonStyleType.Danger,\r\n onSelected: () => __awaiter(this, void 0, void 0, function* () {\r\n yield WidgetStore_1.WidgetStore.series.deleteSeriesAsync(props.orgRoute, props.series.route);\r\n }),\r\n },\r\n ];\r\n }\r\n function getSubTitle() {\r\n return props.series === undefined\r\n ? \"\"\r\n : api_1.Utils.recurrenceDescription(props.series.template.publish, props.series.recurrence);\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n return DialogHelper_1.DialogHelper.RenderDialogWithSubTitle(DialogStyleType_1.DialogStyleType.Danger, `Delete ${props.series ? props.series.name : \"this appointment\"}`, getSubTitle(), getActions(), getBody(), isActionRunning, setIsActionRunning, props.close);\r\n};\r\nexports.SeriesDeleteDialog = SeriesDeleteDialog;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionDeleteDialog = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst WidgetStore_1 = require(\"../store/WidgetStore\");\r\nconst DialogButtonStyleType_1 = require(\"./DialogButtonStyleType\");\r\nconst DialogHelper_1 = require(\"./DialogHelper\");\r\nconst DialogStyleType_1 = require(\"./DialogStyleType\");\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nconst SessionDeleteDialog = (props) => {\r\n /////[ State ]//////////////////////////////////////////////////////////////////////////////////\r\n let [isActionRunning, setIsActionRunning] = react_1.default.useState(false);\r\n /////[ Methods ]//////////////////////////////////////////////////////////////////////////////////\r\n function getBody() {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(\"p\", null,\r\n \"Are you sure you want to delete \",\r\n react_1.default.createElement(\"strong\", null, props.session.name),\r\n \"?\"),\r\n react_1.default.createElement(\"p\", null,\r\n \"This will remove the Soundbite Session for\",\r\n \" \",\r\n react_1.default.createElement(\"strong\", null, \"all participants\"),\r\n \" and they will no longer be able to contribute to or playback this session.\")));\r\n }\r\n function getActions() {\r\n return [\r\n {\r\n name: \"Cancel\",\r\n isClose: true,\r\n style: DialogButtonStyleType_1.DialogButtonStyleType.Secondary,\r\n },\r\n {\r\n name: \"Delete\",\r\n isClose: true,\r\n style: DialogButtonStyleType_1.DialogButtonStyleType.Danger,\r\n onSelected: () => __awaiter(this, void 0, void 0, function* () {\r\n yield WidgetStore_1.WidgetStore.sessions.deleteSessionAsync(props.orgRoute, props.session.route);\r\n }),\r\n },\r\n ];\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n return DialogHelper_1.DialogHelper.RenderDialog(DialogStyleType_1.DialogStyleType.Danger, \"Test Title\", getActions(), getBody(), isActionRunning, setIsActionRunning, props.close);\r\n};\r\nexports.SessionDeleteDialog = SessionDeleteDialog;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionNewDialog = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst HashHelper_1 = require(\"../modules/HashHelper\");\r\nconst WidgetStore_1 = require(\"../store/WidgetStore\");\r\nconst SessionEditorWidget_1 = require(\"../widgets/SessionEditorWidget\");\r\nconst DialogHelper_1 = require(\"./DialogHelper\");\r\nconst DialogStyleType_1 = require(\"./DialogStyleType\");\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nconst SessionNewDialog = (props) => {\r\n /////[ State ]//////////////////////////////////////////////////////////////////////////////////\r\n let [isActionRunning, setIsActionRunning] = react_1.default.useState(false);\r\n let [dialogStyle, setDialogStyle] = react_1.default.useState(DialogStyleType_1.DialogStyleType.SessionEditor);\r\n /////[ Methods ]//////////////////////////////////////////////////////////////////////////////////\r\n function getBody() {\r\n var _a;\r\n if (dialogStyle === DialogStyleType_1.DialogStyleType.SessionEditorBig) {\r\n api_1.Utils.setHash(HashHelper_1.DialogHash.CreateSessionExpanded);\r\n }\r\n else {\r\n api_1.Utils.setHash(HashHelper_1.DialogHash.CreateSession);\r\n }\r\n if (((_a = WidgetStore_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.details.route) === props.orgRoute) {\r\n if (WidgetStore_1.WidgetStore.organizations.currentOrg.details.me) {\r\n return (react_1.default.createElement(SessionEditorWidget_1.SessionEditorWidget, { orgRoute: props.orgRoute, groupRoute: props.groupRoute, onSaved: onSave, onClose: onClose, onExpand: onExpand, startExpanded: props.isExpanded }));\r\n }\r\n else {\r\n return react_1.default.createElement(\"div\", null, \"Current organization member is not set.\");\r\n }\r\n }\r\n else {\r\n return react_1.default.createElement(\"div\", null, \"Current organization is not set.\");\r\n }\r\n }\r\n function getActions() {\r\n return [];\r\n }\r\n /////[ Event Handlers ]///////////////////////////////////////////////////////////////////////////\r\n function onSave() {\r\n props.close();\r\n }\r\n function onClose() {\r\n api_1.Utils.setHash();\r\n props.close();\r\n }\r\n function onExpand() {\r\n setDialogStyle(DialogStyleType_1.DialogStyleType.SessionEditorBig);\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n return DialogHelper_1.DialogHelper.RenderDialog(dialogStyle, \"Create Soundbite Session\", getActions(), getBody(), isActionRunning, setIsActionRunning, props.close);\r\n};\r\nexports.SessionNewDialog = SessionNewDialog;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionEditorWidget = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst moment_1 = __importDefault(require(\"moment\"));\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst store_1 = require(\"../store\");\r\nconst enums_1 = require(\"../enums\");\r\nconst components_1 = require(\"../components\");\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst styles = (0, react_1.css) `\r\n .sb-session-editor-widget-footer .col-md-12 {\r\n justify-content: flex-end;\r\n display: flex;\r\n }\r\n`;\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\n/**\r\n * Widget for constructing a session, including recording/uploading conte and optionally recurring sessions\r\n * @param props\r\n */\r\nconst SessionEditorWidget = (props) => {\r\n //////////[ Define ]//////////////////////////////////////////////////////////////////////////////\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1;\r\n const orgRoute = (_a = props.orgRoute) !== null && _a !== void 0 ? _a : (_b = store_1.WidgetStore.organizations.currentOrg) === null || _b === void 0 ? void 0 : _b.details.route;\r\n const personRoute = (_e = (_d = (_c = store_1.WidgetStore.organizations.currentOrg) === null || _c === void 0 ? void 0 : _c.details) === null || _d === void 0 ? void 0 : _d.me) === null || _e === void 0 ? void 0 : _e.route;\r\n const [group, setGroup] = (0, react_2.useState)(undefined);\r\n const isAdminOrMore = ((_g = (_f = store_1.WidgetStore.users.currentUser) === null || _f === void 0 ? void 0 : _f.userRole) !== null && _g !== void 0 ? _g : 0) >= api_1.UserRole.God ||\r\n ((_k = (_j = (_h = store_1.WidgetStore.organizations.currentOrg) === null || _h === void 0 ? void 0 : _h.details.me) === null || _j === void 0 ? void 0 : _j.personRole) !== null && _k !== void 0 ? _k : 0) >=\r\n api_1.PersonRole.Admin;\r\n const isOrgSessionAllowed = store_1.WidgetStore.isPersonRole((_o = (_m = (_l = store_1.WidgetStore.organizations.currentOrg) === null || _l === void 0 ? void 0 : _l.settings.permissions) === null || _m === void 0 ? void 0 : _m.minRoleToCreateSession) !== null && _o !== void 0 ? _o : api_1.PersonRole.Person);\r\n const areCommentsAllowed = (_q = (_p = store_1.WidgetStore.organizations.currentOrg) === null || _p === void 0 ? void 0 : _p.settings.sessions.sessionCommentsEnabled) !== null && _q !== void 0 ? _q : true;\r\n const [clipSource, setClipSource] = (0, react_2.useState)(enums_1.ClipSource.RecordAudio);\r\n const [possibleGroups, setPossibleGroups] = (0, react_2.useState)(undefined);\r\n let [title, setTitle] = (0, react_2.useState)(\"\");\r\n let [agenda, setAgenda] = (0, react_2.useState)(\"\");\r\n let [participants, setParticipants] = (0, react_2.useState)([]);\r\n let [participantGroups, setParticipantGroups] = (0, react_2.useState)([]);\r\n let [schedule, setSchedule] = (0, react_2.useState)({\r\n publish: undefined,\r\n reminder: undefined,\r\n recurrence: api_1.Recurrence.NoRepeat,\r\n recurrenceData: \"\",\r\n limit: 0,\r\n });\r\n let [error, setError] = (0, react_2.useState)(undefined);\r\n let [clipState, setClipState] = (0, react_2.useState)(enums_1.DialogState.Empty);\r\n let [isSaving, setIsSaving] = (0, react_2.useState)(false);\r\n let [isExpanded, setIsExpanded] = (0, react_2.useState)((_r = props.startExpanded) !== null && _r !== void 0 ? _r : false);\r\n let [isTranscribed, setIsTranscribed] = (0, react_2.useState)(((_u = (_t = (_s = store_1.OrganizationStore.currentOrg) === null || _s === void 0 ? void 0 : _s.settings) === null || _t === void 0 ? void 0 : _t.sessions) === null || _u === void 0 ? void 0 : _u.transcriptionEnabled) ===\r\n true &&\r\n ((_x = (_w = (_v = store_1.OrganizationStore.currentOrg) === null || _v === void 0 ? void 0 : _v.settings) === null || _w === void 0 ? void 0 : _w.sessions) === null || _x === void 0 ? void 0 : _x.transcriptionOnByDefault) === true);\r\n let [isPublic, setIsPublic] = (0, react_2.useState)(((_y = store_1.WidgetStore.organizations.currentOrg) === null || _y === void 0 ? void 0 : _y.settings.sessions.defaultSessionSecurity) === api_1.SessionSecurityType.Public);\r\n let [isCommentsEnabled, setIsCommentsEnabled] = (0, react_2.useState)(((_0 = (_z = store_1.WidgetStore.organizations.currentOrg) === null || _z === void 0 ? void 0 : _z.settings.sessions.defaultSessionCommentPolicy) !== null && _0 !== void 0 ? _0 : api_1.SessionCommentPolicy.Allowed) ===\r\n api_1.SessionCommentPolicy.Allowed);\r\n let recordAndPlay = (0, react_2.useRef)(null);\r\n const [draftSession, setDraftSession] = (0, react_2.useState)(undefined);\r\n const [saveProgress, setSaveProgress] = (0, react_2.useState)(0);\r\n const numCols = isExpanded ? 6 : 12;\r\n const [isPublicEnabled, setIsPublicEnabled] = (0, react_2.useState)(false);\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n function isInCreateRole(group) {\r\n var _a, _b, _c, _d, _e, _f;\r\n if (group != null) {\r\n return store_1.WidgetStore.isMemberRole((_c = (_b = (_a = store_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.settings.permissions) === null || _b === void 0 ? void 0 : _b.minRoleToCreateTeamSession) !== null && _c !== void 0 ? _c : api_1.MemberRole.Member, group);\r\n }\r\n else {\r\n return store_1.WidgetStore.isPersonRole((_f = (_e = (_d = store_1.WidgetStore.organizations.currentOrg) === null || _d === void 0 ? void 0 : _d.settings.permissions) === null || _e === void 0 ? void 0 : _e.minRoleToCreateSession) !== null && _f !== void 0 ? _f : api_1.PersonRole.Person);\r\n }\r\n }\r\n const loadPeople = () => __awaiter(void 0, void 0, void 0, function* () {\r\n console.warn(\"Still moving people loading from session editor to picker\");\r\n if (!orgRoute) {\r\n return;\r\n }\r\n if (props.groupRoute) {\r\n const newGroupPromise = yield store_1.WidgetStore.groups.readGroupAsync(orgRoute, props.groupRoute);\r\n const [newGroup] = yield Promise.all([newGroupPromise]);\r\n if (isInCreateRole(newGroup)) {\r\n setGroup(newGroup);\r\n }\r\n else {\r\n setGroup(undefined);\r\n }\r\n }\r\n else {\r\n setGroup(undefined);\r\n }\r\n });\r\n const loadGroups = () => __awaiter(void 0, void 0, void 0, function* () {\r\n if (!orgRoute) {\r\n setPossibleGroups([]);\r\n return;\r\n }\r\n if (isAdminOrMore) {\r\n const groups = yield store_1.WidgetStore.organizations.readGroupsAsync(orgRoute);\r\n setPossibleGroups(groups);\r\n }\r\n else {\r\n const groups = yield store_1.WidgetStore.organizations.readMyTargetGroupsAsync(orgRoute);\r\n setPossibleGroups(groups);\r\n }\r\n });\r\n const loadParticipants = () => {\r\n var _a, _b;\r\n // Determine if a session was passed into the editor\r\n if (props.session) {\r\n // Session was passed in so populate the editor with session data\r\n const participants = props.session.participants.map((p) => {\r\n return { personRoute: p.route, participantRole: p.participantRole };\r\n });\r\n const participantGroups = props.session.groups.map((g) => {\r\n return { groupRoute: g.route, participantRole: g.participantRole };\r\n });\r\n setTitle(props.session.name);\r\n if (props.session.prompts && props.session.prompts.length > 0) {\r\n setAgenda(props.session.prompts[0].text);\r\n }\r\n setParticipants(participants);\r\n setParticipantGroups(participantGroups);\r\n setSchedule({\r\n publish: props.session.publish,\r\n reminder: props.session.reminder,\r\n recurrence: ((_a = props.series) === null || _a === void 0 ? void 0 : _a.recurrence) || api_1.Recurrence.NoRepeat,\r\n recurrenceData: (_b = props.series) === null || _b === void 0 ? void 0 : _b.recurrenceData,\r\n limit: props.session.limit,\r\n });\r\n }\r\n else {\r\n if (personRoute) {\r\n // Session was NOT passed in so populate defaults into the editor\r\n setParticipants([\r\n {\r\n personRoute: personRoute,\r\n participantRole: api_1.ParticipantRole.Host,\r\n },\r\n ]);\r\n }\r\n else {\r\n setParticipants([]);\r\n }\r\n // When there is a group context automatically populate the group into the group participants\r\n if (props.groupRoute) {\r\n setParticipantGroups([\r\n {\r\n groupRoute: props.groupRoute,\r\n participantRole: api_1.ParticipantRole.Participant,\r\n },\r\n ]);\r\n }\r\n }\r\n };\r\n const load = () => __awaiter(void 0, void 0, void 0, function* () {\r\n var _2, _3, _4, _5, _6, _7;\r\n if (props.orgRoute == null) {\r\n setIsPublicEnabled(false);\r\n return;\r\n }\r\n if (props.groupRoute == null || props.groupRoute.trim().length === 0) {\r\n const isPubEnabled = store_1.WidgetStore.isPersonRole((_4 = (_3 = (_2 = store_1.WidgetStore.organizations.currentOrg) === null || _2 === void 0 ? void 0 : _2.permissions) === null || _3 === void 0 ? void 0 : _3.minRoleToCreatePublic) !== null && _4 !== void 0 ? _4 : api_1.PersonRole.Unknown);\r\n setIsPublicEnabled(isPubEnabled);\r\n }\r\n else {\r\n const grp = yield store_1.WidgetStore.groups.readGroupAsync(props.orgRoute, props.groupRoute);\r\n const isPubEnabled = store_1.WidgetStore.isMemberRole((_7 = (_6 = (_5 = store_1.WidgetStore.organizations.currentOrg) === null || _5 === void 0 ? void 0 : _5.permissions) === null || _6 === void 0 ? void 0 : _6.minRoleToCreateTeamPublic) !== null && _7 !== void 0 ? _7 : api_1.MemberRole.Unknown, grp);\r\n setIsPublicEnabled(isPubEnabled);\r\n }\r\n });\r\n react_2.default.useEffect(() => {\r\n loadParticipants();\r\n loadPeople();\r\n loadGroups();\r\n load();\r\n }, [props.orgRoute, props.groupRoute]);\r\n //////////[ Methods ] ////////////////////////////////////////////////////////////////////////////\r\n function hostInfo(sessionType) {\r\n switch (sessionType) {\r\n case api_1.SessionType.Announcement:\r\n return \"Records announcement\";\r\n case api_1.SessionType.Survey:\r\n return \"Listens to survey results\";\r\n default:\r\n return \"Can edit or delete this Soundbite Session\";\r\n }\r\n }\r\n /**\r\n * Determines the appropriate participant information text based on session type\r\n * @param sessionType - session type whose descriptive text is being sought\r\n */\r\n function participantInfo(sessionType) {\r\n switch (sessionType) {\r\n case api_1.SessionType.Announcement:\r\n return \"Listens to the announcement\";\r\n case api_1.SessionType.Survey:\r\n return \"Responds to the survey\";\r\n default:\r\n return \"Can contribute to this Soundbite Session\";\r\n }\r\n }\r\n /**\r\n * Gets the participant title text based on the type of session.\r\n * @param sessionType - type of session from which the title text is determined.\r\n */\r\n function participantTitle(sessionType) {\r\n switch (sessionType) {\r\n case api_1.SessionType.Announcement:\r\n return \"Audience\";\r\n case api_1.SessionType.Survey:\r\n return \"Audience\";\r\n default:\r\n return \"Participants\";\r\n }\r\n }\r\n /**\r\n * Filters a list of participants by role\r\n * @param role - role by which to filter\r\n * @param participants - list of participants to filter\r\n */\r\n function filterParticipants(role, participants) {\r\n if (!participants)\r\n return [];\r\n return participants.filter((p) => p.participantRole !== role);\r\n }\r\n /**\r\n * Filters a list of groups by role\r\n * @param role - role by which to filter\r\n * @param groups - list of groups to filter\r\n */\r\n function filterGroups(role, groups) {\r\n if (!groups)\r\n return [];\r\n return groups.filter((p) => p.participantRole !== role);\r\n }\r\n /**\r\n * Builds a list of NewParticipant instances from a list of people.\r\n * @param role - specifies the participant role applied to the NewParticipant instances.\r\n * @param people - list of people to add as participants.\r\n */\r\n function peopleRoutesToParticipants(role, peopleRoutes) {\r\n if (!peopleRoutes) {\r\n return [];\r\n }\r\n else {\r\n return peopleRoutes.map((route) => {\r\n return { personRoute: route, participantRole: role };\r\n });\r\n }\r\n }\r\n /**\r\n * Builds a list of NewParticipantGroup instances from a list of groups.\r\n * @param role - specifies the participant role applied to the NewParticipantGroup instances.\r\n * @param people - list of groups to add as participants.\r\n */\r\n function groupToParticipantGroup(role, groups) {\r\n if (!groups) {\r\n return [];\r\n }\r\n else {\r\n return groups.map((p) => {\r\n return { groupRoute: p.route, participantRole: role };\r\n });\r\n }\r\n }\r\n /**\r\n * Determines whether inputs on the component are valid.\r\n * @returns true if the inputs are valid or false if they are invalid.\r\n */\r\n function isInvalid() {\r\n if (isSaving)\r\n return true;\r\n // TODO: Visualization of field validation\r\n if (!title || title.length === 0) {\r\n return true;\r\n }\r\n const hasParticipantHost = participants.filter((p) => p.participantRole === api_1.ParticipantRole.Host)\r\n .length > 0;\r\n const hasGroupHost = participantGroups.filter((p) => p.participantRole === api_1.ParticipantRole.Host).length > 0;\r\n const hasParticipantAudience = participants.filter((p) => p.participantRole <= api_1.ParticipantRole.Participant).length > 0;\r\n const hasGroupAudience = participantGroups.filter((p) => p.participantRole <= api_1.ParticipantRole.Participant).length > 0;\r\n if (!hasParticipantHost && !hasGroupHost) {\r\n return true;\r\n }\r\n if (!hasParticipantAudience && !hasGroupAudience) {\r\n return true;\r\n }\r\n if ((schedule === null || schedule === void 0 ? void 0 : schedule.publish) !== undefined && schedule.reminder !== undefined) {\r\n const deadline = (0, moment_1.default)(schedule.publish);\r\n const reminder = (0, moment_1.default)(schedule.reminder);\r\n if (reminder.isBefore(deadline)) {\r\n return true; // Reminders must happen BEFORE the deadline\r\n }\r\n }\r\n if (clipState !== enums_1.DialogState.Ready) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n /**\r\n * Sets the initial selected participant groups in the group picker. There is a bit of\r\n * overlapping logic between this and the initialization method because the participantGroups\r\n * array does not contain a \"value\" for the group name.\r\n */\r\n function getSelectedGroups() {\r\n if (props.session) {\r\n return components_1.ParticipantGroupPicker.convertToOptions(props.session.groups.map((i) => i.group));\r\n }\r\n else {\r\n if (props.groupRoute && group) {\r\n return components_1.ParticipantGroupPicker.convertToOptions([group]);\r\n }\r\n else {\r\n return [];\r\n }\r\n }\r\n }\r\n /**\r\n * Sets the initial selected pariticpants in the people picker.\r\n */\r\n function getSelectedPeople() {\r\n if (props.session) {\r\n // Existing session - select existing people on the session\r\n return components_1.ParticipantPicker.peopleToOptions(props.session.participants.map((i) => i.person));\r\n }\r\n else {\r\n // New session - nobody selected by default\r\n return [];\r\n }\r\n }\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n function onPeopleChange(peopleRoutes) {\r\n // TODO: Support invites via e-mail in peopleRoutes\r\n const oldParticipants = filterParticipants(api_1.ParticipantRole.Participant, participants);\r\n const newParticipants = peopleRoutesToParticipants(api_1.ParticipantRole.Participant, peopleRoutes);\r\n setParticipants(oldParticipants.concat(newParticipants));\r\n }\r\n function onScheduleChange(sessionSchedule) {\r\n setSchedule(sessionSchedule);\r\n }\r\n function onGroupsChange(groups) {\r\n const oldGroups = filterGroups(api_1.ParticipantRole.Participant, participantGroups);\r\n const newGroups = groupToParticipantGroup(api_1.ParticipantRole.Participant, groups);\r\n setParticipantGroups(oldGroups.concat(newGroups));\r\n }\r\n /**\r\n * Executes when a user clicks the Close button\r\n * @param isSaved - flag specifiying whether the session was saved.\r\n */\r\n function onClose(isSaved) {\r\n if (props.onClose) {\r\n props.onClose(isSaved);\r\n }\r\n }\r\n function onExpand() {\r\n if (isExpanded)\r\n return;\r\n setIsExpanded(true);\r\n if (props.onExpand) {\r\n props.onExpand();\r\n }\r\n }\r\n /**\r\n * Fires any time the Public/Protected toggle changes.\r\n * @param isEnabled - flag indicating whether toggle is enabled or disabled.\r\n */\r\n function onPublicToggled(isEnabled) {\r\n setIsPublic(isEnabled);\r\n schedule.recurrence = api_1.Recurrence.NoRepeat;\r\n schedule.recurrenceData = \"\";\r\n onScheduleChange(schedule);\r\n }\r\n /** Assembles the session from the UI */\r\n function buildSession() {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\r\n let session = {\r\n name: title,\r\n sessionSecurity: isPublic === true\r\n ? api_1.SessionSecurityType.Public\r\n : api_1.SessionSecurityType.Protected,\r\n firstPrompt: agenda,\r\n recurrence: schedule.recurrence,\r\n participants: participants,\r\n groups: participantGroups,\r\n publish: schedule === null || schedule === void 0 ? void 0 : schedule.publish,\r\n reminder: schedule === null || schedule === void 0 ? void 0 : schedule.reminder,\r\n recurrenceData: (_a = schedule.recurrenceData) !== null && _a !== void 0 ? _a : \"\",\r\n limit: 0,\r\n reminderCalEventId: (_c = (_b = props === null || props === void 0 ? void 0 : props.session) === null || _b === void 0 ? void 0 : _b.reminderCalEventId) !== null && _c !== void 0 ? _c : \"\",\r\n route: (_d = props === null || props === void 0 ? void 0 : props.session) === null || _d === void 0 ? void 0 : _d.route,\r\n sessionType: (_f = (_e = props === null || props === void 0 ? void 0 : props.session) === null || _e === void 0 ? void 0 : _e.sessionType) !== null && _f !== void 0 ? _f : api_1.SessionType.Announcement,\r\n publishSent: (_h = (_g = props === null || props === void 0 ? void 0 : props.session) === null || _g === void 0 ? void 0 : _g.publishSent) !== null && _h !== void 0 ? _h : undefined,\r\n reminderSent: (_k = (_j = props === null || props === void 0 ? void 0 : props.session) === null || _j === void 0 ? void 0 : _j.reminderSent) !== null && _k !== void 0 ? _k : undefined,\r\n transcribe: isTranscribed,\r\n sessionCommentPolicy: isCommentsEnabled && areCommentsAllowed\r\n ? api_1.SessionCommentPolicy.Allowed\r\n : api_1.SessionCommentPolicy.Disallowed,\r\n };\r\n if (session.recurrence !== api_1.Recurrence.NoRepeat) {\r\n // Series must have deadlines\r\n if (session.publish === undefined) {\r\n session.publish = components_1.DateTimePicker.nextHalfHourIsoString();\r\n }\r\n // TODO: Make reminder configurable\r\n const dayBefore = (0, moment_1.default)(session.publish).add(-1, \"d\");\r\n session.reminder = dayBefore.toISOString();\r\n }\r\n return session;\r\n }\r\n function getFileType(file) {\r\n switch (clipSource) {\r\n case enums_1.ClipSource.RecordAudio:\r\n return api_1.FileType.Mp3;\r\n default:\r\n if (file) {\r\n const fileType = api_1.Utils.GetFileTypeFromFileName(file.name);\r\n if (fileType === api_1.FileType.Unknown) {\r\n const parts = file.name.split(\".\");\r\n const ext = parts[parts.length - 1].toLowerCase();\r\n throw new Error(`Cannot determine file type becuase extension is unsuppported: ${ext}`);\r\n }\r\n return fileType;\r\n }\r\n else {\r\n throw new Error(\"Cannot determine file type because there is no file.\");\r\n }\r\n }\r\n }\r\n /** Read the UI to build up the new clip */\r\n function buildClip() {\r\n var _a, _b, _c, _d, _e;\r\n // The user might still be recording\r\n (_a = recordAndPlay.current) === null || _a === void 0 ? void 0 : _a.stop();\r\n const newClip = {\r\n hostingType: api_1.ClipHostingType.AzureStorage,\r\n clipType: api_1.ClipType.Prompt,\r\n fileType: getFileType((_b = recordAndPlay.current) === null || _b === void 0 ? void 0 : _b.file),\r\n participantRole: api_1.ParticipantRole.Host,\r\n stream: (_c = recordAndPlay.current) === null || _c === void 0 ? void 0 : _c.file,\r\n seconds: (_e = (_d = recordAndPlay.current) === null || _d === void 0 ? void 0 : _d.duration) !== null && _e !== void 0 ? _e : 0,\r\n };\r\n // right now, we can't defer creation, but in the future we may be able to create drafts\r\n if (newClip.stream === undefined) {\r\n throw new Error(\"Could not find content for current clip\");\r\n }\r\n return newClip;\r\n }\r\n function onSave() {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n if (!orgRoute) {\r\n throw new api_1.PublicError(undefined, \"Cannot find Organization\", \"Cannot save session; no organization set in the editor\");\r\n }\r\n setSaveProgress(0);\r\n setIsSaving(true);\r\n const session = buildSession();\r\n const newClip = buildClip();\r\n const result = yield store_1.WidgetStore.sessions.createSessionAsync(orgRoute, session, newClip, undefined, (progress) => {\r\n setSaveProgress(progress);\r\n }, draftSession);\r\n setDraftSession(result);\r\n // If there was an issue, then we reset and throw it now because we wanted to save the session first, but still handle the error the same\r\n if (result.session == null) {\r\n setIsSaving(false);\r\n if (result.error != null) {\r\n throw result.error;\r\n }\r\n if (((_a = result.upload) === null || _a === void 0 ? void 0 : _a.error) != null) {\r\n throw result.upload.error;\r\n }\r\n return;\r\n }\r\n if (props.onSaved) {\r\n props.onSaved(result.session);\r\n }\r\n onClose(true);\r\n }\r\n catch (error) {\r\n let err = error;\r\n if (!(err instanceof api_1.PublicError))\r\n err = new api_1.PublicError(error);\r\n setError(err);\r\n setIsSaving(false);\r\n }\r\n });\r\n }\r\n /** Return the error on either the draft or upload - undefined if nothing found */\r\n function draftError() {\r\n var _a, _b;\r\n return (_a = draftSession === null || draftSession === void 0 ? void 0 : draftSession.error) !== null && _a !== void 0 ? _a : (_b = draftSession === null || draftSession === void 0 ? void 0 : draftSession.upload) === null || _b === void 0 ? void 0 : _b.error;\r\n }\r\n /** Generate the message for the draft alert - some of these are errors, but not all */\r\n function draftMessage() {\r\n var _a, _b, _c;\r\n // No draft session there is nothing to talk about yet\r\n if (draftSession == null)\r\n return \"\";\r\n // Having a final session means we succeeded and there is nothing to talk about\r\n if (draftSession.session != null) {\r\n return \"\";\r\n }\r\n // Errors would be highest precedent information\r\n // The error messages themselves should be displayed some other way\r\n // Session error would happen first\r\n if (draftSession.error != null) {\r\n return `Error trying to create session.`;\r\n }\r\n // Upload error would happen second\r\n if (((_a = draftSession.upload) === null || _a === void 0 ? void 0 : _a.error) != null) {\r\n return `Error trying to upload content.`;\r\n }\r\n // From here, we're guessing at the draft states\r\n // These have neutral language, but as of October 2021, these should probably never happen w/o an error until there is a real draft feature\r\n if (draftSession.sessionDraft == null) {\r\n return \"Unable to create session data.\";\r\n }\r\n if (((_b = draftSession.upload) === null || _b === void 0 ? void 0 : _b.clipDraft) == null) {\r\n return \"Unable to create content data.\";\r\n }\r\n if (!((_c = draftSession.upload) === null || _c === void 0 ? void 0 : _c.isReady)) {\r\n return \"Upload incomplete.\";\r\n }\r\n return \"Uknown Issue.\";\r\n }\r\n function draftAlert() {\r\n if (isSaving || draftSession == null) {\r\n return (0, react_1.jsx)(react_2.default.Fragment, null);\r\n }\r\n const colorName = draftError() != null ? \"danger\" : \"light\";\r\n const message = draftMessage();\r\n return ((0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, null,\r\n (0, react_1.jsx)(reactstrap_1.Alert, { color: colorName },\r\n message,\r\n \" Please Retry. For more assistance, please contact\",\r\n \" \",\r\n (0, react_1.jsx)(\"a\", { className: \"alert-link\", href: \"mailto:Support@Soundbite.Freshdesk.Com\" }, \"Soundbite Support\")))));\r\n }\r\n /**\r\n * Renders the security type section in advanced form allowing users to make public soundbites.\r\n */\r\n const SecurityTypePicker = () => {\r\n if (!isPublicEnabled) {\r\n return (0, react_1.jsx)(react_2.default.Fragment, null);\r\n }\r\n return ((0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, null,\r\n (0, react_1.jsx)(components_1.LabelInfo, { label: \"Security\", info: \"How is this session protected\" }),\r\n (0, react_1.jsx)(reactstrap_1.FormGroup, { className: \"sb-datepicker\" },\r\n (0, react_1.jsx)(reactstrap_1.InputGroup, { \"aria-disabled\": isSaving },\r\n (0, react_1.jsx)(\"div\", { className: \"input-group-prepend\" },\r\n (0, react_1.jsx)(\"div\", { className: \"input-group-text\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: isPublic === true ? free_solid_svg_icons_1.faLockOpen : free_solid_svg_icons_1.faLock }))),\r\n (0, react_1.jsx)(reactstrap_1.InputGroupAddon, { addonType: \"prepend\", className: \"sb-title-input-addon\" }, isPublic === true ? \"Public\" : \"Protected\"),\r\n (0, react_1.jsx)(components_1.Toggle, { defaultValue: isPublic, onToggle: (isEnabled) => onPublicToggled(isEnabled), title: \"Session Security\" }),\r\n (0, react_1.jsx)(\"label\", { className: \"sb-datepicker-none-label text-muted\" }, isPublic === true ? \"Anyone\" : \"Audience\"))))));\r\n };\r\n /**\r\n * Renders the security type section in advanced form allowing users to make public soundbites.\r\n */\r\n const TranscriptionPicker = () => {\r\n var _a, _b, _c;\r\n if (!isExpanded ||\r\n ((_c = (_b = (_a = store_1.OrganizationStore.currentOrg) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.sessions) === null || _c === void 0 ? void 0 : _c.transcriptionEnabled) !==\r\n true) {\r\n return (0, react_1.jsx)(react_2.default.Fragment, null);\r\n }\r\n return ((0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, null,\r\n (0, react_1.jsx)(components_1.LabelInfo, { label: \"Transcription\", info: \"Process speech-to-text on session\" }),\r\n (0, react_1.jsx)(reactstrap_1.FormGroup, { className: \"sb-datepicker\" },\r\n (0, react_1.jsx)(reactstrap_1.InputGroup, { \"aria-disabled\": isSaving },\r\n (0, react_1.jsx)(components_1.Toggle, { defaultValue: isTranscribed, onToggle: (isEnabled) => setIsTranscribed(isEnabled), title: \"Transcribe Session\" }),\r\n (0, react_1.jsx)(\"label\", { className: \"sb-datepicker-none-label text-muted\" }, isTranscribed === true\r\n ? \"Transcribe Session\"\r\n : \"Do Not Transcribe Session\"))))));\r\n };\r\n /**\r\n * Renders the session comments permission section\r\n */\r\n const CommentsPicker = () => {\r\n if (!isExpanded || !areCommentsAllowed) {\r\n return (0, react_1.jsx)(react_2.default.Fragment, null);\r\n }\r\n return ((0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, null,\r\n (0, react_1.jsx)(components_1.LabelInfo, { label: \"Comments\", info: \"Allow audience text comments\" }),\r\n (0, react_1.jsx)(reactstrap_1.FormGroup, { className: \"sb-datepicker\" },\r\n (0, react_1.jsx)(reactstrap_1.InputGroup, { \"aria-disabled\": isSaving },\r\n (0, react_1.jsx)(components_1.Toggle, { defaultValue: isCommentsEnabled, onToggle: (isEnabled) => {\r\n setIsCommentsEnabled(isEnabled);\r\n }, title: \"Allow Comments for Session\" }),\r\n (0, react_1.jsx)(\"label\", { className: \"sb-datepicker-none-label text-muted\" }, isCommentsEnabled === true\r\n ? \"Allow Comments\"\r\n : \"Do Not Allow Comments\"))))));\r\n };\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n if (props.startExpanded && props.onExpand) {\r\n props.onExpand();\r\n }\r\n const canShowPersonPicker = isOrgSessionAllowed;\r\n const hasPossibleGroups = ((_1 = possibleGroups === null || possibleGroups === void 0 ? void 0 : possibleGroups.length) !== null && _1 !== void 0 ? _1 : 0) > 0;\r\n const canShowGroupPicker = !!props.groupRoute\r\n ? group != null && hasPossibleGroups\r\n : hasPossibleGroups;\r\n const canCreate = canShowGroupPicker || canShowPersonPicker;\r\n const sessionActionTitle = props.session ? \"Update\" : \"Create\";\r\n function body() {\r\n var _a, _b;\r\n return ((0, react_1.jsx)(react_2.default.Fragment, null,\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: numCols },\r\n (0, react_1.jsx)(reactstrap_1.FormGroup, null,\r\n (0, react_1.jsx)(components_1.LabelInfo, { label: \"Title\", info: \"Display name for session\" }),\r\n (0, react_1.jsx)(reactstrap_1.InputGroup, { \"aria-disabled\": isSaving },\r\n (0, react_1.jsx)(components_1.FaPrepend, { icon: \"pen\" }),\r\n (0, react_1.jsx)(\"input\", { type: \"text\", className: \"form-control\", placeholder: \"Title\", \"aria-label\": \"Title\", \"aria-describedby\": \"basic-addon1\", defaultValue: (_a = props.session) === null || _a === void 0 ? void 0 : _a.name, onChange: (e) => setTitle(e.target.value), disabled: isSaving, title: \"Soundbite Session Title\" }))),\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: canShowPersonPicker || canShowGroupPicker },\r\n (0, react_1.jsx)(reactstrap_1.FormGroup, null,\r\n (0, react_1.jsx)(components_1.LabelInfo, { label: participantTitle(api_1.SessionType.Announcement), info: participantInfo(api_1.SessionType.Announcement) }),\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: canShowPersonPicker },\r\n (0, react_1.jsx)(components_1.PeoplePicker, { orgRoute: orgRoute, groupRoute: props.groupRoute, onChange: onPeopleChange, disabled: isSaving, title: \"Individuals for Session Audience\" })),\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: canShowPersonPicker && canShowGroupPicker },\r\n (0, react_1.jsx)(\"div\", { className: \"mt-2\" })),\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: canShowGroupPicker },\r\n (0, react_1.jsx)(components_1.ParticipantGroupPicker, { onChangeGroup: onGroupsChange, groups: possibleGroups, defaultGroups: getSelectedGroups(), disabled: isSaving, title: \"Groups for Session Audience\" })))),\r\n (0, react_1.jsx)(components_1.RecordAndPlay, { ref: recordAndPlay, onChange: (state) => setClipState(state), onClipSourceChange: (value) => setClipSource(value), disabled: isSaving })),\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: isExpanded },\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 6 },\r\n (0, react_1.jsx)(TranscriptionPicker, null),\r\n (0, react_1.jsx)(CommentsPicker, null),\r\n (0, react_1.jsx)(reactstrap_1.FormGroup, null,\r\n (0, react_1.jsx)(components_1.LabelInfo, { label: \"Call to Action\", info: \"Text Description\" }),\r\n (0, react_1.jsx)(components_1.RichText, { placeholder: \"Call to Action for this Soundbite Session\", defaultValue: (_b = props.session) === null || _b === void 0 ? void 0 : _b.prompts[0].text, onChange: (value) => setAgenda(value), disabled: isSaving, title: \"Text description for this Soundbite Session\" })),\r\n (0, react_1.jsx)(SecurityTypePicker, null),\r\n (0, react_1.jsx)(components_1.SchedulePicker, { allowRecurrence: !isPublic, session: schedule, onSessionChange: onScheduleChange, disabled: isSaving })))),\r\n (0, react_1.jsx)(components_1.ErrorCtrl, { error: error }),\r\n draftAlert()));\r\n }\r\n function lockout() {\r\n return ((0, react_1.jsx)(components_1.AskAccess, { className: \"mb-4\", orgRoute: orgRoute, roleMsg: \"Creator\", title: \"Need behind the velvet rope? Have your DJ drop you an exclusive\\r\\n backstage pass\" }));\r\n }\r\n return ((0, react_1.jsx)(react_2.default.Fragment, null,\r\n (0, react_1.jsx)(\"div\", { className: \"sb-session-editor-widget\", css: styles },\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: canCreate },\r\n (0, react_1.jsx)(components_1.Loader, { isLoadedWhen: !isSaving, message: \"Processing...\" }, body())),\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: !canCreate }, lockout()),\r\n (0, react_1.jsx)(reactstrap_1.Row, { className: \"sb-session-editor-widget-footer\" },\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 12 },\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: !isSaving },\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: canCreate },\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: !isExpanded },\r\n (0, react_1.jsx)(reactstrap_1.Button, { onClick: onExpand, color: \"secondary\", size: \"sm\", type: \"button\", className: \"sb-link-btn\", title: \"Show Advanced Soundbite Session Options\" }, \"Show Advanced\"))),\r\n (0, react_1.jsx)(\"button\", { type: \"button\", className: \"btn btn-outline-secondary\", onClick: () => onClose(false), title: \"Close\" }, \"Close\"),\r\n \" \",\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: canCreate },\r\n (0, react_1.jsx)(\"button\", { type: \"button\", className: \"btn btn-primary\", onClick: onSave, title: `${sessionActionTitle} Session`, disabled: isInvalid() }, sessionActionTitle))),\r\n (0, react_1.jsx)(components_1.ShowWhen, { is: isSaving },\r\n (0, react_1.jsx)(components_1.SbProgress, { title: \"Creating Soundbite Session & Uploading Clip...\", progress: saveProgress })))))));\r\n};\r\nexports.SessionEditorWidget = SessionEditorWidget;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionReportDialog = void 0;\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst api_2 = require(\"@soundbite/api\");\r\nconst api_3 = require(\"@soundbite/api\");\r\nconst moment_timezone_1 = __importDefault(require(\"moment-timezone\"));\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst components_1 = require(\"../components\");\r\nconst GraphCard_1 = require(\"../components/reports/GraphCard\");\r\nconst SessionReactions_1 = require(\"../components/SessionReactions\");\r\nconst WidgetStore_1 = require(\"../store/WidgetStore\");\r\nconst DialogButtonStyleType_1 = require(\"./DialogButtonStyleType\");\r\nconst DialogHelper_1 = require(\"./DialogHelper\");\r\nconst DialogStyleType_1 = require(\"./DialogStyleType\");\r\nconst SessionReportDialog = (props) => {\r\n var _a, _b;\r\n let [isActionRunning, setIsActionRunning] = (0, react_1.useState)(false);\r\n let [sessionReport, setSessionReport] = (0, react_1.useState)(undefined);\r\n const isAdmin = WidgetStore_1.WidgetStore.isPersonRole(api_3.PersonRole.Admin);\r\n // NOTE: audience count is 100% accurate, but listens could count repeats\r\n // TODO: Make this fully-based on reading the database\r\n const audienceCount = Number((_a = sessionReport === null || sessionReport === void 0 ? void 0 : sessionReport.audienceSize.value) !== null && _a !== void 0 ? _a : 0);\r\n const listenersCount = Number((_b = sessionReport === null || sessionReport === void 0 ? void 0 : sessionReport.consumerCount.value) !== null && _b !== void 0 ? _b : 0);\r\n let percent = 0;\r\n if (audienceCount > 0) {\r\n percent = Math.floor((listenersCount / audienceCount) * 100);\r\n }\r\n if (percent > 100) {\r\n percent = 100;\r\n }\r\n const load = () => __awaiter(void 0, void 0, void 0, function* () {\r\n const newReport = yield api_3.ReportService.sessionReportAsync(props.orgRoute, props.session.route);\r\n setSessionReport(newReport);\r\n });\r\n const downloadCsv = (data, filename) => {\r\n const blob = new Blob([data], { type: \"text/csv\" });\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n link.setAttribute(\"download\", filename);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n const csvRow = (...data) => {\r\n // Convert data into comma-delimited string ready for CSV\r\n return data.map((item) => `\"${item}\"`).join(\",\");\r\n };\r\n const createCsv = () => __awaiter(void 0, void 0, void 0, function* () {\r\n const reportData = yield api_3.ReportService.sessionDetailsReportAsync(props.orgRoute, props.session.route);\r\n if (reportData == null) {\r\n window.alert(\"Unable Generate CSV Report\");\r\n return \"\";\r\n }\r\n const tz = moment_timezone_1.default.tz(moment_timezone_1.default.tz.guess()).format(\"z\");\r\n const csv = [];\r\n // Header with a row per field\r\n sessionSummary(csv, csvRow, props, tz, percent, reportData, listenersCount, audienceCount);\r\n // List of Audience\r\n audience(reportData, csv, csvRow, tz);\r\n // List of Groups in the Audience\r\n if (reportData.audienceGroups != null &&\r\n reportData.audienceGroups.length > 0) {\r\n audienceGroups(reportData, csv, csvRow, tz);\r\n }\r\n // List of Listeners\r\n if (reportData.plays != null && reportData.plays.length > 0) {\r\n playEvents(reportData, csv, csvRow, tz);\r\n }\r\n // Listens over time\r\n if (reportData.consumeCountOverTime != null &&\r\n reportData.consumeCountOverTime.items.length > 0) {\r\n consumeCountOverTime(reportData, csv, csvRow, tz);\r\n }\r\n // List of Acknowledgers\r\n if (reportData.acknowledgers != null &&\r\n reportData.acknowledgers.length > 0) {\r\n acknowledgers(reportData, csv, csvRow, tz);\r\n }\r\n sessionNotifications(reportData, csv, csvRow, tz);\r\n return csv.join(\"\\r\\n\");\r\n });\r\n const makeSafeFilename = (filename) => {\r\n // Removing any invalid character.\r\n return filename.replace(/[<>:\"\\/\\\\|?*]+/g, \"_\");\r\n };\r\n const download = () => __awaiter(void 0, void 0, void 0, function* () {\r\n const currentDateInISOFormat = (0, moment_timezone_1.default)().format(\"YYYY-MM-DD\");\r\n const csv = yield createCsv();\r\n if (csv.length > 0) {\r\n downloadCsv(csv, `Soundbite-Session-Report-${currentDateInISOFormat}-${makeSafeFilename(props.session.name)}.csv`);\r\n }\r\n });\r\n (0, react_1.useEffect)(() => {\r\n load();\r\n }, []);\r\n const getBody = () => {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(components_1.Loader, { isLoadedWhen: sessionReport != null },\r\n react_1.default.createElement(components_1.ShowWhen, { is: props.session.sessionSecurity === api_3.SessionSecurityType.Protected &&\r\n percent > 0 },\r\n react_1.default.createElement(reactstrap_1.Row, { className: \"mt-2\" },\r\n react_1.default.createElement(reactstrap_1.Col, null,\r\n react_1.default.createElement(components_1.KpiCard, { title: \"Engagement\", tooltip: \"Percentage of audience that has played to the Soundbite Session\", stat: `${percent}%`, statIcon: free_solid_svg_icons_1.faPercentage })))),\r\n react_1.default.createElement(reactstrap_1.Row, { className: \"mt-2\" },\r\n react_1.default.createElement(reactstrap_1.Col, null,\r\n react_1.default.createElement(reactstrap_1.Card, { className: \"sb-kpi-card mb-4 mb-xl-0 shadow\" },\r\n react_1.default.createElement(reactstrap_1.CardBody, { title: \"Session Reactions\" },\r\n react_1.default.createElement(\"h5\", { className: \"mb-0 card-title\" },\r\n react_1.default.createElement(\"span\", { className: \"text-uppercase\" }, \"Reactions\")),\r\n react_1.default.createElement(SessionReactions_1.SessionReactions, { orgRoute: props.orgRoute, sessionRoute: props.session.route, readOnly: true }))))),\r\n react_1.default.createElement(reactstrap_1.Row, { className: \"mt-2\" },\r\n react_1.default.createElement(reactstrap_1.Col, null,\r\n react_1.default.createElement(components_1.KpiCard, { title: \"Plays\", tooltip: \"Distinct number of times the session was played; may count repeat plays from the same person\", stat: sessionReport === null || sessionReport === void 0 ? void 0 : sessionReport.consumeCount.value, statIcon: free_solid_svg_icons_1.faPlay }))),\r\n react_1.default.createElement(components_1.ShowWhen, { is: props.session.sessionSecurity === api_3.SessionSecurityType.Protected },\r\n react_1.default.createElement(reactstrap_1.Row, { className: \"mt-2\" },\r\n react_1.default.createElement(reactstrap_1.Col, null,\r\n react_1.default.createElement(components_1.KpiCard, { title: \"Consumers\", tooltip: \"Number of individuals who played the Soundbite Session from any channel\", stat: sessionReport === null || sessionReport === void 0 ? void 0 : sessionReport.consumerCount.value, statIcon: free_solid_svg_icons_1.faHeadphonesAlt }))),\r\n react_1.default.createElement(reactstrap_1.Row, { className: \"mt-2\" },\r\n react_1.default.createElement(reactstrap_1.Col, null,\r\n react_1.default.createElement(components_1.KpiCard, { title: \"Audience\", tooltip: \"Number of individuals who received the Soundbite Session when it was published\", stat: sessionReport === null || sessionReport === void 0 ? void 0 : sessionReport.audienceSize.value, statIcon: free_solid_svg_icons_1.faUsers }))),\r\n react_1.default.createElement(reactstrap_1.Row, { className: \"mt-2\" },\r\n react_1.default.createElement(reactstrap_1.Col, null,\r\n react_1.default.createElement(components_1.KpiCard, { title: \"Acknowledgements\", tooltip: \"Number of individuals who confirmed playing to remove it from their feed\", stat: sessionReport === null || sessionReport === void 0 ? void 0 : sessionReport.acknowledgeCount.value, statIcon: free_solid_svg_icons_1.faCheck })))),\r\n react_1.default.createElement(reactstrap_1.Row, { className: \"mt-2\" },\r\n react_1.default.createElement(reactstrap_1.Col, null,\r\n react_1.default.createElement(GraphCard_1.GraphCard, { className: \"mt-4\", data: sessionReport === null || sessionReport === void 0 ? void 0 : sessionReport.consumeCountOverTime, fillDateRange: true }))))));\r\n };\r\n const getActions = () => {\r\n const ret = [];\r\n if (isAdmin) {\r\n ret.push({\r\n name: \"Download\",\r\n isClose: false,\r\n style: DialogButtonStyleType_1.DialogButtonStyleType.Secondary,\r\n onSelected: download,\r\n });\r\n }\r\n ret.push({\r\n name: \"Close\",\r\n isClose: true,\r\n style: DialogButtonStyleType_1.DialogButtonStyleType.Primary,\r\n });\r\n return ret;\r\n };\r\n return DialogHelper_1.DialogHelper.RenderDialog(DialogStyleType_1.DialogStyleType.Normal, `${props.session.name} Engagement Report`, getActions(), getBody(), isActionRunning, setIsActionRunning, props.onClose);\r\n};\r\nexports.SessionReportDialog = SessionReportDialog;\r\nfunction sessionSummary(csv, csvRow, props, tz, percent, reportData, listenersCount, audienceCount) {\r\n csv.push(csvRow(\"Session Name\", props.session.name));\r\n csv.push(csvRow(`Date Created (${tz})`, props.session.createdUtc));\r\n csv.push(csvRow(\"Session Security\", props.session.sessionSecurity === api_3.SessionSecurityType.Protected\r\n ? \"Private\"\r\n : \"Public\"));\r\n // TODO: Add other types as they arrive\r\n csv.push(csvRow(\"Session Type\", props.session.sessionType === api_1.SessionType.Announcement\r\n ? \"Announcement\"\r\n : \"Other\"));\r\n if (props.session.reminderSent != null) {\r\n csv.push(csvRow(`Date Reminded (${tz})`, api_2.Utils.formatDateTime(props.session.reminderSent)));\r\n }\r\n if (props.session.publishSent != null) {\r\n csv.push(csvRow(`Date Published (${tz})`, api_2.Utils.formatDateTime(props.session.publishSent)));\r\n }\r\n else {\r\n csv.push(csvRow(`Date Published (${tz})`, \"Unpublished\"));\r\n }\r\n csv.push(csvRow(\"\"));\r\n // Summary numbers\r\n csv.push(csvRow(\"Engagement Summary\"));\r\n csv.push(csvRow(\"Engagement\", \"\" + percent + \"%\"));\r\n csv.push(csvRow(\"Views\", \"\" + reportData.consumerCount.value));\r\n csv.push(csvRow(\"Viewer Count\", \"\" + listenersCount));\r\n csv.push(csvRow(\"Audience\", \"\" + audienceCount));\r\n csv.push(csvRow(\"Acknowledgement Count\", \"\" + reportData.acknowledgeCount.value));\r\n csv.push(csvRow(\"\"));\r\n}\r\nfunction acknowledgers(reportData, csv, csvRow, tz) {\r\n const acknowledgers = reportData.acknowledgers;\r\n csv.push(csvRow(\"Acknowledgements\"));\r\n csv.push(csvRow(\"One entry per participant indicated as having consumed\"));\r\n csv.push(csvRow(\"Family Name\", \"Given Name\", \"Job Title\", \"Email\", `Date Listened (${tz})`));\r\n acknowledgers.forEach((acknowleder) => {\r\n csv.push(csvRow(acknowleder.familyName, acknowleder.givenName, acknowleder.title, acknowleder.email, api_2.Utils.formatDateTime(acknowleder.dateTimeUtc)));\r\n });\r\n csv.push(csvRow(\"\"));\r\n}\r\nfunction notificationStatusName(notification) {\r\n switch (notification.status) {\r\n case api_1.NotificationStatus.Success:\r\n return \"Success\";\r\n case api_1.NotificationStatus.Failed:\r\n return \"Failure\";\r\n default:\r\n return \"Unknown\";\r\n }\r\n}\r\nfunction notificationTypeName(notification) {\r\n switch (notification.notificationType) {\r\n case api_1.SessionNotificationType.HostPublish:\r\n return \"Host Publish\";\r\n case api_1.SessionNotificationType.Publish:\r\n return \"Audience Publish\";\r\n case api_1.SessionNotificationType.Reminder:\r\n return \"Host Reminder\";\r\n default:\r\n return \"Unknown\";\r\n }\r\n}\r\nfunction notificationChannelName(notification) {\r\n switch (notification.channel) {\r\n case api_1.NotificationChannel.Email:\r\n return \"E-Mail\";\r\n case api_1.NotificationChannel.SMS:\r\n return \"SMS\";\r\n case api_1.NotificationChannel.Teams:\r\n return \"MS Teams\";\r\n default:\r\n return \"Unknown\";\r\n }\r\n}\r\nfunction sessionNotifications(reportData, csv, csvRow, tz) {\r\n const notifications = reportData.notifications;\r\n console.log(\"Example data\", JSON.stringify(notifications));\r\n csv.push(csvRow(\"Notifications\"));\r\n csv.push(csvRow(`Date Sent (${tz})`, \"Status\", \"Channel\", \"Type\", \"Details\", \"User Family Name\", \"User Given Name\", \"User Job Title\", \"User Email\"));\r\n notifications.forEach((notification) => {\r\n var _a;\r\n csv.push(csvRow(api_2.Utils.formatDateTime(notification.dateTimeUtc), notificationStatusName(notification), notificationChannelName(notification), notificationTypeName(notification), (_a = notification.details) !== null && _a !== void 0 ? _a : \"\", notification.familyName, notification.givenName, notification.title, notification.email));\r\n });\r\n csv.push(csvRow(\"\"));\r\n}\r\nfunction audienceGroups(reportData, csv, csvRow, tz) {\r\n const audienceGroups = reportData.audienceGroups;\r\n csv.push(csvRow(\"Participant Groups\"));\r\n csv.push(csvRow(\"Groups assigned to the session; if the session is published, then the individuals above reflect the members of these groups at the time of session publish\"));\r\n csv.push(csvRow(\"Name\", \"Description\", \"Session Role\", `Last Updated (${tz})`));\r\n audienceGroups.forEach((partGrp) => {\r\n csv.push(csvRow(partGrp.group.name, partGrp.group.description, api_2.Utils.participantRoleString(partGrp.participantRole), api_2.Utils.formatDateTime(partGrp.updatedUtc)));\r\n });\r\n csv.push(csvRow(\"\"));\r\n}\r\nfunction audience(reportData, csv, csvRow, tz) {\r\n const audience = reportData.audience;\r\n csv.push(csvRow(\"Participants\"));\r\n csv.push(csvRow(\"Individuals who were assigned to the session\"));\r\n csv.push(csvRow(\"Family Name\", \"Given Name\", \"Job Title\", \"Email\", \"Session Role\", \"Session Reaction\", `Last Updated (${tz})`));\r\n audience.forEach((part) => {\r\n csv.push(csvRow(part.person.user.familyName, part.person.user.givenName, part.person.user.title, part.person.user.email, api_2.Utils.participantRoleString(part.participantRole), api_2.Utils.participantReactionString(part.reactionType), api_2.Utils.formatDateTime(part.updatedUtc)));\r\n });\r\n csv.push(csvRow(\"\"));\r\n}\r\nfunction playEvents(reportData, csv, csvRow, tz) {\r\n const playEvents = reportData.plays;\r\n csv.push(csvRow(\"Play Events\"));\r\n csv.push(csvRow(\"One entry per clip play, the same person may have played multiple times\"));\r\n csv.push(csvRow(\"Family Name\", \"Given Name\", \"Job Title\", \"Email\", `Date Played (${tz})`));\r\n playEvents.forEach((play) => {\r\n csv.push(csvRow(play.familyName, play.givenName, play.title, play.email, api_2.Utils.formatDateTime(play.dateTimeUtc)));\r\n });\r\n csv.push(csvRow(\"\"));\r\n}\r\nfunction consumeCountOverTime(reportData, csv, csvRow, tz) {\r\n let timeSeries = reportData.consumeCountOverTime.items;\r\n timeSeries = api_2.Utils.fillMissingDates(timeSeries);\r\n csv.push(csvRow(\"Play Events Over Time\"));\r\n csv.push(csvRow(\"One entry per date the clip was consumed by at least one person\"));\r\n csv.push(csvRow(`Date (${tz})`, \"Play Count\"));\r\n timeSeries.forEach((day) => {\r\n csv.push(csvRow(api_2.Utils.formatDate(day.label), day.value + \"\"));\r\n });\r\n csv.push(csvRow(\"\"));\r\n}\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GraphCard = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst react_chartjs_2_1 = require(\"react-chartjs-2\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst controls_1 = require(\"../controls\");\r\nconst chart_js_1 = require(\"chart.js\");\r\nconst styles_1 = require(\"../../styles\");\r\nchart_js_1.Chart.register(chart_js_1.CategoryScale);\r\nchart_js_1.Chart.register(chart_js_1.LinearScale);\r\nchart_js_1.Chart.register(chart_js_1.PointElement);\r\nchart_js_1.Chart.register(chart_js_1.LineElement);\r\nconst font = {\r\n family: styles_1.GlobalTheme.current.fonts.fontFamily,\r\n size: 14,\r\n};\r\nconst GraphCard = (props) => {\r\n var _a, _b, _c, _d, _e, _f;\r\n if ((props === null || props === void 0 ? void 0 : props.data) != null && props.fillDateRange === true) {\r\n props.data.items = api_1.Utils.fillMissingDates(props.data.items);\r\n }\r\n const graphData = {\r\n labels: (_a = props.data) === null || _a === void 0 ? void 0 : _a.items.map((t) => api_1.Utils.formatDate(t.label)),\r\n datasets: [\r\n {\r\n label: (_b = props.data) === null || _b === void 0 ? void 0 : _b.title,\r\n data: (_d = (_c = props.data) === null || _c === void 0 ? void 0 : _c.items.map((t) => t.value)) !== null && _d !== void 0 ? _d : [],\r\n },\r\n ],\r\n };\r\n const graphOptions = {\r\n responsive: true,\r\n plugins: {\r\n legend: {\r\n position: \"bottom\",\r\n labels: { font: font },\r\n },\r\n title: {\r\n display: true,\r\n text: \"Example Chart\",\r\n },\r\n },\r\n font: font,\r\n hover: {},\r\n scales: {\r\n y: { beginAtZero: true },\r\n },\r\n };\r\n return (react_1.default.createElement(controls_1.Loader, { isLoadedWhen: props.data != null },\r\n react_1.default.createElement(reactstrap_1.Card, { className: `sb-kpi-card mb-4 mb-xl-0 shadow ${props.className}` },\r\n react_1.default.createElement(reactstrap_1.CardBody, null,\r\n react_1.default.createElement(\"span\", null, (_e = props.data) === null || _e === void 0 ? void 0 : _e.title),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: ((_f = graphData.labels) === null || _f === void 0 ? void 0 : _f.length) === 0 }, \"No Data for Graph\"),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: graphData.labels != null && graphData.labels.length > 0 },\r\n react_1.default.createElement(react_chartjs_2_1.Line, { data: graphData, options: graphOptions }))))));\r\n};\r\nexports.GraphCard = GraphCard;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionReactions = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = __importStar(require(\"react\"));\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst controls_1 = require(\"./controls\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\n/***************************************************************************************************\r\n * Constants / Global Variables\r\n **************************************************************************************************/\r\nconst getStyles = () => {\r\n const ret = (0, react_1.css) `\r\n .btn-inner--text {\r\n font-size: 1rem;\r\n margin-left: 0.25rem;\r\n font-weight: 300;\r\n }\r\n\r\n svg {\r\n margin-top: 1px;\r\n width: 1.25rem;\r\n height: 1.25rem;\r\n }\r\n `;\r\n return ret;\r\n};\r\nlet styles = undefined;\r\n/**\r\n * Provides a standard way of creating buttons in Soundbite Studio.\r\n */\r\nconst SessionReactions = (props) => {\r\n //////////[ Methods ]///////////////////////////////////////////////////////////////////\r\n var _a, _b, _c, _d, _e, _f;\r\n const [reactions, setReactions] = (0, react_2.useState)((_a = props.session) === null || _a === void 0 ? void 0 : _a.reactions);\r\n const [myReaction, setMyReaction] = (0, react_2.useState)((_c = (_b = props.session) === null || _b === void 0 ? void 0 : _b.myParticipation[0]) === null || _c === void 0 ? void 0 : _c.reactionType);\r\n const sessionRoute = (_d = props.sessionRoute) !== null && _d !== void 0 ? _d : (_e = props.session) === null || _e === void 0 ? void 0 : _e.route;\r\n const isReadOnly = (_f = props.readOnly) !== null && _f !== void 0 ? _f : false;\r\n const applyReactions = (reactions) => {\r\n setReactions(reactions);\r\n setMyReaction(undefined);\r\n };\r\n // Load the session, but only at the scope of this control in case we need changes or they didn't load it before showing this\r\n const load = (forceLoad = false) => __awaiter(void 0, void 0, void 0, function* () {\r\n // If we have not context, then we can't load\r\n if (props.orgRoute == null) {\r\n return;\r\n }\r\n if (sessionRoute == null) {\r\n return;\r\n }\r\n // We only load if we haven't already OR they're making us do it\r\n const needToLoad = reactions == null && props.orgRoute != null && props.sessionRoute != null;\r\n if (forceLoad || needToLoad) {\r\n const newReactions = yield api_1.SessionsService.readReactionsAsync(props.orgRoute, sessionRoute);\r\n applyReactions(newReactions);\r\n }\r\n });\r\n (0, react_2.useEffect)(() => {\r\n const doLoad = () => {\r\n load();\r\n };\r\n doLoad();\r\n }, []);\r\n const removeReaction = (reactionType) => {\r\n if (props.session == null) {\r\n return;\r\n }\r\n setMyReaction(undefined);\r\n const oldReaction = props.session.reactions.find((r) => r.reactionType === reactionType);\r\n if (oldReaction == null) {\r\n return;\r\n }\r\n else {\r\n if (oldReaction.count <= 0) {\r\n return;\r\n }\r\n oldReaction.count -= 1;\r\n }\r\n };\r\n const addReaction = (reactionType) => {\r\n if (props.session == null) {\r\n return;\r\n }\r\n setMyReaction(reactionType);\r\n const oldReaction = props.session.reactions.find((r) => r.reactionType === reactionType);\r\n if (oldReaction == null) {\r\n props.session.reactions.push({ reactionType, count: 1 });\r\n }\r\n else {\r\n oldReaction.count += 1;\r\n }\r\n };\r\n const calcNewReaction = (reactionType) => {\r\n var _a;\r\n if (props.session == null) {\r\n return reactionType;\r\n }\r\n // Having no reactions also mean they don't verifiably have participant records on this session, though they might have a host role\r\n const oldReaction = (_a = props.session.myParticipation.find((p) => p.participantRole === api_1.ParticipantRole.Audience ||\r\n p.participantRole === api_1.ParticipantRole.Participant)) === null || _a === void 0 ? void 0 : _a.reactionType;\r\n if (oldReaction == null) {\r\n // It's a new reaction with no old one\r\n addReaction(reactionType);\r\n return reactionType;\r\n }\r\n else if (oldReaction === reactionType) {\r\n // It's the same reaction, so remove entirely\r\n removeReaction(oldReaction);\r\n return api_1.ParticipantReactionType.None;\r\n }\r\n else {\r\n // It's a novel reaction, so change it\r\n removeReaction(oldReaction);\r\n addReaction(reactionType);\r\n return reactionType;\r\n }\r\n };\r\n const onReaction = (reactionType) => __awaiter(void 0, void 0, void 0, function* () {\r\n if (props.orgRoute == null || sessionRoute == null) {\r\n return;\r\n }\r\n reactionType = calcNewReaction(reactionType);\r\n yield api_1.SessionsService.updateReactionAsync(props.orgRoute, sessionRoute, reactionType);\r\n yield load(true);\r\n });\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n const iconForReactionType = (reactionType) => {\r\n switch (reactionType) {\r\n case api_1.ParticipantReactionType.None:\r\n return undefined;\r\n case api_1.ParticipantReactionType.Like:\r\n return free_solid_svg_icons_1.faThumbsUp;\r\n case api_1.ParticipantReactionType.Love:\r\n return free_solid_svg_icons_1.faHeart;\r\n case api_1.ParticipantReactionType.Laugh:\r\n return free_solid_svg_icons_1.faFaceLaugh;\r\n case api_1.ParticipantReactionType.Wow:\r\n return free_solid_svg_icons_1.faFaceFlushed;\r\n case api_1.ParticipantReactionType.Sad:\r\n return free_solid_svg_icons_1.faFrown;\r\n default:\r\n return undefined;\r\n }\r\n };\r\n const reactionBtn = (reactionType) => {\r\n var _a, _b;\r\n const iconName = iconForReactionType(reactionType);\r\n if (iconName == null) {\r\n return (0, react_1.jsx)(react_2.default.Fragment, null);\r\n }\r\n const number = (_b = (_a = reactions === null || reactions === void 0 ? void 0 : reactions.find((r) => r.reactionType === reactionType)) === null || _a === void 0 ? void 0 : _a.count) !== null && _b !== void 0 ? _b : 0;\r\n let classes = \"\";\r\n if (isReadOnly) {\r\n classes += \"dark\";\r\n }\r\n else {\r\n classes += \"secondary\";\r\n }\r\n let handler = isReadOnly\r\n ? undefined\r\n : () => {\r\n onReaction(reactionType);\r\n };\r\n const isMyReaction = myReaction === reactionType;\r\n return ((0, react_1.jsx)(reactstrap_1.Button, { outline: true, size: \"sm\", color: classes, className: classes, onClick: handler, disabled: isReadOnly, active: isMyReaction },\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--icon\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: iconName })),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isReadOnly || number > 0 },\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--text\" }, number))));\r\n };\r\n if (styles == null) {\r\n styles = getStyles();\r\n }\r\n return ((0, react_1.jsx)(\"div\", { className: \"sb-reaction-summary mt-2 mb-2\", css: styles },\r\n reactionBtn(api_1.ParticipantReactionType.Like),\r\n reactionBtn(api_1.ParticipantReactionType.Love),\r\n reactionBtn(api_1.ParticipantReactionType.Laugh),\r\n reactionBtn(api_1.ParticipantReactionType.Wow),\r\n reactionBtn(api_1.ParticipantReactionType.Sad)));\r\n};\r\nexports.SessionReactions = SessionReactions;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.InfiniteScrollDataHelper = void 0;\r\nconst ErrorDlg_1 = require(\"../components/ErrorDlg\");\r\n/**\r\n * Helper that ensures only one active call can occur for an infinite scroll table at a time.\r\n * Data from each subsequent call is stored off for processing when the current call completes.\r\n * Each subsequent call also overwrites any previous subsequent calls. The theory here is that\r\n * when the current request completes the last subsequent call fires because it represents the\r\n * current position of the table and all the other requests have been scrolled by and are no\r\n * longer applicable.\r\n */\r\nclass InfiniteScrollDataHelper {\r\n constructor(getMoreItemsAction) {\r\n this.requestPromise = null;\r\n this.waitPromise = null;\r\n this.waitStart = 0;\r\n this.waitStop = 0;\r\n this.getMoreItemsAction = getMoreItemsAction;\r\n }\r\n getMoreItems(startIndex, stopIndex) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.requestPromise == null) {\r\n this.requestPromise = this.getMoreItemsAction(startIndex, stopIndex);\r\n this.requestPromise.catch((err) => {\r\n ErrorDlg_1.ErrorDlg.show(err, \"Error Loading Sessions\", `Error querying for sessions ${startIndex} to ${stopIndex}:`);\r\n });\r\n this.requestPromise.then(() => (this.requestPromise = null));\r\n return this.requestPromise;\r\n }\r\n else {\r\n this.waitStart = startIndex;\r\n this.waitStop = stopIndex;\r\n if (this.waitPromise == null) {\r\n this.waitPromise = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n yield this.requestPromise;\r\n this.requestPromise = this.getMoreItemsAction(this.waitStart, this.waitStop);\r\n yield this.requestPromise;\r\n this.waitPromise = null;\r\n this.requestPromise = null;\r\n resolve();\r\n }\r\n catch (ex) {\r\n reject(ex);\r\n }\r\n }));\r\n }\r\n return this.waitPromise;\r\n }\r\n });\r\n }\r\n}\r\nexports.InfiniteScrollDataHelper = InfiniteScrollDataHelper;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TranscriptViewer = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = __importStar(require(\"react\"));\r\nconst ShowWhen_1 = require(\"./ShowWhen\");\r\nconst __1 = require(\"../..\");\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst Loader_1 = require(\"./Loader\");\r\nconst moment_1 = __importDefault(require(\"moment\"));\r\n/***************************************************************************************************\r\n * Constants / Global Variables\r\n **************************************************************************************************/\r\nconst getStyles = () => {\r\n const ret = (0, react_1.css) `\r\n & > ul:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n & .sb-participant-block svg {\r\n margin-right: 0.25rem;\r\n }\r\n\r\n .sb-pg-expandable:hover {\r\n background-color: ${__1.GlobalTheme.current.colors.neutrals.n300};\r\n cursor: pointer;\r\n }\r\n\r\n .sb-block-list {\r\n padding-left: 0;\r\n }\r\n\r\n .sb-block-list:empty {\r\n display: none;\r\n }\r\n\r\n .sb-block-list li {\r\n display: inline-block;\r\n list-style: none;\r\n color: ${__1.GlobalTheme.current.colors.neutrals.n800};\r\n background-color: ${__1.GlobalTheme.current.colors.neutrals.n100};\r\n border-radius: 4px;\r\n padding: 2px 6px;\r\n margin: 2px;\r\n }\r\n\r\n .sb-block-list li:first-of-type {\r\n margin-left: 0;\r\n }\r\n\r\n .sb-transcript-viewer > ul:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n .sb-transcript-viewer .sb-participant-block i {\r\n margin-right: 0.25rem;\r\n }\r\n\r\n .ttitle {\r\n margin-top: 8px;\r\n }\r\n\r\n .tsection {\r\n margin-bottom: 8px;\r\n margin-top: 8px;\r\n }\r\n `;\r\n return ret;\r\n};\r\nlet styles = undefined;\r\n/***************************************************************************************************\r\n * State Enum\r\n **************************************************************************************************/\r\nvar controlState;\r\n(function (controlState) {\r\n controlState[controlState[\"NotRequested\"] = 0] = \"NotRequested\";\r\n controlState[controlState[\"Requested\"] = 1] = \"Requested\";\r\n controlState[controlState[\"Retrieved\"] = 2] = \"Retrieved\";\r\n controlState[controlState[\"Error\"] = 3] = \"Error\";\r\n controlState[controlState[\"CannotRequest\"] = 4] = \"CannotRequest\";\r\n})(controlState || (controlState = {}));\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexports.TranscriptViewer = (0, mobx_react_lite_1.observer)((props) => {\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n const [isExpanded, setIsExpanded] = (0, react_2.useState)(props.isExpanded);\r\n const [state, setState] = (0, react_2.useState)(controlState.NotRequested);\r\n const [transcript, setTranscript] = (0, react_2.useState)(null);\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n // Make sure to reset the control\r\n (0, react_2.useEffect)(() => {\r\n setState(controlState.NotRequested);\r\n setTranscript(null);\r\n }, [\r\n props.orgRoute,\r\n props.sessionRoute,\r\n props.promptRoute,\r\n props.clipRoute,\r\n props.isPublic,\r\n ]);\r\n (0, react_2.useEffect)(() => {\r\n setIsExpanded(props.isExpanded);\r\n if (state != controlState.Retrieved && props.isExpanded === true) {\r\n getTranscript();\r\n }\r\n }, [props.isExpanded]);\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Calls our API to acquire the URL of the transcript\r\n */\r\n function getTranscript() {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // Make sure we have all necessary information to continue\r\n if (props.orgRoute && props.sessionRoute && props.clipRoute) {\r\n setState(controlState.Requested);\r\n var transcriptUrl = null;\r\n // Attempt to get the URL of the transcript\r\n try {\r\n transcriptUrl = yield api_1.ClipService.getTranscriptUrl(props.orgRoute, props.sessionRoute, props.clipRoute, (_a = props.isPublic) !== null && _a !== void 0 ? _a : false);\r\n }\r\n catch (ex) {\r\n var msg = \"Failed to retrieve transcript URL.\";\r\n api_1.Logger.LogError(msg, ex);\r\n setState(controlState.Error);\r\n throw new Error(msg);\r\n }\r\n // Attempt to get the transcript at the URL acquired above\r\n try {\r\n var transcriptLocal = yield api_1.SoundbiteApiConfig.httpAdapter.get(transcriptUrl, { includeToken: false });\r\n setTranscript(transcriptLocal);\r\n setState(controlState.Retrieved);\r\n }\r\n catch (ex) {\r\n var msg = \"Failed to retrieve transcript JSON.\";\r\n api_1.Logger.LogError(msg, ex);\r\n setState(controlState.Error);\r\n throw new Error(msg);\r\n }\r\n }\r\n else {\r\n // We are missing key information so we cannot get the transcript\r\n var msg = \"Failed to retrieve transcript because of missing information.\";\r\n api_1.Logger.LogError(msg);\r\n setState(controlState.CannotRequest);\r\n throw new Error(msg);\r\n }\r\n });\r\n }\r\n /**\r\n * Determines the format/version of the transcript and offloads the processing\r\n * to the appropriate transcript text renderer.\r\n */\r\n function RenderTranscript() {\r\n var _a;\r\n try {\r\n if (transcript) {\r\n // AMS does not have a format parameter so we have to \"figure it out\" here\r\n if (transcript.format == undefined &&\r\n ((_a = transcript.transcript) === null || _a === void 0 ? void 0 : _a.length) > 0) {\r\n transcript.format = \"AMS\";\r\n }\r\n switch (transcript.format) {\r\n case \"AMS\" /* Azure Media Services (Video) */:\r\n return RenderAmsTranscriptV1_0_0();\r\n case \"ASTT\" /* Azure Speach To Text */:\r\n return RenderAzureTranscriptV1_0_0(transcript.version);\r\n default:\r\n TranscriptNotAvailable();\r\n }\r\n }\r\n else {\r\n return TranscriptNotAvailable();\r\n }\r\n }\r\n catch (_b) {\r\n return (0, react_1.jsx)(\"div\", null, \"Error Displaying Transcript\");\r\n }\r\n }\r\n function RenderAmsTranscriptV1_0_0() {\r\n ///////////////////////////////////////////////////////////////////////////////\r\n // NOTE: This code should be kept in sync with the TranscriptionResult class //\r\n // code in the Masticore.Transcription project //\r\n //////////////////////////////////////////////////////////////////////////////\r\n const amsGapThresholdInMs = 500;\r\n let sections = [\"\"];\r\n let isNewSectionNeeded = false;\r\n let last = moment_1.default.duration(\"00:00:00\");\r\n let currentSection = 0;\r\n // Iterate over all of the transcript parts\r\n transcript.transcript.forEach((part) => {\r\n // Determine whether this is a new section\r\n let instance = part.instances[0];\r\n if (instance) {\r\n const start = moment_1.default.duration(instance.start);\r\n isNewSectionNeeded =\r\n start.subtract(last).asMilliseconds() > amsGapThresholdInMs;\r\n last = moment_1.default.duration(instance.end);\r\n }\r\n // Append the new section if needed\r\n if (isNewSectionNeeded) {\r\n // Only append a new section if there is content in the current section\r\n if (sections[currentSection]) {\r\n currentSection++;\r\n sections.push(\"\");\r\n }\r\n }\r\n // Make sure we have text with which to work\r\n if (part.text) {\r\n if (sections[currentSection].length > 0) {\r\n sections[currentSection] += \" \";\r\n }\r\n sections[currentSection] += part.text;\r\n }\r\n });\r\n return ((0, react_1.jsx)(react_2.default.Fragment, null,\r\n !!props.title ? props.title : null,\r\n sections.map((section, index) => ((0, react_1.jsx)(\"div\", { className: \"tsection\", id: `tsec${index}` },\r\n (0, react_1.jsx)(\"p\", null, section))))));\r\n }\r\n /**\r\n * Renders the transcript using the Azure Speech To Text (v1.0.0) format.\r\n */\r\n function RenderAzureTranscriptV1_0_0(version) {\r\n return ((0, react_1.jsx)(react_2.default.Fragment, null,\r\n !!props.title ? props.title : null,\r\n transcript.sections.map((section, index) => ((0, react_1.jsx)(\"div\", { className: \"tsection\", id: `tsec${index}` },\r\n (0, react_1.jsx)(\"p\", null, section.text))))));\r\n }\r\n function TranscriptNotAvailable() {\r\n return (0, react_1.jsx)(\"div\", null, \"Transcript not available.\");\r\n }\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n //////////[ Component UI Helper Methods ]/////////////////////////////////////////////////////////\r\n function renderComponent() {\r\n if (styles == null) {\r\n styles = getStyles();\r\n }\r\n return ((0, react_1.jsx)(\"span\", { className: `sb-transcript-viewer ${props.className}`, css: styles },\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: isExpanded && state == controlState.Requested },\r\n (0, react_1.jsx)(Loader_1.Loader, null)),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: isExpanded && state == controlState.Retrieved }, RenderTranscript()),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: isExpanded && state == controlState.Error }, \"There was an issue loading the transcript.\"),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: isExpanded && state == controlState.CannotRequest }, \"Clip is missing information required to request the transcript.\")));\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n return renderComponent();\r\n});\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ColorConfig = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst tinycolor2_1 = __importDefault(require(\"tinycolor2\"));\r\nconst styles_1 = require(\"../../styles\");\r\nconst ThemeProcessor_1 = require(\"../../styles/ThemeProcessor\");\r\nconst ColorPicker_1 = require(\"./ColorPicker\");\r\nconst baseStyles = (0, react_1.css) ``;\r\nfunction setColor(colorType, colorName, colorVal) {\r\n styles_1.GlobalTheme.current.colors[colorType][colorName] = colorVal;\r\n}\r\nconst ColorConfig = () => {\r\n function colorPicker(colorType, colorName, title, onChange) {\r\n return ((0, react_1.jsx)(ColorPicker_1.ColorPicker, { defaultColor: styles_1.GlobalTheme.current.colors[colorType][colorName], onChange: (colorVal) => {\r\n setColor(colorType, colorName, colorVal);\r\n if (onChange) {\r\n onChange(colorVal);\r\n }\r\n }, title: title !== null && title !== void 0 ? title : colorName }));\r\n }\r\n function bootstrapColorPicker(colorName) {\r\n const lowName = colorName + \"Low\";\r\n const highName = colorName + \"High\";\r\n return colorPicker(\"bootstrap\", colorName, colorName, (colorVal) => {\r\n const isLight = (0, tinycolor2_1.default)(styles_1.GlobalTheme.current.colors.neutrals.min).isLight();\r\n setColor(\"bootstrap\", highName, ThemeProcessor_1.ThemeProcessor.upContrast(colorVal, isLight).toHexString());\r\n setColor(\"bootstrap\", lowName, ThemeProcessor_1.ThemeProcessor.downContrast(colorVal, isLight).toHexString());\r\n });\r\n }\r\n function brand() {\r\n return ((0, react_1.jsx)(\"div\", { className: \"mb-2\" },\r\n (0, react_1.jsx)(\"h2\", { className: \"text-uppercase text-sm\" }, \"Brand\"),\r\n colorPicker(\"brand\", \"first\"),\r\n colorPicker(\"brand\", \"second\")));\r\n }\r\n function hues() {\r\n return ((0, react_1.jsx)(\"div\", { className: \"mb-2\" },\r\n (0, react_1.jsx)(\"h2\", { className: \"text-uppercase text-sm\" }, \"Hues\"),\r\n colorPicker(\"hues\", \"red\"),\r\n colorPicker(\"hues\", \"orange\"),\r\n colorPicker(\"hues\", \"yellow\"),\r\n colorPicker(\"hues\", \"green\"),\r\n colorPicker(\"hues\", \"blue\"),\r\n colorPicker(\"hues\", \"indigo\"),\r\n colorPicker(\"hues\", \"violet\"),\r\n colorPicker(\"hues\", \"pink\"),\r\n colorPicker(\"hues\", \"teal\"),\r\n colorPicker(\"hues\", \"cyan\")));\r\n }\r\n function bootstrap() {\r\n return ((0, react_1.jsx)(\"div\", { className: \"mb-2\" },\r\n (0, react_1.jsx)(\"h2\", { className: \"text-uppercase text-sm\" }, \"Bootstrap\"),\r\n (0, react_1.jsx)(\"p\", { className: \"text-sm text-muted\" }, \"Each color has a High and Low contrast pair\"),\r\n bootstrapColorPicker(\"default\"),\r\n bootstrapColorPicker(\"primary\"),\r\n bootstrapColorPicker(\"secondary\"),\r\n bootstrapColorPicker(\"info\"),\r\n bootstrapColorPicker(\"success\"),\r\n bootstrapColorPicker(\"warning\"),\r\n bootstrapColorPicker(\"danger\")));\r\n }\r\n function neutrals() {\r\n return ((0, react_1.jsx)(\"div\", { className: \"mb-2\" },\r\n (0, react_1.jsx)(\"h2\", { className: \"text-uppercase text-sm\" }, \"Neutrals\"),\r\n colorPicker(\"neutrals\", \"min\"),\r\n colorPicker(\"neutrals\", \"n100\"),\r\n colorPicker(\"neutrals\", \"n200\"),\r\n colorPicker(\"neutrals\", \"n300\"),\r\n colorPicker(\"neutrals\", \"n400\"),\r\n colorPicker(\"neutrals\", \"n500\"),\r\n colorPicker(\"neutrals\", \"n600\"),\r\n colorPicker(\"neutrals\", \"n700\"),\r\n colorPicker(\"neutrals\", \"n800\"),\r\n colorPicker(\"neutrals\", \"n900\"),\r\n colorPicker(\"neutrals\", \"max\"),\r\n colorPicker(\"neutrals\", \"foreground\"),\r\n colorPicker(\"neutrals\", \"midground\"),\r\n colorPicker(\"neutrals\", \"background\")));\r\n }\r\n return ((0, react_1.jsx)(\"div\", { css: baseStyles },\r\n brand(),\r\n hues(),\r\n bootstrap(),\r\n neutrals()));\r\n};\r\nexports.ColorConfig = ColorConfig;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ColorPicker = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = __importDefault(require(\"react\"));\r\nconst react_color_1 = require(\"react-color\");\r\nconst controls_1 = require(\"../controls\");\r\nconst tinycolor2_1 = __importDefault(require(\"tinycolor2\"));\r\nconst baseStyles = (0, react_1.css) `\r\n position: relative;\r\n\r\n .sb-color-picker-popover {\r\n bottom: 2rem;\r\n position: absolute;\r\n z-index: 2;\r\n }\r\n\r\n .sb-color-swatch {\r\n border: 1px solid white;\r\n border-radius: 0.675rem;\r\n cursor: pointer;\r\n display: inline-block;\r\n min-height: 2rem;\r\n min-width: 2rem;\r\n padding: 2px 0.5rem;\r\n text-align: center;\r\n }\r\n\r\n .sb-cover {\r\n bottom: 0;\r\n left: 0;\r\n position: fixed;\r\n right: 0;\r\n top: 0;\r\n z-index: 1;\r\n }\r\n\r\n .sb-color-swatch.active {\r\n outline: 5px auto -webkit-focus-ring-color;\r\n }\r\n`;\r\n// Based on example from https://casesandberg.github.io/react-color/\r\nclass ColorPicker extends react_2.default.Component {\r\n constructor(props) {\r\n var _a;\r\n super(props);\r\n this.onChangeComplete = (color /*, event: React.ChangeEvent*/) => {\r\n this.setState({ color: color.hex });\r\n this.props.onChange(color.hex);\r\n };\r\n this.state = {\r\n color: (_a = props.defaultColor) !== null && _a !== void 0 ? _a : \"#fff\",\r\n isOpen: false,\r\n };\r\n }\r\n render() {\r\n const isLight = (0, tinycolor2_1.default)(this.state.color).isLight();\r\n const offsetColor = isLight ? \"black\" : \"white\";\r\n const swatchClasses = \"sb-color-swatch mb-1 mr-1\" + (this.state.isOpen ? \" active\" : \"\");\r\n return ((0, react_1.jsx)(\"span\", { css: baseStyles, className: this.props.className },\r\n (0, react_1.jsx)(\"span\", { className: swatchClasses, style: {\r\n backgroundColor: this.state.color,\r\n borderColor: offsetColor,\r\n }, onClick: () => {\r\n this.setState({ isOpen: true });\r\n } },\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: this.props.title != null },\r\n (0, react_1.jsx)(\"span\", { style: { color: offsetColor } }, this.props.title))),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: this.state.isOpen },\r\n (0, react_1.jsx)(\"div\", { className: \"sb-cover\", onClick: () => {\r\n this.setState({ isOpen: false });\r\n } }),\r\n (0, react_1.jsx)(\"div\", { className: \"sb-color-picker-popover\" },\r\n (0, react_1.jsx)(react_color_1.SketchPicker, { color: this.state.color, onChangeComplete: this.onChangeComplete })))));\r\n }\r\n}\r\nexports.ColorPicker = ColorPicker;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RecordAndPlay = void 0;\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst classnames_1 = __importDefault(require(\"classnames\"));\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst styles_1 = require(\"../styles\");\r\nconst OrganizationStore_1 = require(\"../store/OrganizationStore\");\r\nconst enums_1 = require(\"../enums\");\r\nconst SoundScrubber_1 = require(\"./SoundScrubber\");\r\nconst Player_1 = require(\"./Player\");\r\nconst controls_1 = require(\"./controls\");\r\nconst DownloadBtn_1 = require(\"./controls/DownloadBtn\");\r\nconst VideoEditor_1 = require(\"./video/VideoEditor\");\r\nconst store_1 = require(\"../store\");\r\nvar rmg = require(\"../components/react-mic-gold\");\r\n/** A multi-purpose component that can both record in-browser and accept uploads via files */\r\nclass RecordAndPlay extends react_1.Component {\r\n constructor(props) {\r\n var _a;\r\n super(props);\r\n this.scrubber = (0, react_1.createRef)();\r\n const isVideoEnabled = ((_a = store_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.settings.sessions.videoEnabled) ===\r\n true;\r\n const defaultTab = isVideoEnabled\r\n ? enums_1.ClipSource.RecordVideo\r\n : enums_1.ClipSource.RecordAudio;\r\n this.state = {\r\n time: 0,\r\n recordedDuration: 0,\r\n audioFile: undefined,\r\n dlgState: enums_1.DialogState.Empty,\r\n isPlayMode: false,\r\n activeTabValue: defaultTab,\r\n uploadFile: undefined,\r\n uploadDuration: 0,\r\n audioError: false,\r\n };\r\n if (this.props.onClipSourceChange) {\r\n this.props.onClipSourceChange(this.state.activeTabValue);\r\n }\r\n this.onAudioRecorded = this.onAudioRecorded.bind(this);\r\n this.onVideoRecorded = this.onVideoRecorded.bind(this);\r\n this.tick = this.tick.bind(this);\r\n this.onResetAudio = this.onResetAudio.bind(this);\r\n this.onResetVideo = this.onResetVideo.bind(this);\r\n this.onScrub = this.onScrub.bind(this);\r\n this.onScrubberEnded = this.onScrubberEnded.bind(this);\r\n this.onClick = this.onClick.bind(this);\r\n }\r\n componentWillUnmount() {\r\n this.clearTimer();\r\n }\r\n get isRunning() {\r\n return !!this.state.timer;\r\n }\r\n tick() {\r\n // We enforce recording limits, but rely on the Ended event from the scrubber for play limits\r\n if (!this.state.isPlayMode) {\r\n if (this.state.time >=\r\n (this.props.limitInSeconds || Number.MAX_SAFE_INTEGER)) {\r\n this.stop();\r\n return;\r\n }\r\n }\r\n this.setState({ time: this.state.time + 1 });\r\n }\r\n get file() {\r\n var _a;\r\n switch (this.state.activeTabValue) {\r\n case enums_1.ClipSource.RecordAudio:\r\n return this.state.audioFile;\r\n case enums_1.ClipSource.RecordVideo:\r\n return (_a = this.state.videoFile) === null || _a === void 0 ? void 0 : _a.file;\r\n default:\r\n return this.state.uploadFile;\r\n }\r\n }\r\n get duration() {\r\n if (this.state.activeTabValue === enums_1.ClipSource.RecordAudio) {\r\n return this.state.recordedDuration;\r\n }\r\n else {\r\n return this.state.uploadDuration;\r\n }\r\n }\r\n startTimer() {\r\n if (!this.state.timer) {\r\n this.setState({ timer: setInterval(this.tick, 1000) });\r\n }\r\n }\r\n clearTimer() {\r\n if (this.state.timer) {\r\n clearInterval(this.state.timer);\r\n this.setState({ timer: undefined });\r\n }\r\n }\r\n playAsync() {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.state.time >= this.state.recordedDuration) {\r\n this.setState({ time: 0 });\r\n (_a = this.scrubber.current) === null || _a === void 0 ? void 0 : _a.reset();\r\n }\r\n (_b = this.scrubber.current) === null || _b === void 0 ? void 0 : _b.play();\r\n this.startTimer();\r\n });\r\n }\r\n start() {\r\n if (this.state.isPlayMode) {\r\n this.playAsync();\r\n }\r\n else {\r\n this.setState({ time: 0, recordedDuration: 0 });\r\n this.startTimer();\r\n }\r\n }\r\n stop() {\r\n var _a;\r\n this.clearTimer();\r\n if (this.state.isPlayMode) {\r\n (_a = this.scrubber.current) === null || _a === void 0 ? void 0 : _a.pause();\r\n }\r\n else {\r\n this.setState({ isPlayMode: true });\r\n }\r\n }\r\n set dlgState(state) {\r\n this.setState({ dlgState: state });\r\n this.props.onChange && this.props.onChange(state);\r\n }\r\n loadAudioAsync(audioUrl) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.dlgState = enums_1.DialogState.Waiting;\r\n if (this.scrubber.current) {\r\n yield this.scrubber.current.loadUrlAsync(audioUrl);\r\n this.setState({\r\n recordedDuration: (_a = this.scrubber.current) === null || _a === void 0 ? void 0 : _a.duration,\r\n time: 0,\r\n });\r\n }\r\n this.dlgState = enums_1.DialogState.Ready;\r\n });\r\n }\r\n onResetAudio() {\r\n var _a;\r\n this.setState({\r\n recordedDuration: 0,\r\n time: 0,\r\n isPlayMode: false,\r\n audioFile: undefined,\r\n mediaUrl: undefined,\r\n });\r\n (_a = this.scrubber.current) === null || _a === void 0 ? void 0 : _a.clear();\r\n this.dlgState = enums_1.DialogState.Empty;\r\n }\r\n onScrubberEnded() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.setState({ time: this.state.recordedDuration });\r\n this.clearTimer();\r\n });\r\n }\r\n onScrub(scrubber) {\r\n this.setState({ time: scrubber.state.time });\r\n }\r\n onAudioRecorded(recordedBlob) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const file = new File([recordedBlob.blob], \"clip.mp3\");\r\n this.setState({ audioFile: file, mediaUrl: recordedBlob.blobURL });\r\n this.loadAudioAsync(recordedBlob.blobURL);\r\n });\r\n }\r\n onVideoRecorded(clip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.setState({ videoFile: clip, mediaUrl: clip.url });\r\n this.dlgState = enums_1.DialogState.Ready;\r\n });\r\n }\r\n onFileUploaded(uploadFile) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.setState({ uploadFile, audioError: false });\r\n this.dlgState = enums_1.DialogState.Ready;\r\n });\r\n }\r\n onResetVideo() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.setState({ videoFile: undefined, mediaUrl: undefined });\r\n this.dlgState = enums_1.DialogState.Empty;\r\n });\r\n }\r\n onClick() {\r\n if (this.sampleRate == null) {\r\n const audioCtx = new (window.AudioContext ||\r\n window.webkitAudioContext)();\r\n audioCtx.resume();\r\n this.sampleRate = audioCtx === null || audioCtx === void 0 ? void 0 : audioCtx.sampleRate;\r\n }\r\n if (this.isRunning)\r\n this.stop();\r\n else\r\n this.start();\r\n }\r\n // RENDERING\r\n timerText() {\r\n let left = this.state.time;\r\n const limitInSeconds = this.props.limitInSeconds;\r\n if (limitInSeconds === undefined) {\r\n return (react_1.default.createElement(\"div\", { className: \"sb-timer text-muted\" }, api_1.Utils.displayTime(left)));\r\n }\r\n else {\r\n let right = this.state.isPlayMode\r\n ? this.state.recordedDuration\r\n : limitInSeconds;\r\n if (left > right)\r\n left = right;\r\n return (react_1.default.createElement(\"div\", { className: \"sb-timer text-muted\" },\r\n api_1.Utils.displayTime(left),\r\n \" / \",\r\n api_1.Utils.displayTime(right)));\r\n }\r\n }\r\n hasClip(tabValue) {\r\n switch (tabValue) {\r\n case enums_1.ClipSource.RecordAudio:\r\n return this.state.audioFile !== undefined;\r\n case enums_1.ClipSource.RecordVideo:\r\n return this.state.videoFile !== undefined;\r\n default:\r\n return this.state.uploadFile !== undefined;\r\n }\r\n }\r\n toggleTab(tabValue) {\r\n if (this.state.activeTabValue !== tabValue) {\r\n this.setState({ activeTabValue: tabValue });\r\n this.dlgState = this.hasClip(tabValue)\r\n ? enums_1.DialogState.Ready\r\n : enums_1.DialogState.Empty;\r\n if (this.props.onClipSourceChange) {\r\n this.props.onClipSourceChange(tabValue);\r\n }\r\n }\r\n }\r\n createTab(title, value) {\r\n const className = (0, classnames_1.default)({ active: this.state.activeTabValue === value }, \"sb-tab-btn\");\r\n return (react_1.default.createElement(reactstrap_1.NavItem, null,\r\n react_1.default.createElement(reactstrap_1.NavLink, { role: \"tab\", \"aria-selected\": this.state.activeTabValue === value, className: className, onClick: () => {\r\n this.toggleTab(value);\r\n }, disabled: this.props.disabled, title: title }, title)));\r\n }\r\n recordAndPlayTab() {\r\n var _a, _b, _c, _d;\r\n const waveColor = (_a = this.props.waveColor) !== null && _a !== void 0 ? _a : styles_1.GlobalTheme.current.colors.bootstrap.primary;\r\n const waveBackColor = (_b = this.props.waveBackgroundColor) !== null && _b !== void 0 ? _b : styles_1.GlobalTheme.current.colors.neutrals.midground;\r\n const rowClass = \"sb-recorder \" + (this.isRunning ? \"sb-recorder-running\" : \"\");\r\n const recordTitle = this.isRunning\r\n ? \"Stop\"\r\n : this.state.isPlayMode\r\n ? \"Play\"\r\n : \"Record\";\r\n return (react_1.default.createElement(reactstrap_1.Row, { className: rowClass },\r\n react_1.default.createElement(reactstrap_1.Col, null,\r\n react_1.default.createElement(controls_1.ShowWhen, { is: this.state.isPlayMode &&\r\n !this.isRunning &&\r\n ((_d = (_c = OrganizationStore_1.OrganizationStore.currentOrg) === null || _c === void 0 ? void 0 : _c.details.me) === null || _d === void 0 ? void 0 : _d.user.userRole) ===\r\n api_1.UserRole.God &&\r\n !this.props.disabled &&\r\n this.state.mediaUrl !== undefined },\r\n react_1.default.createElement(DownloadBtn_1.DownloadBtn, { mediaUrl: this.state.mediaUrl, outline: true, filename: \"Clip.mpg\" })),\r\n react_1.default.createElement(\"div\", { className: \"sb-record-button\" },\r\n react_1.default.createElement(controls_1.SbProgressButton, { onClick: this.onClick, isRunning: this.isRunning, allowClickOnLoading: true, disabled: this.props.disabled, isRecordMode: !this.state.isPlayMode, title: recordTitle })),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: this.state.isPlayMode && !this.isRunning },\r\n react_1.default.createElement(\"button\", { className: \"btn btn-outline-primary btn-sm sb-record-reset-btn\", type: \"button\", onClick: this.onResetAudio, disabled: this.props.disabled, title: \"Reset Recording\" },\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faRedo })))),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: !this.state.isPlayMode && this.isRunning },\r\n this.timerText(),\r\n react_1.default.createElement(rmg.ReactMicGold, { record: !this.state.isPlayMode && this.isRunning && !this.props.disabled, visualSetting: \"frequencyBars\", className: \"sb-react-mic\", strokeColor: waveColor, backgroundColor: waveBackColor, channelCount: 1, onStop: this.onAudioRecorded, noiseSuppression: true, echoCancellation: true, sampleRate: this.sampleRate })),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: this.state.isPlayMode },\r\n react_1.default.createElement(SoundScrubber_1.SoundScrubber, { ref: this.scrubber, onScrub: this.onScrub, onEnded: this.onScrubberEnded, disabled: this.props.disabled, onAudioError: (ex) => this.setState({ audioError: true }) })))));\r\n }\r\n uploadTab() {\r\n var _a, _b;\r\n const mediaUrl = this.state.uploadFile != null\r\n ? URL.createObjectURL(this.state.uploadFile)\r\n : undefined;\r\n const fileDisplayName = this.state.audioError\r\n ? \"Invalid Audio File\"\r\n : this.state.uploadFile != null\r\n ? this.state.uploadFile.name\r\n : \"No File Chosen\";\r\n const fileType = api_1.Utils.GetFileTypeFromFileName((_b = (_a = this.state.uploadFile) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : \"\");\r\n return (react_1.default.createElement(reactstrap_1.Row, null,\r\n react_1.default.createElement(reactstrap_1.Col, { className: \"text-center\" },\r\n react_1.default.createElement(\"button\", { className: \"btn btn-outline-secondary\", onClick: () => {\r\n var _a;\r\n (_a = document.getElementById(\"sbUploadBtn\")) === null || _a === void 0 ? void 0 : _a.click();\r\n }, title: \"Select File\" }, \"Select File\"),\r\n react_1.default.createElement(\"span\", null,\r\n \" \",\r\n fileDisplayName),\r\n react_1.default.createElement(\"input\", { id: \"sbUploadBtn\", type: \"File\", accept: \".avi,.f4v,.flv,.mkv,.mov,.mp3,.mp4,.mpg,.mp3,.wav,.webm,.wmv\", style: { display: \"none\" }, color: \"secondary\", disabled: this.props.disabled, onChange: (e) => {\r\n var _a, _b;\r\n const uploadFile = (_b = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : undefined;\r\n this.onFileUploaded(uploadFile);\r\n } }),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: this.state.uploadFile != null && !this.state.audioError },\r\n react_1.default.createElement(controls_1.ShowWhen, { is: api_1.Utils.IsVideo(fileType) },\r\n react_1.default.createElement(\"div\", { className: \"pb-4\" },\r\n react_1.default.createElement(\"video\", { playsInline: true, controls: true, src: mediaUrl, style: {\r\n marginTop: \"10px\",\r\n marginBottom: \"10px\",\r\n objectFit: \"contain\",\r\n }, className: \"sb-video\" }))),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: api_1.Utils.IsAudio(fileType) },\r\n react_1.default.createElement(\"div\", { className: \"pb-4 d-flex\" },\r\n react_1.default.createElement(Player_1.Player, { clip: { url: mediaUrl, fileType: fileType }, onDuration: (duration) => this.setState({ uploadDuration: duration }), onMediaError: (ex) => this.setState({ audioError: true }), isPublic: false })))))));\r\n }\r\n render() {\r\n var _a;\r\n const isVideoEnabled = ((_a = store_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.settings.sessions.videoEnabled) ===\r\n true;\r\n return (react_1.default.createElement(\"div\", { className: \"sb-record-and-play mb-2\", \"aria-disabled\": this.props.disabled },\r\n react_1.default.createElement(controls_1.Loader, { isLoadedWhen: this.state.dlgState !== enums_1.DialogState.Waiting, isDisplayBased: true, style: { minHeight: \"122px\" } },\r\n react_1.default.createElement(reactstrap_1.Nav, { className: \"sb-2-tab nav-fill flex-row\", role: \"tablist\" },\r\n isVideoEnabled\r\n ? this.createTab(\"Video\", enums_1.ClipSource.RecordVideo)\r\n : null,\r\n this.createTab(\"Audio\", enums_1.ClipSource.RecordAudio),\r\n this.createTab(\"Upload\", enums_1.ClipSource.Upload)),\r\n react_1.default.createElement(reactstrap_1.TabContent, { activeTab: this.state.activeTabValue },\r\n react_1.default.createElement(reactstrap_1.TabPane, { tabId: enums_1.ClipSource.RecordAudio }, this.recordAndPlayTab()),\r\n react_1.default.createElement(reactstrap_1.TabPane, { tabId: enums_1.ClipSource.RecordVideo }, this.state.activeTabValue === enums_1.ClipSource.RecordVideo ? (react_1.default.createElement(VideoEditor_1.VideoEditor, { onRecorded: this.onVideoRecorded, onReset: this.onResetVideo })) : null),\r\n react_1.default.createElement(reactstrap_1.TabPane, { tabId: enums_1.ClipSource.Upload }, this.uploadTab())))));\r\n }\r\n}\r\nexports.RecordAndPlay = RecordAndPlay;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SoundScrubber = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = __importStar(require(\"react\"));\r\nconst react_scrubber_1 = require(\"react-scrubber\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst ErrorDlg_1 = require(\"./ErrorDlg\");\r\nconst styles_1 = require(\"../styles\");\r\nconst moment_1 = __importDefault(require(\"moment\"));\r\nconst controls_1 = require(\"./controls\");\r\nfunction getStyles() {\r\n const styles = (0, react_1.css) `\r\n width: 100%;\r\n height: 1.5rem;\r\n padding-left: 0.75rem;\r\n padding-right: 0.75rem;\r\n background-color: ${styles_1.GlobalTheme.current.colors.neutrals.n500};\r\n border-radius: 4px;\r\n overflow: hidden;\r\n position: relative;\r\n\r\n .sb-time-summary {\r\n color: ${styles_1.GlobalTheme.current.colors.neutrals.n200};\r\n right: 0.5rem;\r\n pointer-events: none;\r\n position: absolute;\r\n top: 1px;\r\n z-index: 1;\r\n }\r\n\r\n &[aria-disabled=\"true\"] {\r\n pointer-events: none;\r\n }\r\n\r\n &[aria-disabled=\"true\"] .sb-time-summary {\r\n color: ${styles_1.GlobalTheme.current.colors.neutrals.n300};\r\n }\r\n\r\n .scrubber.horizontal .bar {\r\n height: 100%;\r\n }\r\n\r\n .scrubber.horizontal .bar .bar__thumb {\r\n height: 1.5rem;\r\n width: 1.5rem;\r\n transform: translate(-50%, -50%);\r\n top: 50%;\r\n }\r\n\r\n .scrubber {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n -webkit-user-select: none;\r\n user-select: none;\r\n touch-action: none;\r\n }\r\n\r\n .scrubber .bar {\r\n background-color: transparent;\r\n width: 100;\r\n position: relative;\r\n transition: height 0.2s linear, width 0.2s linear;\r\n }\r\n\r\n .scrubber * {\r\n -webkit-user-select: none;\r\n user-select: none;\r\n }\r\n\r\n .scrubber .bar__progress {\r\n position: absolute;\r\n background-color: ${styles_1.GlobalTheme.current.colors.neutrals.n600};\r\n border-top-left-radius: 4px;\r\n border-bottom-left-radius: 4px;\r\n left: -0.75rem;\r\n }\r\n\r\n .scrubber .bar__buffer {\r\n position: absolute;\r\n }\r\n\r\n .scrubber .bar__thumb {\r\n position: absolute;\r\n width: 0px;\r\n height: 0px;\r\n border-radius: 4px;\r\n transition: height 0.2s linear, width 0.2s linear;\r\n background-color: ${styles_1.GlobalTheme.current.colors.bootstrap.primary};\r\n }\r\n\r\n &[aria-disabled=\"true\"] .scrubber .bar__thumb {\r\n background-color: ${styles_1.GlobalTheme.current.colors.neutrals.n700};\r\n }\r\n\r\n .scrubber .bar__marker {\r\n position: absolute;\r\n }\r\n\r\n .scrubber.horizontal .bar__progress,\r\n .scrubber.horizontal .bar__marker,\r\n .scrubber.horizontal .bar__buffer {\r\n height: 100%;\r\n }\r\n\r\n .scrubber.horizontal .bar__progress::after {\r\n position: absolute;\r\n background-color: ${styles_1.GlobalTheme.current.colors.neutrals.n600};\r\n right: -4px;\r\n width: 5px;\r\n height: 100%;\r\n content: \" \";\r\n }\r\n\r\n .scrubber.horizontal .bar__marker {\r\n width: 12px;\r\n }\r\n\r\n .scrubber.horizontal .bar {\r\n top: 50%;\r\n left: 0;\r\n transform: translateY(-50%);\r\n width: 100%;\r\n }\r\n\r\n .scrubber.vertical .bar__progress,\r\n .scrubber.vertical .bar__marker,\r\n .scrubber.vertical .bar__buffer {\r\n width: 100%;\r\n bottom: 0;\r\n }\r\n\r\n .scrubber.vertical .bar {\r\n top: 0;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .scrubber.vertical .bar__thumb {\r\n transform: translate(-50%, 50%);\r\n left: 50%;\r\n }\r\n\r\n .scrubber.hover.vertical .bar {\r\n width: 6px;\r\n }\r\n\r\n .scrubber.vertical .bar__marker {\r\n height: 100%;\r\n }\r\n `;\r\n return styles;\r\n}\r\n/** Manages audio playback, present a \"scrubbable\" timeline view w/ clip time */\r\nclass SoundScrubber extends react_2.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { duration: 0, time: 0, resetOnPlay: false };\r\n if (this.props.clip) {\r\n this.doLoadAudioAsync(this.props.clip.url).catch((ex) => {\r\n if (this.props.onAudioError) {\r\n this.props.onAudioError(ex);\r\n }\r\n });\r\n }\r\n else if (this.props.initialMediaUrl) {\r\n this.doLoadAudioAsync(this.props.initialMediaUrl).catch((ex) => {\r\n if (this.props.onAudioError) {\r\n this.props.onAudioError(ex);\r\n }\r\n });\r\n }\r\n }\r\n componentWillUnmount() {\r\n if (this.timer)\r\n clearInterval(this.timer);\r\n if (this.audio)\r\n this.audio.pause();\r\n }\r\n showFileError(err) {\r\n ErrorDlg_1.ErrorDlg.show(err, \"Unable to Load Audio\", \"Unable to load file; potentially due to incorrect file type. Please contact the host and ensure they are using the Soundbite audio recorder or uploading valid MP3 files.\");\r\n }\r\n doLoadAudioAsync(mediaUrl) {\r\n this.audio = new Audio(mediaUrl);\r\n this.audio.onended = this.onAudioEnded.bind(this);\r\n this.audio.preload = \"none\";\r\n this.audio.autoplay = false;\r\n this.audio.load();\r\n this.audio.playbackRate = 1.0;\r\n if (this.props.onDuration != null) {\r\n this.props.onDuration(undefined);\r\n }\r\n return new Promise((resolve, reject) => {\r\n if (this.audio) {\r\n this.audio.onerror = () => {\r\n if (this.audio && this.audio.error) {\r\n const err = new Error(this.audio.error.message);\r\n this.showFileError(err);\r\n }\r\n reject();\r\n };\r\n this.audio.oncanplaythrough = () => {\r\n var _a, _b;\r\n if (this.audio) {\r\n this.setState({\r\n duration: (_b = (_a = this.props.clip) === null || _a === void 0 ? void 0 : _a.seconds) !== null && _b !== void 0 ? _b : this.audio.duration,\r\n });\r\n if (this.props.onDuration != null) {\r\n if (this.props.clip) {\r\n this.props.onDuration(this.props.clip.seconds);\r\n }\r\n else {\r\n this.props.onDuration(this.audio.duration);\r\n }\r\n }\r\n resolve();\r\n }\r\n else {\r\n const err = new Error(\"Empty audio in oncanplaythrough\");\r\n this.showFileError(err);\r\n reject();\r\n }\r\n };\r\n }\r\n else {\r\n const err = new Error(\"Empty audio after trying to load in doLoadAudioAsync\");\r\n this.showFileError(err);\r\n reject();\r\n }\r\n });\r\n }\r\n onAudioEnded() {\r\n this.end();\r\n if (this.props.onEnded)\r\n this.props.onEnded(this);\r\n }\r\n tick() {\r\n this.setState({ time: this.state.time + 1 });\r\n if (this.props.onTick)\r\n this.props.onTick(this, this.state.time);\r\n }\r\n onScrub(time) {\r\n this.jump(time);\r\n if (this.props.onScrub)\r\n this.props.onScrub(this);\r\n }\r\n get duration() {\r\n if (this.props.clip)\r\n return this.props.clip.seconds;\r\n if (this.audio)\r\n return this.audio.duration;\r\n else\r\n return 0;\r\n }\r\n loadUrlAsync(mediaUrl) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.setState({ duration: 0, time: 0 });\r\n yield this.doLoadAudioAsync(mediaUrl);\r\n });\r\n }\r\n play() {\r\n if (!this.timer) {\r\n this.timer = setInterval(this.tick.bind(this), 1000);\r\n if (this.state.resetOnPlay) {\r\n this.setState({ resetOnPlay: false, time: 0 });\r\n }\r\n if (this.audio)\r\n this.audio.play();\r\n else\r\n console.warn(\"Trying to play an empty audio\");\r\n }\r\n }\r\n pause() {\r\n if (this.timer) {\r\n clearInterval(this.timer);\r\n this.timer = undefined;\r\n }\r\n if (this.audio)\r\n this.audio.pause();\r\n else\r\n console.warn(\"Trying to pause an empty audio\");\r\n }\r\n jump(time) {\r\n if (this.audio)\r\n this.audio.currentTime = time;\r\n else\r\n console.warn(\"Trying to jump an empty audio\");\r\n this.setState({ time: time });\r\n }\r\n reset() {\r\n this.jump(0);\r\n this.pause();\r\n }\r\n end() {\r\n this.setState({ time: this.state.duration, resetOnPlay: true });\r\n this.pause();\r\n }\r\n clear() {\r\n var _a;\r\n this.setState({ time: 0, duration: 0 });\r\n (_a = this.audio) === null || _a === void 0 ? void 0 : _a.pause();\r\n this.audio = undefined;\r\n }\r\n displayDuration(display, totalDuration) {\r\n if (totalDuration.hours() > 0) {\r\n return `${api_1.Utils.pad(display.hours(), 2)}:${api_1.Utils.pad(display.minutes(), 2)}:${api_1.Utils.pad(display.seconds(), 2)}`;\r\n }\r\n else {\r\n const minPad = totalDuration.minutes() > 9 ? 2 : 1;\r\n return `${api_1.Utils.pad(display.minutes(), minPad)}:${api_1.Utils.pad(display.seconds(), 2)}`;\r\n }\r\n }\r\n timeSummary() {\r\n if (this.props.hideTime) {\r\n return (0, react_1.jsx)(react_2.default.Fragment, null);\r\n }\r\n const time = moment_1.default.duration(this.state.time * 1000);\r\n const duration = moment_1.default.duration(this.state.duration * 1000);\r\n let timeDisplay = this.displayDuration(time, duration);\r\n let durationDisplay = this.displayDuration(duration, duration);\r\n return ((0, react_1.jsx)(\"span\", { className: \"sb-time-summary\" },\r\n timeDisplay,\r\n \"/\",\r\n durationDisplay));\r\n }\r\n render() {\r\n const styles = getStyles();\r\n const scrubberClassName = \"sb-sound-scrubber\" +\r\n (this.props.disabled ? \" sb-sound-scrubber-disabled\" : \"\");\r\n return ((0, react_1.jsx)(controls_1.Loader, { isLoadedWhen: this.state.duration > 0, isSmall: true },\r\n (0, react_1.jsx)(\"div\", { css: styles, className: scrubberClassName, \"aria-disabled\": this.props.disabled },\r\n this.timeSummary(),\r\n (0, react_1.jsx)(react_scrubber_1.Scrubber, { min: 0, max: this.state.duration, value: this.state.time, onScrubStart: this.onScrub.bind(this), onScrubEnd: this.onScrub.bind(this), onScrubChange: this.onScrub.bind(this) }))));\r\n }\r\n}\r\nexports.SoundScrubber = SoundScrubber;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Player = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst controls_1 = require(\"./controls\");\r\nconst DownloadBtn_1 = require(\"./controls/DownloadBtn\");\r\nconst MediaPlayerContextFactory_1 = require(\"./video/context/MediaPlayerContextFactory\");\r\nconst SoundScrubber2_1 = require(\"./SoundScrubber2\");\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\n/**\r\n * A simple player with a sound scrubber and play/pause button\r\n * @param props\r\n */\r\nexports.Player = (0, mobx_react_lite_1.observer)((props) => {\r\n //////////[ State ]///////////////////////////////////////////////////////////////////////////////\r\n var _a, _b, _c, _d;\r\n const mediaUrl = (_b = (_a = props.clip) === null || _a === void 0 ? void 0 : _a.url) !== null && _b !== void 0 ? _b : props.mediaUrl;\r\n const [isFirstPlay, setIsFirstPlay] = (0, react_1.useState)(true);\r\n const [mediaType, setMediaType] = (0, react_1.useState)(MediaPlayerContextFactory_1.MediaPlayerContextFactory.getTypeName(props.clip, props.mediaUrl));\r\n const context = (0, react_1.useRef)(MediaPlayerContextFactory_1.MediaPlayerContextFactory.getContext(props.clip, props.mediaUrl));\r\n const isShowDownload = mediaUrl != null && props.allowDownload === true;\r\n const scrubberWidth = isShowDownload ? \"8\" : \"10\";\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n // Initial loading\r\n (0, react_1.useEffect)(() => {\r\n commonContextSetup();\r\n // Make sure to stop playback if the player unloads\r\n return () => {\r\n var _a;\r\n (_a = context === null || context === void 0 ? void 0 : context.current) === null || _a === void 0 ? void 0 : _a.pause();\r\n };\r\n }, []);\r\n // Reload when when clip or media URL changes\r\n (0, react_1.useEffect)(() => {\r\n // Determine whether the clip/media url has changed and setup context appropriately\r\n const newMediaType = MediaPlayerContextFactory_1.MediaPlayerContextFactory.getTypeName(props.clip, props.mediaUrl);\r\n if (newMediaType != mediaType) {\r\n setMediaType(newMediaType);\r\n const newContext = MediaPlayerContextFactory_1.MediaPlayerContextFactory.getContext(props.clip, props.mediaUrl);\r\n context.current = newContext;\r\n commonContextSetup();\r\n }\r\n }, [props.clip, props.mediaUrl]);\r\n (0, react_1.useEffect)(() => {\r\n if (props.videoElement) {\r\n if (context.current) {\r\n context.current.mediaElement = props.videoElement;\r\n context.current.load(props.clip, props.mediaUrl, props.autoPlay, props.isPublic);\r\n }\r\n }\r\n }, [props.videoElement]);\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Responsible for setting common context configurations. Context must be setup during initial\r\n * load and when mediaUrl or clip changes. Common logic should be here to avoid duplication and\r\n * to avoid accidentially implementing in one place but not the other.\r\n */\r\n function commonContextSetup() {\r\n var _a;\r\n if (context.current) {\r\n context.current.onMediaError = props.onMediaError;\r\n context.current.onPlay = () => {\r\n if (isFirstPlay) {\r\n setIsFirstPlay(false);\r\n if (props.onFirstPlay) {\r\n props.onFirstPlay();\r\n }\r\n }\r\n };\r\n if (mediaUrl) {\r\n if (context.current.hasMediaElement) {\r\n context.current.load(props.clip, props.mediaUrl, (_a = props.autoPlay) !== null && _a !== void 0 ? _a : false);\r\n }\r\n }\r\n if (props.onContext) {\r\n props.onContext(context.current);\r\n }\r\n }\r\n }\r\n //////////[ Build UI ]////////////////////////////////////////////////////////////////////////////\r\n function GetScrubber() {\r\n if (context.current) {\r\n return react_1.default.createElement(SoundScrubber2_1.Scrubber2, { context: context.current });\r\n }\r\n else {\r\n return react_1.default.createElement(\"div\", null, \"No Audio Context\");\r\n }\r\n }\r\n return (react_1.default.createElement(controls_1.Loader, { isLoadedWhen: props.mediaUrl != null || props.clip != null, isSmall: true },\r\n react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(\"div\", { className: \"mx-1 px-0 flex-grow-1 align-self-center\" },\r\n react_1.default.createElement(GetScrubber, null)),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: isShowDownload && !((_c = context.current) === null || _c === void 0 ? void 0 : _c.hasError) },\r\n react_1.default.createElement(\"div\", { className: \"mx-1 px-0 align-self-center\" },\r\n react_1.default.createElement(DownloadBtn_1.DownloadBtn, { mediaUrl: mediaUrl, outline: true, asBlob: true }))),\r\n react_1.default.createElement(\"div\", { className: \"ml-1 px-0 align-self-center\" },\r\n react_1.default.createElement(controls_1.PlayButton, { context: context.current, disabled: (_d = context.current) === null || _d === void 0 ? void 0 : _d.hasError })))));\r\n});\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DownloadBtn = void 0;\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst api_axios_1 = require(\"@soundbite/api-axios\");\r\nconst ShowWhen_1 = require(\"./ShowWhen\");\r\nconst ErrorDlg_1 = require(\"../ErrorDlg\");\r\n/**\r\n * For the given mediaUrl, provide a button that will download its associated file\r\n * @param props\r\n */\r\nconst DownloadBtn = (props) => {\r\n var _a, _b, _c;\r\n const onDownload = () => __awaiter(void 0, void 0, void 0, function* () {\r\n if (props.mediaUrl == null) {\r\n return;\r\n }\r\n let downloadUrl = props.mediaUrl;\r\n if (props.asBlob === true) {\r\n // TODO: Consider a means of guaranteed one-time media download\r\n const blob = yield (0, api_axios_1.downloadBlob)(props.mediaUrl);\r\n downloadUrl = URL.createObjectURL(blob);\r\n }\r\n let filename = props.filename;\r\n if (filename == null) {\r\n // By default, Find the last component of the URL and use it as the download name\r\n const path = decodeURIComponent(props.mediaUrl);\r\n const url = new URL(path);\r\n url.search = \"\";\r\n const parts = url.pathname.split(\"/\");\r\n if (parts.length === 0) {\r\n ErrorDlg_1.ErrorDlg.show(new api_1.PublicError(undefined, \"Cannot Determine Name of File to Download\", `Cannot analyze path '${url}'; cannot find filename`));\r\n return;\r\n }\r\n filename = parts[parts.length - 1];\r\n }\r\n const a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style.display = \"none\";\r\n a.href = downloadUrl;\r\n a.download = filename;\r\n a.target = \"_blank\";\r\n a.click();\r\n a.remove();\r\n });\r\n return (react_1.default.createElement(ShowWhen_1.ShowWhen, { is: props.mediaUrl != null },\r\n react_1.default.createElement(reactstrap_1.Button, { className: \"sb-record-download-btn\", outline: (_a = props.outline) !== null && _a !== void 0 ? _a : false, size: \"sm\", type: \"button\", color: (_b = props.color) !== null && _b !== void 0 ? _b : \"primary\", onClick: onDownload, title: \"Download\" },\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: (_c = props.icon) !== null && _c !== void 0 ? _c : free_solid_svg_icons_1.faDownload })))));\r\n};\r\nexports.DownloadBtn = DownloadBtn;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MediaPlayerContextFactory = void 0;\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst AzureMediaPlayerContext_1 = require(\"./AzureMediaPlayerContext\");\r\nconst HlsMediaPlayerContext_1 = require(\"./HlsMediaPlayerContext\");\r\nconst MediaPlayerContext_1 = require(\"./MediaPlayerContext\");\r\nconst SbMediaPlayerContext_1 = require(\"./SbMediaPlayerContext\");\r\n/**\r\n * MediaPlayerContext represents media playback operations and player state information.\r\n */\r\nclass MediaPlayerContextFactoryClass {\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n getContext(clip, mediaUrl) {\r\n const typeName = this.getTypeName(clip, mediaUrl);\r\n switch (typeName) {\r\n case \"audio\":\r\n return new MediaPlayerContext_1.MediaPlayerContext(\"audio\");\r\n case \"video\":\r\n return new MediaPlayerContext_1.MediaPlayerContext(\"video\");\r\n case \"azurestreaming\":\r\n return new AzureMediaPlayerContext_1.AzureMediaPlayerContext();\r\n case \"hlsstreaming\":\r\n return new HlsMediaPlayerContext_1.HlsMediaPlayerContext();\r\n case \"sbstreaming\":\r\n return new SbMediaPlayerContext_1.SbMediaPlayerContext();\r\n default:\r\n throw new Error(`Failed to create a MediaPlayerContext instance for the specifid clip/url. (typename=${typeName})`);\r\n }\r\n }\r\n /**\r\n * Determines the appropriate media context for the clip\r\n * @clip - reference to the clip for which the context is being constructed.\r\n * @mediaUrl - reference to the media URL for which the context is being constructed. Note that\r\n * the mediaUrl is primarily used for displaying local file blobs recorded from the browser.\r\n */\r\n getTypeName(clip, mediaUrl) {\r\n let result;\r\n // Make sure we have a clip with which to work\r\n if (clip) {\r\n result = this.getTypeNameByClip(clip);\r\n }\r\n else if (mediaUrl) {\r\n result = this.getTypeNameByMediaUrl(mediaUrl);\r\n }\r\n else {\r\n throw new Error(\"Cannot get MediaPlayerContext type name without a clip or media URL.\");\r\n }\r\n return result;\r\n }\r\n getTypeNameByClip(clip) {\r\n let result = \"UNKNOWN\";\r\n if (api_1.Utils.IsVideo(clip.fileType)) {\r\n switch (clip.hostingType) {\r\n case api_1.ClipHostingType.AzureStreaming:\r\n result = \"hlsstreaming\";\r\n break;\r\n case api_1.ClipHostingType.AzureStorage:\r\n result = \"video\";\r\n break;\r\n case api_1.ClipHostingType.SbStreaming:\r\n result = \"sbstreaming\";\r\n break;\r\n default:\r\n throw new Error(`Cannot determine MediaPlayerContext type name because the hosting type is not implemented (type=${clip.hostingType}).`);\r\n }\r\n }\r\n else {\r\n result = \"audio\";\r\n }\r\n return result;\r\n }\r\n getTypeNameByMediaUrl(mediaUrl) {\r\n if (!api_1.Utils.isNullOrEmpty(mediaUrl)) {\r\n const parts = mediaUrl.split(\".\");\r\n const ext = parts[parts.length - 1].toLowerCase();\r\n switch (ext) {\r\n case \"mp3\":\r\n case \"mpg\":\r\n return \"audio\";\r\n case \"webm\":\r\n case \"mp4\":\r\n return \"video\";\r\n default:\r\n throw new Error(\"Cannot determine MediaPlayerContext type name because the media URL extension is unrecognized.\");\r\n }\r\n }\r\n else {\r\n throw new Error(\"Cannot determine MediaPlayerContext type name because the media URL is missing.\");\r\n }\r\n }\r\n}\r\nexports.MediaPlayerContextFactory = new MediaPlayerContextFactoryClass();\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HlsMediaPlayerContext = void 0;\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst store_1 = require(\"../../../store\");\r\nconst MediaPlayerContext_1 = require(\"./MediaPlayerContext\");\r\n// References the Hls library\r\nlet Hls = window.Hls;\r\n/**\r\n * Azure Media Player (AMP) IMediaPlayerContext implementation\r\n */\r\nclass HlsMediaPlayerContext extends MediaPlayerContext_1.MediaPlayerContext {\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////\r\n constructor() {\r\n super(\"hlsstreaming\");\r\n this.isNative = false;\r\n }\r\n //////////[ Overrides ]///////////////////////////////////////////////////////////////////////////\r\n jumpTo(time) {\r\n if (this.mediaElement) {\r\n this.mediaElement.currentTime = time;\r\n }\r\n }\r\n load(clip, mediaUrl, autoPlay, isPublic) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (clip) {\r\n this.isPublic = isPublic !== null && isPublic !== void 0 ? isPublic : false;\r\n // Validate that we have an Hls reference\r\n Hls = Hls !== null && Hls !== void 0 ? Hls : window.Hls;\r\n if (!Hls) {\r\n const msg = \"Hls library is not loaded or is otherwise inexcessible.\";\r\n api_1.Logger.LogError(msg);\r\n throw new Error(msg);\r\n }\r\n // Acquire the URL\r\n mediaUrl = api_1.Utils.isNullOrEmpty(mediaUrl)\r\n ? yield this.buildMediaUrl(clip)\r\n : mediaUrl;\r\n // Determine whether the browser has the native ability to play an apple formatted M3U8 file\r\n if (this.mediaElement.canPlayType(\"application/vnd.apple.mpegurl\")) {\r\n this.isNative = true;\r\n this.initializeVideoElement(autoPlay !== null && autoPlay !== void 0 ? autoPlay : false);\r\n this.mediaElement.src = mediaUrl;\r\n }\r\n else if (Hls.isSupported()) {\r\n this.isNative = false;\r\n this.initializeHlsPlayer(autoPlay !== null && autoPlay !== void 0 ? autoPlay : false);\r\n this.hlsPlayer = new Hls();\r\n this.hlsPlayer.loadSource(mediaUrl);\r\n this.hlsPlayer.attachMedia(this.mediaElement);\r\n }\r\n else {\r\n // No way to play video so log/throw an exception\r\n const msg = \"Hls and Native Video is not supported. Cannot play video.\";\r\n api_1.Logger.LogError(msg);\r\n throw new Error(msg);\r\n }\r\n }\r\n });\r\n }\r\n play() {\r\n if (this.mediaElement) {\r\n this.mediaElement.play();\r\n this.isPlaying = true;\r\n if (this.onPlay) {\r\n this.onPlay();\r\n }\r\n }\r\n }\r\n pause() {\r\n if (this.mediaElement) {\r\n this.mediaElement.pause();\r\n this.isPlaying = false;\r\n }\r\n }\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Builds out the URL to the M38u proxy API call\r\n */\r\n buildMediaUrl(clip) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // Acquire the Azure Media Service url prefix\r\n let prefix = (_a = store_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.settings.azure.streamingEndpointUrlPrefix;\r\n // If we do not have a prefix it may simply mean that we are accessing the public player\r\n // anonymously or via a route that does not load organization settings. When this occurs,\r\n // attempt to load the AMS media URL using the current organization route.\r\n if (api_1.Utils.isNullOrEmpty(prefix) &&\r\n store_1.WidgetStore.organizations.currentOrgRoute != null) {\r\n prefix = yield api_1.OrganizationsService.readAmsStreamingUrl(store_1.WidgetStore.organizations.currentOrgRoute);\r\n if (api_1.Utils.isNullOrEmpty(prefix)) {\r\n const msg = \"Organization does not have an AMS Streaming URL prefix configured or the setting could not be obtained.\";\r\n api_1.Logger.LogError(msg);\r\n throw new Error(msg);\r\n }\r\n }\r\n if (api_1.Utils.isNullOrEmpty(prefix) &&\r\n api_1.Utils.isNullOrEmpty(store_1.WidgetStore.organizations.currentOrgRoute)) {\r\n const msg = \"Canont build media URL because the current organization route is unknown.\";\r\n api_1.Logger.LogError(msg);\r\n throw new Error(msg);\r\n }\r\n // Make sure we have a valid prefix\r\n if (api_1.Utils.isNullOrEmpty(prefix)) {\r\n const msg = \"Cannot build media URL because organization does not have an Azure Media URL prefix defined.\";\r\n api_1.Logger.LogError(msg);\r\n throw new Error(msg);\r\n }\r\n // Build the URL - we are currently always asking for an apple formatted M3U8 file\r\n const azureMediaUrl = `${prefix}${clip === null || clip === void 0 ? void 0 : clip.hostingData}/clip.ism/manifest(format=m3u8-aapl)`;\r\n // Determine if this is a public soundbite (i.e. not encrypted)\r\n if (this.isPublic) {\r\n // Send the direct azure media service URL\r\n return azureMediaUrl;\r\n }\r\n else {\r\n // Send the proxy URL\r\n return yield this.buildMediaProxyUrl(clip, prefix, azureMediaUrl);\r\n }\r\n });\r\n }\r\n buildMediaProxyUrl(clip, prefix, azureMediaUrl) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const token = (yield api_1.SoundbiteApiConfig.getToken());\r\n // Ensure the token is present\r\n if (api_1.Utils.isNullOrEmpty(token)) {\r\n const msg = \"Cannot build media URL without Soundbite token.\";\r\n api_1.Logger.LogError(msg);\r\n throw new Error(msg);\r\n }\r\n // Ensure the org route is loaded\r\n if (!prefix && !store_1.WidgetStore.organizations.currentOrg) {\r\n prefix = yield api_1.OrganizationsService.readAmsStreamingUrl(store_1.WidgetStore.organizations.currentOrgRoute);\r\n }\r\n const azureMediaUrlEnc = encodeURI(azureMediaUrl)\r\n .replace(\"(\", \"%28\")\r\n .replace(\")\", \"%29\");\r\n const mediaUrl = `${api_1.SoundbiteApiConfig.ApiPrefixUrl}/mediaproxy/manifest?sourceUrl=${azureMediaUrlEnc}&token=${encodeURIComponent(token)}`;\r\n return mediaUrl;\r\n });\r\n }\r\n initializeHlsPlayer(autoPlay) {\r\n this.initializeVideoElement(autoPlay);\r\n }\r\n initializeVideoElement(autoPlay) {\r\n if (this.mediaElement) {\r\n // Setup auto play (if requested)\r\n this.mediaElement.addEventListener(\"canplay\", () => __awaiter(this, void 0, void 0, function* () {\r\n const autoPlayAllowed = yield this.autoPlayAllowed();\r\n if (autoPlay && autoPlayAllowed) {\r\n this.play();\r\n }\r\n }));\r\n // Handle durationchange event\r\n this.mediaElement.addEventListener(\"durationchange\", () => {\r\n this.handleDurationChange();\r\n });\r\n // Handle timeupdate event\r\n this.mediaElement.addEventListener(\"timeupdate\", () => {\r\n this.handleTimeUpdate();\r\n });\r\n // Handle play event\r\n this.mediaElement.addEventListener(\"play\", () => {\r\n this.handleOnPlay();\r\n });\r\n // Handle pause event\r\n this.mediaElement.addEventListener(\"pause\", () => {\r\n this.handleOnPause();\r\n });\r\n // Handle ended event\r\n this.mediaElement.addEventListener(\"ended\", () => {\r\n this.handleEnded();\r\n });\r\n }\r\n else {\r\n const msg = \"Cannot initialize video element because the Video element is not referenced.\";\r\n api_1.Logger.LogError(msg);\r\n throw new Error(msg);\r\n }\r\n }\r\n handleTimeUpdate() {\r\n this.time = this.mediaElement.currentTime;\r\n }\r\n handleDurationChange() {\r\n const newDuration = this.mediaElement.duration;\r\n if (!Number.isNaN(newDuration) && Number.isFinite(newDuration)) {\r\n this.duration = newDuration;\r\n }\r\n }\r\n handleOnPlay() {\r\n if (!this.isPlaying) {\r\n this.isPlaying = true;\r\n }\r\n }\r\n handleOnPause() {\r\n if (this.isPlaying) {\r\n this.isPlaying = false;\r\n }\r\n }\r\n handleEnded() {\r\n // Ended can fire when the end of the media is encountered OR the data stream stops. When\r\n // encoutering the end of the video, the Azure Media Player seems to rewind the video to\r\n // the zero mark. I have NOT encountered a data stream termianting the player, so my\r\n // ASSUMPTION is that the player does not reset when encountering a data issue, but I may\r\n // very well be wrong.\r\n if (this.mediaElement.currentTime === 0) {\r\n if (this.onPlaybackComplete) {\r\n this.onPlaybackComplete();\r\n }\r\n }\r\n }\r\n}\r\nexports.HlsMediaPlayerContext = HlsMediaPlayerContext;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SbMediaPlayerContext = void 0;\r\n// HLS Video Player\r\n// GitHub Home - https://github.com/video-dev/hls.js\r\n// Design Info (Events) - https://github.com/video-dev/hls.js/blob/master/docs/design.md\r\n// Demo - https://hlsjs.video-dev.org/demo/\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst MediaPlayerContext_1 = require(\"./MediaPlayerContext\");\r\n// References the Hls library\r\nlet Hls = window.Hls;\r\n/**\r\n * Soundbite Media Player implementation (for use with azure storage hosted HTfiles)\r\n */\r\nclass SbMediaPlayerContext extends MediaPlayerContext_1.MediaPlayerContext {\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////\r\n constructor() {\r\n super(\"hlsstreaming\");\r\n this.isNative = false;\r\n }\r\n //////////[ Overrides ]///////////////////////////////////////////////////////////////////////////\r\n jumpTo(time) {\r\n if (this.mediaElement) {\r\n this.mediaElement.currentTime = time;\r\n }\r\n }\r\n load(clip, mediaUrl, autoPlay, isPublic) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (clip) {\r\n this.isPublic = isPublic !== null && isPublic !== void 0 ? isPublic : false;\r\n // Validate that we have an Hls reference\r\n Hls = Hls !== null && Hls !== void 0 ? Hls : window.Hls;\r\n if (!Hls) {\r\n const msg = \"Hls library is not loaded or is otherwise inexcessible.\";\r\n api_1.Logger.LogError(msg);\r\n throw new Error(msg);\r\n }\r\n // Acquire the URL\r\n if (mediaUrl == undefined || mediaUrl == \"\" || mediaUrl == null) {\r\n mediaUrl = api_1.SoundbiteApiConfig.ApiPrefixUrl + `/media/clip/${encodeURIComponent(clip.route)}/playlist.m3u8`;\r\n }\r\n //////////////////////////////////////////////////////////////////////////////////////////////\r\n // The possibility exists to play files natively, but we are currently relying on the HLS\r\n // event model to inject our tokens into the playlists. So native playback will not work.\r\n // If we switched to injecting tokens on the server side native playback may work, but if\r\n // all targeted devices can play the HLS player then we can get reliable playback data from\r\n // the HLS player for metrics. Leaving the code below for now in case it becomes useful in\r\n // the future or if we determine the HLS player doesn't work on some devices and are forced\r\n // to use the native player.\r\n //////////////////////////////////////////////////////////////////////////////////////////////\r\n // // Determine whether the browser has the native ability to play an apple formatted M3U8 file\r\n // if (this.mediaElement.canPlayType(\"application/vnd.apple.mpegurl\")) {\r\n // this.isNative = true;\r\n // this.initializeVideoElement(autoPlay ?? false);\r\n // this.mediaElement.src = mediaUrl;\r\n // }\r\n //////////////////////////////////////////////////////////////////////////////////////////////\r\n const token = yield api_1.SoundbiteApiConfig.getToken();\r\n Hls.DefaultConfig.xhrSetup = function (xhr, url) {\r\n const isApiCall = url.includes(api_1.SoundbiteApiConfig.ApiPrefixUrl);\r\n if (isApiCall) {\r\n xhr.setRequestHeader(\"Authorization\", \"Bearer \" + token);\r\n }\r\n };\r\n if (Hls.isSupported()) {\r\n this.isNative = false;\r\n this.initializeHlsPlayer(autoPlay !== null && autoPlay !== void 0 ? autoPlay : false);\r\n this.hlsPlayer = new Hls();\r\n this.hlsPlayer.loadSource(mediaUrl);\r\n this.hlsPlayer.attachMedia(this.mediaElement);\r\n }\r\n else {\r\n // No way to play video so log/throw an exception\r\n const msg = \"Hls and Native Video is not supported. Cannot play video.\";\r\n api_1.Logger.LogError(msg);\r\n throw new Error(msg);\r\n }\r\n }\r\n });\r\n }\r\n play() {\r\n if (this.mediaElement) {\r\n this.mediaElement.play();\r\n this.isPlaying = true;\r\n if (this.onPlay) {\r\n this.onPlay();\r\n }\r\n }\r\n }\r\n pause() {\r\n if (this.mediaElement) {\r\n this.mediaElement.pause();\r\n this.isPlaying = false;\r\n }\r\n }\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n initializeHlsPlayer(autoPlay) {\r\n this.initializeVideoElement(autoPlay);\r\n }\r\n initializeVideoElement(autoPlay) {\r\n if (this.mediaElement) {\r\n // Setup auto play (if requested)\r\n this.mediaElement.addEventListener(\"canplay\", () => __awaiter(this, void 0, void 0, function* () {\r\n const autoPlayAllowed = yield this.autoPlayAllowed();\r\n if (autoPlay && autoPlayAllowed) {\r\n this.play();\r\n }\r\n }));\r\n // Handle durationchange event\r\n this.mediaElement.addEventListener(\"durationchange\", () => {\r\n this.handleDurationChange();\r\n });\r\n // Handle timeupdate event\r\n this.mediaElement.addEventListener(\"timeupdate\", () => {\r\n this.handleTimeUpdate();\r\n });\r\n // Handle play event\r\n this.mediaElement.addEventListener(\"play\", () => {\r\n this.handleOnPlay();\r\n });\r\n // Handle pause event\r\n this.mediaElement.addEventListener(\"pause\", () => {\r\n this.handleOnPause();\r\n });\r\n // Handle ended event\r\n this.mediaElement.addEventListener(\"ended\", () => {\r\n this.handleEnded();\r\n });\r\n }\r\n else {\r\n const msg = \"Cannot initialize video element because the Video element is not referenced.\";\r\n api_1.Logger.LogError(msg);\r\n throw new Error(msg);\r\n }\r\n }\r\n handleTimeUpdate() {\r\n this.time = this.mediaElement.currentTime;\r\n }\r\n handleDurationChange() {\r\n const newDuration = this.mediaElement.duration;\r\n if (!Number.isNaN(newDuration) && Number.isFinite(newDuration)) {\r\n this.duration = newDuration;\r\n }\r\n }\r\n handleOnPlay() {\r\n if (!this.isPlaying) {\r\n this.isPlaying = true;\r\n }\r\n }\r\n handleOnPause() {\r\n if (this.isPlaying) {\r\n this.isPlaying = false;\r\n }\r\n }\r\n handleEnded() {\r\n // Ended can fire when the end of the media is encountered OR the data stream stops. When\r\n // encoutering the end of the video, the Azure Media Player seems to rewind the video to\r\n // the zero mark. I have NOT encountered a data stream termianting the player, so my\r\n // ASSUMPTION is that the player does not reset when encountering a data issue, but I may\r\n // very well be wrong.\r\n if (this.mediaElement.currentTime === 0) {\r\n if (this.onPlaybackComplete) {\r\n this.onPlaybackComplete();\r\n }\r\n }\r\n }\r\n}\r\nexports.SbMediaPlayerContext = SbMediaPlayerContext;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RecorderState = void 0;\r\n/**\r\n * Enumeration of the various video editor recorder states.\r\n */\r\nvar RecorderState;\r\n(function (RecorderState) {\r\n /**\r\n * Denotes that the recorder is not currently recording and is not paused.\r\n */\r\n RecorderState[RecorderState[\"NotRecording\"] = 0] = \"NotRecording\";\r\n /**\r\n * Denotes that the recorder is actively recording.\r\n */\r\n RecorderState[RecorderState[\"Recording\"] = 1] = \"Recording\";\r\n /**\r\n * Denotes that the recorder is paused and can resume recording.\r\n */\r\n RecorderState[RecorderState[\"Paused\"] = 2] = \"Paused\";\r\n /**\r\n * Denotes that the recorder is an error state.\r\n */\r\n RecorderState[RecorderState[\"Error\"] = 99] = \"Error\";\r\n})(RecorderState = exports.RecorderState || (exports.RecorderState = {}));\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GroupPlayerRow = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst api_1 = require(\"@soundbite/api\");\r\n/** Wraps a set of children with a row describing the given clip */\r\nclass GroupPlayerRow extends react_1.Component {\r\n render() {\r\n const avatarlUrl = this.props.clip.contributor.imageSrc || api_1.SoundbiteApiConfig.imgAvatarUrl;\r\n const displayName = api_1.Utils.userDisplay(this.props.clip.contributor);\r\n return (react_1.default.createElement(\"li\", { className: \"list-group-item px-0\" },\r\n react_1.default.createElement(reactstrap_1.Row, { className: \"align-items-center\" },\r\n react_1.default.createElement(reactstrap_1.Col, { xs: \"2\", className: \"d-none d-sm-block\" },\r\n react_1.default.createElement(\"span\", { className: \"avatar rounded-circle\" },\r\n react_1.default.createElement(\"img\", { alt: \"Avatar\", src: avatarlUrl }))),\r\n react_1.default.createElement(reactstrap_1.Col, { xs: \"4\", className: \"ml--2\" },\r\n react_1.default.createElement(\"h4\", { className: \"mb-0\" }, displayName)),\r\n react_1.default.createElement(reactstrap_1.Col, { xs: \"6\" }, this.props.children))));\r\n }\r\n}\r\nexports.GroupPlayerRow = GroupPlayerRow;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PageUtils = void 0;\r\n/** Utility class for page utilities */\r\nclass PageUtils {\r\n /**\r\n * Loads the given page into the given map, using the determined index for the page\r\n * @param page\r\n * @param map\r\n */\r\n static addPageToMap(page, map) {\r\n var _a;\r\n const skip = (_a = page.request.skip) !== null && _a !== void 0 ? _a : 0;\r\n for (let i = 0; i < page.result.length; ++i) {\r\n const person = page.result[i];\r\n map.set(skip + i, person);\r\n }\r\n }\r\n /**\r\n * Returns true if the given page response likely has more pages ahead of it\r\n * @param response\r\n */\r\n static hasMorePages(response) {\r\n var _a, _b;\r\n const request = response.request;\r\n // Be pessimistic for this one\r\n const skip = (_a = request === null || request === void 0 ? void 0 : request.skip) !== null && _a !== void 0 ? _a : 0;\r\n const take = (_b = request === null || request === void 0 ? void 0 : request.take) !== null && _b !== void 0 ? _b : 1;\r\n // At the end of all pages\r\n if (skip >= response.maxTotalResults) {\r\n return false;\r\n }\r\n if (response.totalCount != null) {\r\n return response.totalCount > skip + take;\r\n }\r\n return response.result.length >= take;\r\n }\r\n}\r\nexports.PageUtils = PageUtils;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ThemeName = void 0;\r\n/** The simplified set of easy values for Theme.name */\r\nvar ThemeName;\r\n(function (ThemeName) {\r\n ThemeName[\"Light\"] = \"Light\";\r\n ThemeName[\"Dark\"] = \"Dark\";\r\n ThemeName[\"Draft\"] = \"Draft\";\r\n ThemeName[\"Custom\"] = \"Custom\";\r\n})(ThemeName = exports.ThemeName || (exports.ThemeName = {}));\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Utils = void 0;\r\nconst moment_1 = __importDefault(require(\"moment\"));\r\nconst __1 = require(\"..\");\r\nconst enums_1 = require(\"../generated/enums\");\r\nconst enums_2 = require(\"../generated/enums\");\r\n/** Utility class for general-purpose functions */\r\nclass Utils {\r\n /**\r\n * Determines the initial organization route. This method will return the org route in the URL if\r\n * present. If not, the method uses the last org route in local storage. Method will return null\r\n * when no org route can be determined.\r\n */\r\n static getOrgRouteFromPath(path) {\r\n let result = null;\r\n if (path) {\r\n const orgRegex = new RegExp(\"/organizations/([^/]*)\");\r\n var orgRegexData = orgRegex.exec(path);\r\n if (orgRegexData && orgRegexData.length > 1) {\r\n result = orgRegexData[1];\r\n }\r\n }\r\n return result;\r\n }\r\n /**\r\n * Brute force set the hash for the current page\r\n * Must be the whole value, EG #sbrecord=12345 not just a component of the hash\r\n * @param hashValue\r\n */\r\n static setHash(hashValue) {\r\n if (history.pushState) {\r\n const urlWithNewHash = hashValue != null\r\n ? `${window.location.pathname}#${hashValue}`\r\n : window.location.pathname;\r\n history.pushState(null, document.title, urlWithNewHash);\r\n }\r\n else {\r\n const newHash = hashValue != null ? `#${hashValue}` : \"\";\r\n location.hash = newHash;\r\n }\r\n }\r\n static recurrenceDescription(dateIsoString, recurrence) {\r\n if (dateIsoString === undefined)\r\n return \"\";\r\n const date = (0, moment_1.default)(dateIsoString).local();\r\n const monthAndDayNumber = date.format(\"MMM D\");\r\n const dayOfWeek = date.format(\"ddd\");\r\n const dayOfMonth = date.date();\r\n switch (recurrence) {\r\n case __1.Recurrence.Daily:\r\n return `Every day starting ${monthAndDayNumber}`;\r\n case __1.Recurrence.Weekday:\r\n return `Every Mon-Fri starting ${monthAndDayNumber}`;\r\n case __1.Recurrence.Weekly:\r\n return `Every ${dayOfWeek} starting ${monthAndDayNumber}`;\r\n case __1.Recurrence.Monthly:\r\n return `Every month on day ${dayOfMonth} starting ${monthAndDayNumber}`;\r\n }\r\n return \"\";\r\n }\r\n // NOTE: You should probably use Moment/Luxon to format the time, but this is for quick display\r\n static displayTime(totalSeconds) {\r\n totalSeconds = Math.round(totalSeconds);\r\n const minutes = Math.floor(totalSeconds / 60);\r\n const seconds = totalSeconds - minutes * 60;\r\n const minDisplay = Utils.pad(minutes, 2);\r\n const secDisplay = Utils.pad(seconds, 2);\r\n return `${minDisplay}:${secDisplay}`;\r\n }\r\n /**\r\n * For transforming server-side dates to client-side\r\n * @param date\r\n */\r\n static formatDateTime(date) {\r\n if (date === undefined)\r\n return \"Unknown\";\r\n return moment_1.default.utc(date).local().format(\"l h:mmA\");\r\n }\r\n /**\r\n * Transforms ISO string datetime into date\r\n * @param date\r\n */\r\n static formatDate(date) {\r\n if (date === undefined)\r\n return \"Unknown\";\r\n return moment_1.default.utc(date).local().format(\"l\");\r\n }\r\n static formatRelativeDate(date) {\r\n if (date === undefined)\r\n return \"\";\r\n return moment_1.default.utc(date).local().calendar();\r\n }\r\n static pad(number, size) {\r\n let s = String(number);\r\n while (s.length < (size || 2)) {\r\n s = \"0\" + s;\r\n }\r\n return s;\r\n }\r\n static addMinutes(date, diffInMinutes) {\r\n return new Date(date.getTime() + diffInMinutes * 60000);\r\n }\r\n /**\r\n * Clones the specified object\r\n * @param obj - object to clone\r\n */\r\n static clone(obj) {\r\n if (obj === null || obj === undefined) {\r\n return null;\r\n }\r\n else {\r\n return JSON.parse(JSON.stringify(obj));\r\n }\r\n }\r\n /**\r\n * Compares two strings to determine if a is less than, equal to, or greater than b\r\n * @param a - first string to compare\r\n * @param b - second string to compare\r\n * @returns -1 if a should appear before b, 0 if strings are equal, or 1 is a should appear after b.\r\n */\r\n static stringCompare(a, b) {\r\n if (a === null || a === undefined)\r\n a = \"\";\r\n if (b === null || b === undefined)\r\n b = \"\";\r\n return a.localeCompare(b);\r\n }\r\n /**\r\n * Find the differences between two objects and push to a new object\r\n * (c) 2019 Chris Ferdinandi & Jascha Brinkmann, MIT License,\r\n * https://gomakethings.com & https://twitter.com/jaschaio\r\n * @param obj1 - The original object\r\n * @param obj2 - The object to compare against it\r\n * @returns - An object of differences between the two\r\n */\r\n static diff(obj1, obj2) {\r\n // Make sure an object to compare is provided\r\n if (!obj2 || Object.prototype.toString.call(obj2) !== \"[object Object]\") {\r\n return obj1;\r\n }\r\n const diffs = Object.create(null);\r\n let key;\r\n /**\r\n * Check if two arrays are equal\r\n * @param {Array} arr1 The first array\r\n * @param {Array} arr2 The second array\r\n * @return {Boolean} If true, both arrays are equal\r\n */\r\n const arraysMatch = (arr1, arr2) => {\r\n // Check if the arrays are the same length\r\n if (arr1.length !== arr2.length)\r\n return false;\r\n // Check if all items exist and are in the same order\r\n for (let i = 0; i < arr1.length; i++) {\r\n if (arr1[i] !== arr2[i])\r\n return false;\r\n }\r\n // Otherwise, return true\r\n return true;\r\n };\r\n /**\r\n * Compare two items and push non-matches to object\r\n * @param {*} item1 The first item\r\n * @param {*} item2 The second item\r\n * @param {String} key The key in our object\r\n */\r\n let compare = (item1, item2, key) => {\r\n // Get the object type\r\n const type1 = Object.prototype.toString.call(item1);\r\n const type2 = Object.prototype.toString.call(item2);\r\n // If type2 is undefined it has been removed\r\n if (type2 === \"[object Undefined]\") {\r\n diffs[key] = null;\r\n return;\r\n }\r\n // If items are different types\r\n if (type1 !== type2) {\r\n diffs[key] = item2;\r\n return;\r\n }\r\n // If an object, compare recursively\r\n if (type1 === \"[object Object]\") {\r\n const objDiff = Utils.diff(item1, item2);\r\n if (Object.keys(objDiff).length > 1) {\r\n diffs[key] = objDiff;\r\n }\r\n return;\r\n }\r\n // If an array, compare\r\n if (type1 === \"[object Array]\") {\r\n if (!arraysMatch(item1, item2)) {\r\n diffs[key] = item2;\r\n }\r\n return;\r\n }\r\n // Else if it's a function, convert to a string and compare\r\n // Otherwise, just compare\r\n if (type1 === \"[object Function]\") {\r\n if (item1.toString() !== item2.toString()) {\r\n diffs[key] = item2;\r\n }\r\n }\r\n else {\r\n if (item1 !== item2) {\r\n diffs[key] = item2;\r\n }\r\n }\r\n };\r\n // Loop through the first object\r\n for (key in obj1) {\r\n if (obj1.hasOwnProperty(key)) {\r\n compare(obj1[key], obj2[key], key);\r\n }\r\n }\r\n // Loop through the second object and find missing items\r\n for (key in obj2) {\r\n if (obj2.hasOwnProperty(key)) {\r\n if (!obj1[key] && obj1[key] !== obj2[key]) {\r\n diffs[key] = obj2[key];\r\n }\r\n }\r\n }\r\n // Return the object of differences\r\n return diffs;\r\n }\r\n /**\r\n * Generates a cryptographically unsecure GUID useful for temporary applications. This should not\r\n * be used to set IDs that will end up as keys in databases, etc.\r\n */\r\n static newGuid() {\r\n return \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\".replace(/[x]/g, function (c) {\r\n const r = (Math.random() * 16) | 0, v = c === \"x\" ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n }\r\n /**\r\n * Converts the given User to their display text, which is ideally their name falling back to their email\r\n * @param user User for which display name is generated\r\n * @param isFirstNameOnly Return only first name if true; otherwise return \"First Last\"\r\n */\r\n static userDisplay(user, isFirstNameOnly = false, includeEmail = false) {\r\n if (!user)\r\n return \"\";\r\n let display = user.email;\r\n if (user.givenName && isFirstNameOnly) {\r\n display = `${user.givenName}`.trim();\r\n }\r\n else if (user.givenName || user.familyName) {\r\n display = `${user.givenName} ${user.familyName}`.trim();\r\n }\r\n if (includeEmail && user.email != null) {\r\n display = `${display} (${user.email})`.trim();\r\n }\r\n return display;\r\n }\r\n static validateEmail(email) {\r\n if (this.isEmail(email))\r\n return email;\r\n else\r\n return undefined;\r\n }\r\n static isEmail(email) {\r\n email = email.trim().toLowerCase();\r\n const re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return re.test(email);\r\n }\r\n /**\r\n * Determines whether the specified string contains a null or empty string value.\r\n * @param s - string to check for null or empty value.\r\n * @param trim - (Optional - default true) flag indicating whether to trim a string before checking for empty value.\r\n */\r\n static isNullOrEmpty(s, trim = true) {\r\n if (s !== undefined && s !== null) {\r\n if (typeof s == \"string\") {\r\n // Value is a string so trim it (if requested) and check for empty.\r\n return (trim ? s.trim() : s) === \"\";\r\n }\r\n // The value is not a string and is not null.\r\n return false;\r\n }\r\n // The value is null\r\n return true;\r\n }\r\n /**\r\n * Determines the FileType from a FileName\r\n * @param fileName - name of the file\r\n * @returns a FileType value based on the fileName value\r\n */\r\n static GetFileTypeFromFileName(fileName) {\r\n const parts = fileName.split(\".\");\r\n const ext = parts[parts.length - 1].toLowerCase();\r\n switch (ext) {\r\n case \"avi\":\r\n return enums_2.FileType.Avi;\r\n case \"f4v\":\r\n return enums_2.FileType.F4v;\r\n case \"flv\":\r\n return enums_2.FileType.Flv;\r\n case \"mkv\":\r\n return enums_2.FileType.Mkv;\r\n case \"mov\":\r\n return enums_2.FileType.Mov;\r\n case \"mp3\":\r\n return enums_2.FileType.Mp3;\r\n case \"mp4\":\r\n return enums_2.FileType.Mp4;\r\n case \"mpg\":\r\n return enums_2.FileType.Mpg;\r\n case \"webm\":\r\n return enums_2.FileType.Webm;\r\n case \"wmv\":\r\n return enums_2.FileType.Wmv;\r\n default:\r\n return enums_2.FileType.Unknown;\r\n }\r\n }\r\n /**\r\n * Determines whether the specified FileType represents video\r\n * @param fileType FileType value\r\n * @returns true if the FileType is a video file type\r\n */\r\n static IsVideo(fileType) {\r\n switch (fileType) {\r\n case enums_2.FileType.Mp4:\r\n case enums_2.FileType.Mpg:\r\n case enums_2.FileType.Webm:\r\n case enums_2.FileType.Mov:\r\n case enums_2.FileType.Mkv:\r\n case enums_2.FileType.Wmv:\r\n case enums_2.FileType.Avi:\r\n case enums_2.FileType.Flv:\r\n case enums_2.FileType.F4v:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n /**\r\n * Determines whether the specified FileType represents audio\r\n * @param fileType FileType value\r\n * @returns true if the FileType is an audio file type\r\n */\r\n static IsAudio(fileType) {\r\n return !Utils.IsVideo(fileType);\r\n }\r\n static stringToHashPercent(name) {\r\n let hash = 0;\r\n for (let i = 0; i < name.length; i++) {\r\n hash = (hash * 31 + name.charCodeAt(i)) % Number.MAX_SAFE_INTEGER;\r\n }\r\n return (hash / Number.MAX_SAFE_INTEGER) * 100;\r\n }\r\n static participantRoleString(role) {\r\n switch (role) {\r\n case enums_1.ParticipantRole.Host:\r\n return \"Host\";\r\n case enums_1.ParticipantRole.Participant:\r\n return \"Participant\";\r\n case enums_1.ParticipantRole.Audience:\r\n return \"Audience\";\r\n default:\r\n return \"Unknown\";\r\n }\r\n }\r\n static participantStateString(state) {\r\n switch (state) {\r\n case enums_1.ParticipantState.Pending:\r\n return \"Pending\";\r\n case enums_1.ParticipantState.ContributionRequested:\r\n return \"Contribution Requested\";\r\n case enums_1.ParticipantState.Contributed:\r\n return \"Contributed\";\r\n case enums_1.ParticipantState.ConsumptionRequested:\r\n return \"Consumption Requested\";\r\n case enums_1.ParticipantState.Consumed:\r\n return \"Consumed\";\r\n case enums_1.ParticipantState.Unsubscribed:\r\n return \"Unsubscribed\";\r\n default:\r\n return \"Unknown\";\r\n }\r\n }\r\n static participantReactionString(reaction) {\r\n switch (reaction) {\r\n case enums_1.ParticipantReactionType.None:\r\n return \"None\";\r\n case enums_1.ParticipantReactionType.Like:\r\n return \"Like\";\r\n case enums_1.ParticipantReactionType.Love:\r\n return \"Love\";\r\n case enums_1.ParticipantReactionType.Laugh:\r\n return \"Laugh\";\r\n case enums_1.ParticipantReactionType.Wow:\r\n return \"Wow\";\r\n case enums_1.ParticipantReactionType.Sad:\r\n return \"Frown\";\r\n default:\r\n return \"Unknown\";\r\n }\r\n }\r\n static fillMissingDates(items) {\r\n // If there's no data, or only one data point, no need to process further\r\n if (items.length <= 1)\r\n return [];\r\n const filledItems = [];\r\n let currentMoment = moment_1.default.utc(items[0].label);\r\n for (let i = 0; i < items.length - 1; i++) {\r\n const currentLabel = items[i].label;\r\n const nextLabel = items[i + 1].label;\r\n // Push current item\r\n filledItems.push(items[i]);\r\n // Check for date difference and fill missing dates\r\n while (currentMoment.add(1, \"days\").isBefore(moment_1.default.utc(nextLabel))) {\r\n filledItems.push({\r\n label: currentMoment.utc().format(),\r\n value: 0,\r\n });\r\n }\r\n }\r\n // Push the last item\r\n filledItems.push(items[items.length - 1]);\r\n return filledItems;\r\n }\r\n}\r\nexports.Utils = Utils;\r\nUtils.secondsToString = (limit = 0) => {\r\n const minutes = Math.floor(limit / 60);\r\n const seconds = limit - minutes * 60;\r\n let ret = ``;\r\n if (minutes > 0)\r\n ret += `${minutes}m`;\r\n if (minutes > 0 && seconds > 0)\r\n ret += ` `;\r\n if (seconds > 0)\r\n ret += `${Math.round(seconds)}s`;\r\n return ret;\r\n};\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AuthProviderType = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.AuthProviderType\r\n*/\r\nvar AuthProviderType;\r\n(function (AuthProviderType) {\r\n AuthProviderType[AuthProviderType[\"Unknown\"] = 0] = \"Unknown\";\r\n AuthProviderType[AuthProviderType[\"Azure\"] = 20] = \"Azure\";\r\n AuthProviderType[AuthProviderType[\"Okta\"] = 40] = \"Okta\";\r\n})(AuthProviderType = exports.AuthProviderType || (exports.AuthProviderType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AutoFlagStateType = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.AutoFlagStateType\r\n*/\r\nvar AutoFlagStateType;\r\n(function (AutoFlagStateType) {\r\n AutoFlagStateType[AutoFlagStateType[\"UserDisabled\"] = 0] = \"UserDisabled\";\r\n AutoFlagStateType[AutoFlagStateType[\"AutoEnabled\"] = 1] = \"AutoEnabled\";\r\n AutoFlagStateType[AutoFlagStateType[\"UserEnabled\"] = 2] = \"UserEnabled\";\r\n AutoFlagStateType[AutoFlagStateType[\"AutoDisabled\"] = -1] = \"AutoDisabled\";\r\n})(AutoFlagStateType = exports.AutoFlagStateType || (exports.AutoFlagStateType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CalendarInteractionType = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.CalendarInteractionType\r\n*/\r\nvar CalendarInteractionType;\r\n(function (CalendarInteractionType) {\r\n CalendarInteractionType[CalendarInteractionType[\"None\"] = 0] = \"None\";\r\n CalendarInteractionType[CalendarInteractionType[\"Provider\"] = 10] = \"Provider\";\r\n CalendarInteractionType[CalendarInteractionType[\"ICal\"] = 20] = \"ICal\";\r\n})(CalendarInteractionType = exports.CalendarInteractionType || (exports.CalendarInteractionType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ClipEventType = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.Models.ClipEventType\r\n*/\r\nvar ClipEventType;\r\n(function (ClipEventType) {\r\n ClipEventType[ClipEventType[\"Unknown\"] = 0] = \"Unknown\";\r\n ClipEventType[ClipEventType[\"ServerUpload\"] = 100] = \"ServerUpload\";\r\n ClipEventType[ClipEventType[\"ServerUnlockForWrite\"] = 200] = \"ServerUnlockForWrite\";\r\n ClipEventType[ClipEventType[\"ServerUnlockForRead\"] = 300] = \"ServerUnlockForRead\";\r\n ClipEventType[ClipEventType[\"ServerShareLinkSecure\"] = 400] = \"ServerShareLinkSecure\";\r\n ClipEventType[ClipEventType[\"ServerShareLinkPublic\"] = 500] = \"ServerShareLinkPublic\";\r\n ClipEventType[ClipEventType[\"ClientRecord\"] = 500] = \"ClientRecord\";\r\n ClipEventType[ClipEventType[\"ClientLoad\"] = 600] = \"ClientLoad\";\r\n ClipEventType[ClipEventType[\"ClientStart\"] = 700] = \"ClientStart\";\r\n ClipEventType[ClipEventType[\"ClientPause\"] = 800] = \"ClientPause\";\r\n ClipEventType[ClipEventType[\"ClientScrub\"] = 900] = \"ClientScrub\";\r\n ClipEventType[ClipEventType[\"ClientFinish\"] = 1000] = \"ClientFinish\";\r\n})(ClipEventType = exports.ClipEventType || (exports.ClipEventType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ClipHostingType = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.ClipHostingType\r\n*/\r\nvar ClipHostingType;\r\n(function (ClipHostingType) {\r\n ClipHostingType[ClipHostingType[\"None\"] = 0] = \"None\";\r\n ClipHostingType[ClipHostingType[\"AzureStorage\"] = 10] = \"AzureStorage\";\r\n ClipHostingType[ClipHostingType[\"AzureStreaming\"] = 20] = \"AzureStreaming\";\r\n ClipHostingType[ClipHostingType[\"SbStreaming\"] = 30] = \"SbStreaming\";\r\n})(ClipHostingType = exports.ClipHostingType || (exports.ClipHostingType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ClipOperationStateType = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.ClipOperationStateType\r\n*/\r\nvar ClipOperationStateType;\r\n(function (ClipOperationStateType) {\r\n ClipOperationStateType[ClipOperationStateType[\"Unknown\"] = 0] = \"Unknown\";\r\n ClipOperationStateType[ClipOperationStateType[\"NotRequested\"] = 100] = \"NotRequested\";\r\n ClipOperationStateType[ClipOperationStateType[\"Requested\"] = 200] = \"Requested\";\r\n ClipOperationStateType[ClipOperationStateType[\"Error\"] = 600] = \"Error\";\r\n ClipOperationStateType[ClipOperationStateType[\"Complete\"] = 1000] = \"Complete\";\r\n})(ClipOperationStateType = exports.ClipOperationStateType || (exports.ClipOperationStateType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ClipOperationType = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.ClipOperationType\r\n*/\r\nvar ClipOperationType;\r\n(function (ClipOperationType) {\r\n ClipOperationType[ClipOperationType[\"Unknown\"] = 0] = \"Unknown\";\r\n ClipOperationType[ClipOperationType[\"AzureMediaSvcEncoding\"] = 100] = \"AzureMediaSvcEncoding\";\r\n ClipOperationType[ClipOperationType[\"AzureMediaSvcTranscribe\"] = 200] = \"AzureMediaSvcTranscribe\";\r\n ClipOperationType[ClipOperationType[\"SoundbiteMediaEncoding\"] = 300] = \"SoundbiteMediaEncoding\";\r\n})(ClipOperationType = exports.ClipOperationType || (exports.ClipOperationType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ClipSource = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.Models.ClipSource\r\n*/\r\nvar ClipSource;\r\n(function (ClipSource) {\r\n ClipSource[ClipSource[\"Unknown\"] = 0] = \"Unknown\";\r\n ClipSource[ClipSource[\"Upload\"] = 100] = \"Upload\";\r\n ClipSource[ClipSource[\"WidgetRecorderV1\"] = 200] = \"WidgetRecorderV1\";\r\n})(ClipSource = exports.ClipSource || (exports.ClipSource = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ClipState = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.Models.ClipState\r\n*/\r\nvar ClipState;\r\n(function (ClipState) {\r\n ClipState[ClipState[\"Unknown\"] = 0] = \"Unknown\";\r\n ClipState[ClipState[\"Obsolete\"] = 10] = \"Obsolete\";\r\n ClipState[ClipState[\"Started\"] = 100] = \"Started\";\r\n ClipState[ClipState[\"Committed\"] = 200] = \"Committed\";\r\n ClipState[ClipState[\"Validated\"] = 300] = \"Validated\";\r\n ClipState[ClipState[\"Ready\"] = 400] = \"Ready\";\r\n})(ClipState = exports.ClipState || (exports.ClipState = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ClipType = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.ClipType\r\n*/\r\nvar ClipType;\r\n(function (ClipType) {\r\n ClipType[ClipType[\"Prompt\"] = 0] = \"Prompt\";\r\n ClipType[ClipType[\"Contribution\"] = 1] = \"Contribution\";\r\n ClipType[ClipType[\"Comment\"] = 2] = \"Comment\";\r\n ClipType[ClipType[\"RawClip\"] = 3] = \"RawClip\";\r\n ClipType[ClipType[\"RawTranscript\"] = 4] = \"RawTranscript\";\r\n})(ClipType = exports.ClipType || (exports.ClipType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CodeGenScenarioType = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.CodeGenScenarioType\r\n*/\r\nvar CodeGenScenarioType;\r\n(function (CodeGenScenarioType) {\r\n CodeGenScenarioType[CodeGenScenarioType[\"Normal\"] = 0] = \"Normal\";\r\n CodeGenScenarioType[CodeGenScenarioType[\"FileUploadSingleFromFormData\"] = 10] = \"FileUploadSingleFromFormData\";\r\n CodeGenScenarioType[CodeGenScenarioType[\"FileUploadSingleFromBlob\"] = 20] = \"FileUploadSingleFromBlob\";\r\n})(CodeGenScenarioType = exports.CodeGenScenarioType || (exports.CodeGenScenarioType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionSyncMode = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.DirectorySync.CollectionSyncMode\r\n*/\r\nvar CollectionSyncMode;\r\n(function (CollectionSyncMode) {\r\n CollectionSyncMode[CollectionSyncMode[\"None\"] = 0] = \"None\";\r\n CollectionSyncMode[CollectionSyncMode[\"Some\"] = 1] = \"Some\";\r\n CollectionSyncMode[CollectionSyncMode[\"All\"] = 2] = \"All\";\r\n})(CollectionSyncMode = exports.CollectionSyncMode || (exports.CollectionSyncMode = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EventType = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.Entity.EventType\r\n*/\r\nvar EventType;\r\n(function (EventType) {\r\n EventType[EventType[\"Unknown\"] = 0] = \"Unknown\";\r\n EventType[EventType[\"Create\"] = 1] = \"Create\";\r\n EventType[EventType[\"Read\"] = 2] = \"Read\";\r\n EventType[EventType[\"Update\"] = 3] = \"Update\";\r\n EventType[EventType[\"Delete\"] = 4] = \"Delete\";\r\n EventType[EventType[\"Other\"] = 5] = \"Other\";\r\n})(EventType = exports.EventType || (exports.EventType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FileType = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.FileType\r\n*/\r\nvar FileType;\r\n(function (FileType) {\r\n FileType[FileType[\"Unknown\"] = 0] = \"Unknown\";\r\n FileType[FileType[\"Mp3\"] = 1] = \"Mp3\";\r\n FileType[FileType[\"Mp4\"] = 2] = \"Mp4\";\r\n FileType[FileType[\"Mpg\"] = 3] = \"Mpg\";\r\n FileType[FileType[\"Wav\"] = 4] = \"Wav\";\r\n FileType[FileType[\"Webm\"] = 5] = \"Webm\";\r\n FileType[FileType[\"MpgAudio\"] = 6] = \"MpgAudio\";\r\n FileType[FileType[\"Mov\"] = 7] = \"Mov\";\r\n FileType[FileType[\"Mkv\"] = 8] = \"Mkv\";\r\n FileType[FileType[\"Wmv\"] = 9] = \"Wmv\";\r\n FileType[FileType[\"Avi\"] = 10] = \"Avi\";\r\n FileType[FileType[\"Flv\"] = 11] = \"Flv\";\r\n FileType[FileType[\"F4v\"] = 12] = \"F4v\";\r\n})(FileType = exports.FileType || (exports.FileType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HttpStatusCode = void 0;\r\n/**\r\n* Automatically generated enum for System.Net.HttpStatusCode\r\n*/\r\nvar HttpStatusCode;\r\n(function (HttpStatusCode) {\r\n HttpStatusCode[HttpStatusCode[\"Continue\"] = 100] = \"Continue\";\r\n HttpStatusCode[HttpStatusCode[\"SwitchingProtocols\"] = 101] = \"SwitchingProtocols\";\r\n HttpStatusCode[HttpStatusCode[\"Processing\"] = 102] = \"Processing\";\r\n HttpStatusCode[HttpStatusCode[\"EarlyHints\"] = 103] = \"EarlyHints\";\r\n HttpStatusCode[HttpStatusCode[\"OK\"] = 200] = \"OK\";\r\n HttpStatusCode[HttpStatusCode[\"Created\"] = 201] = \"Created\";\r\n HttpStatusCode[HttpStatusCode[\"Accepted\"] = 202] = \"Accepted\";\r\n HttpStatusCode[HttpStatusCode[\"NonAuthoritativeInformation\"] = 203] = \"NonAuthoritativeInformation\";\r\n HttpStatusCode[HttpStatusCode[\"NoContent\"] = 204] = \"NoContent\";\r\n HttpStatusCode[HttpStatusCode[\"ResetContent\"] = 205] = \"ResetContent\";\r\n HttpStatusCode[HttpStatusCode[\"PartialContent\"] = 206] = \"PartialContent\";\r\n HttpStatusCode[HttpStatusCode[\"MultiStatus\"] = 207] = \"MultiStatus\";\r\n HttpStatusCode[HttpStatusCode[\"AlreadyReported\"] = 208] = \"AlreadyReported\";\r\n HttpStatusCode[HttpStatusCode[\"IMUsed\"] = 226] = \"IMUsed\";\r\n HttpStatusCode[HttpStatusCode[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\r\n HttpStatusCode[HttpStatusCode[\"Ambiguous\"] = 300] = \"Ambiguous\";\r\n HttpStatusCode[HttpStatusCode[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\r\n HttpStatusCode[HttpStatusCode[\"Moved\"] = 301] = \"Moved\";\r\n HttpStatusCode[HttpStatusCode[\"Found\"] = 302] = \"Found\";\r\n HttpStatusCode[HttpStatusCode[\"Redirect\"] = 302] = \"Redirect\";\r\n HttpStatusCode[HttpStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\r\n HttpStatusCode[HttpStatusCode[\"RedirectMethod\"] = 303] = \"RedirectMethod\";\r\n HttpStatusCode[HttpStatusCode[\"NotModified\"] = 304] = \"NotModified\";\r\n HttpStatusCode[HttpStatusCode[\"UseProxy\"] = 305] = \"UseProxy\";\r\n HttpStatusCode[HttpStatusCode[\"Unused\"] = 306] = \"Unused\";\r\n HttpStatusCode[HttpStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\r\n HttpStatusCode[HttpStatusCode[\"RedirectKeepVerb\"] = 307] = \"RedirectKeepVerb\";\r\n HttpStatusCode[HttpStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\r\n HttpStatusCode[HttpStatusCode[\"BadRequest\"] = 400] = \"BadRequest\";\r\n HttpStatusCode[HttpStatusCode[\"Unauthorized\"] = 401] = \"Unauthorized\";\r\n HttpStatusCode[HttpStatusCode[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\r\n HttpStatusCode[HttpStatusCode[\"Forbidden\"] = 403] = \"Forbidden\";\r\n HttpStatusCode[HttpStatusCode[\"NotFound\"] = 404] = \"NotFound\";\r\n HttpStatusCode[HttpStatusCode[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\r\n HttpStatusCode[HttpStatusCode[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\r\n HttpStatusCode[HttpStatusCode[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\r\n HttpStatusCode[HttpStatusCode[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\r\n HttpStatusCode[HttpStatusCode[\"Conflict\"] = 409] = \"Conflict\";\r\n HttpStatusCode[HttpStatusCode[\"Gone\"] = 410] = \"Gone\";\r\n HttpStatusCode[HttpStatusCode[\"LengthRequired\"] = 411] = \"LengthRequired\";\r\n HttpStatusCode[HttpStatusCode[\"PreconditionFailed\"] = 412] = \"PreconditionFailed\";\r\n HttpStatusCode[HttpStatusCode[\"RequestEntityTooLarge\"] = 413] = \"RequestEntityTooLarge\";\r\n HttpStatusCode[HttpStatusCode[\"RequestUriTooLong\"] = 414] = \"RequestUriTooLong\";\r\n HttpStatusCode[HttpStatusCode[\"UnsupportedMediaType\"] = 415] = \"UnsupportedMediaType\";\r\n HttpStatusCode[HttpStatusCode[\"RequestedRangeNotSatisfiable\"] = 416] = \"RequestedRangeNotSatisfiable\";\r\n HttpStatusCode[HttpStatusCode[\"ExpectationFailed\"] = 417] = \"ExpectationFailed\";\r\n HttpStatusCode[HttpStatusCode[\"MisdirectedRequest\"] = 421] = \"MisdirectedRequest\";\r\n HttpStatusCode[HttpStatusCode[\"UnprocessableEntity\"] = 422] = \"UnprocessableEntity\";\r\n HttpStatusCode[HttpStatusCode[\"Locked\"] = 423] = \"Locked\";\r\n HttpStatusCode[HttpStatusCode[\"FailedDependency\"] = 424] = \"FailedDependency\";\r\n HttpStatusCode[HttpStatusCode[\"UpgradeRequired\"] = 426] = \"UpgradeRequired\";\r\n HttpStatusCode[HttpStatusCode[\"PreconditionRequired\"] = 428] = \"PreconditionRequired\";\r\n HttpStatusCode[HttpStatusCode[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\r\n HttpStatusCode[HttpStatusCode[\"RequestHeaderFieldsTooLarge\"] = 431] = \"RequestHeaderFieldsTooLarge\";\r\n HttpStatusCode[HttpStatusCode[\"UnavailableForLegalReasons\"] = 451] = \"UnavailableForLegalReasons\";\r\n HttpStatusCode[HttpStatusCode[\"InternalServerError\"] = 500] = \"InternalServerError\";\r\n HttpStatusCode[HttpStatusCode[\"NotImplemented\"] = 501] = \"NotImplemented\";\r\n HttpStatusCode[HttpStatusCode[\"BadGateway\"] = 502] = \"BadGateway\";\r\n HttpStatusCode[HttpStatusCode[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\r\n HttpStatusCode[HttpStatusCode[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\r\n HttpStatusCode[HttpStatusCode[\"HttpVersionNotSupported\"] = 505] = \"HttpVersionNotSupported\";\r\n HttpStatusCode[HttpStatusCode[\"VariantAlsoNegotiates\"] = 506] = \"VariantAlsoNegotiates\";\r\n HttpStatusCode[HttpStatusCode[\"InsufficientStorage\"] = 507] = \"InsufficientStorage\";\r\n HttpStatusCode[HttpStatusCode[\"LoopDetected\"] = 508] = \"LoopDetected\";\r\n HttpStatusCode[HttpStatusCode[\"NotExtended\"] = 510] = \"NotExtended\";\r\n HttpStatusCode[HttpStatusCode[\"NetworkAuthenticationRequired\"] = 511] = \"NetworkAuthenticationRequired\";\r\n})(HttpStatusCode = exports.HttpStatusCode || (exports.HttpStatusCode = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.JobStatusType = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.JobStatusType\r\n*/\r\nvar JobStatusType;\r\n(function (JobStatusType) {\r\n JobStatusType[JobStatusType[\"None\"] = 0] = \"None\";\r\n JobStatusType[JobStatusType[\"Requesting\"] = 1] = \"Requesting\";\r\n JobStatusType[JobStatusType[\"Requested\"] = 2] = \"Requested\";\r\n JobStatusType[JobStatusType[\"Processing\"] = 3] = \"Processing\";\r\n JobStatusType[JobStatusType[\"Complete\"] = 4] = \"Complete\";\r\n JobStatusType[JobStatusType[\"Failed\"] = 5] = \"Failed\";\r\n})(JobStatusType = exports.JobStatusType || (exports.JobStatusType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MediaProcessingState = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.MediaProcessingState\r\n*/\r\nvar MediaProcessingState;\r\n(function (MediaProcessingState) {\r\n MediaProcessingState[MediaProcessingState[\"None\"] = 0] = \"None\";\r\n MediaProcessingState[MediaProcessingState[\"Requested\"] = 10] = \"Requested\";\r\n MediaProcessingState[MediaProcessingState[\"Complete\"] = 20] = \"Complete\";\r\n MediaProcessingState[MediaProcessingState[\"Failed\"] = 30] = \"Failed\";\r\n})(MediaProcessingState = exports.MediaProcessingState || (exports.MediaProcessingState = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MemberRole = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.MemberRole\r\n*/\r\nvar MemberRole;\r\n(function (MemberRole) {\r\n MemberRole[MemberRole[\"Unknown\"] = 0] = \"Unknown\";\r\n MemberRole[MemberRole[\"Member\"] = 50] = \"Member\";\r\n MemberRole[MemberRole[\"Owner\"] = 100] = \"Owner\";\r\n})(MemberRole = exports.MemberRole || (exports.MemberRole = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MemberSyncOpType = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.DirectorySync.MemberSyncOpType\r\n*/\r\nvar MemberSyncOpType;\r\n(function (MemberSyncOpType) {\r\n MemberSyncOpType[MemberSyncOpType[\"SyncNoMembers\"] = 0] = \"SyncNoMembers\";\r\n MemberSyncOpType[MemberSyncOpType[\"SyncAllMembers\"] = 1] = \"SyncAllMembers\";\r\n MemberSyncOpType[MemberSyncOpType[\"SyncExistingMembers\"] = 2] = \"SyncExistingMembers\";\r\n})(MemberSyncOpType = exports.MemberSyncOpType || (exports.MemberSyncOpType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NotificationChannel = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.NotificationChannel\r\n*/\r\nvar NotificationChannel;\r\n(function (NotificationChannel) {\r\n NotificationChannel[NotificationChannel[\"None\"] = 0] = \"None\";\r\n NotificationChannel[NotificationChannel[\"Email\"] = 10] = \"Email\";\r\n NotificationChannel[NotificationChannel[\"SMS\"] = 20] = \"SMS\";\r\n NotificationChannel[NotificationChannel[\"Teams\"] = 30] = \"Teams\";\r\n})(NotificationChannel = exports.NotificationChannel || (exports.NotificationChannel = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NotificationStatus = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.NotificationStatus\r\n*/\r\nvar NotificationStatus;\r\n(function (NotificationStatus) {\r\n NotificationStatus[NotificationStatus[\"Unknown\"] = 0] = \"Unknown\";\r\n NotificationStatus[NotificationStatus[\"Success\"] = 10] = \"Success\";\r\n NotificationStatus[NotificationStatus[\"Failed\"] = 20] = \"Failed\";\r\n NotificationStatus[NotificationStatus[\"Pending\"] = 30] = \"Pending\";\r\n NotificationStatus[NotificationStatus[\"Processing\"] = 40] = \"Processing\";\r\n NotificationStatus[NotificationStatus[\"Retry\"] = 50] = \"Retry\";\r\n})(NotificationStatus = exports.NotificationStatus || (exports.NotificationStatus = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OrgSyncState = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.DirectorySync.OrgSyncState\r\n*/\r\nvar OrgSyncState;\r\n(function (OrgSyncState) {\r\n OrgSyncState[OrgSyncState[\"Unknown\"] = 0] = \"Unknown\";\r\n OrgSyncState[OrgSyncState[\"Pending\"] = 10] = \"Pending\";\r\n OrgSyncState[OrgSyncState[\"Processing\"] = 20] = \"Processing\";\r\n OrgSyncState[OrgSyncState[\"Done\"] = 30] = \"Done\";\r\n OrgSyncState[OrgSyncState[\"Cancelled\"] = 40] = \"Cancelled\";\r\n})(OrgSyncState = exports.OrgSyncState || (exports.OrgSyncState = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ParticipantReactionType = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.ParticipantReactionType\r\n*/\r\nvar ParticipantReactionType;\r\n(function (ParticipantReactionType) {\r\n ParticipantReactionType[ParticipantReactionType[\"None\"] = 0] = \"None\";\r\n ParticipantReactionType[ParticipantReactionType[\"Like\"] = 10] = \"Like\";\r\n ParticipantReactionType[ParticipantReactionType[\"Love\"] = 20] = \"Love\";\r\n ParticipantReactionType[ParticipantReactionType[\"Laugh\"] = 30] = \"Laugh\";\r\n ParticipantReactionType[ParticipantReactionType[\"Wow\"] = 40] = \"Wow\";\r\n ParticipantReactionType[ParticipantReactionType[\"Sad\"] = 50] = \"Sad\";\r\n})(ParticipantReactionType = exports.ParticipantReactionType || (exports.ParticipantReactionType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ParticipantRole = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.ParticipantRole\r\n*/\r\nvar ParticipantRole;\r\n(function (ParticipantRole) {\r\n ParticipantRole[ParticipantRole[\"Unknown\"] = 0] = \"Unknown\";\r\n ParticipantRole[ParticipantRole[\"Audience\"] = 25] = \"Audience\";\r\n ParticipantRole[ParticipantRole[\"Participant\"] = 50] = \"Participant\";\r\n ParticipantRole[ParticipantRole[\"Host\"] = 100] = \"Host\";\r\n})(ParticipantRole = exports.ParticipantRole || (exports.ParticipantRole = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ParticipantState = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.ParticipantState\r\n*/\r\nvar ParticipantState;\r\n(function (ParticipantState) {\r\n ParticipantState[ParticipantState[\"Unknown\"] = 0] = \"Unknown\";\r\n ParticipantState[ParticipantState[\"Pending\"] = 1] = \"Pending\";\r\n ParticipantState[ParticipantState[\"ContributionRequested\"] = 2] = \"ContributionRequested\";\r\n ParticipantState[ParticipantState[\"Contributed\"] = 3] = \"Contributed\";\r\n ParticipantState[ParticipantState[\"ConsumptionRequested\"] = 4] = \"ConsumptionRequested\";\r\n ParticipantState[ParticipantState[\"Consumed\"] = 5] = \"Consumed\";\r\n ParticipantState[ParticipantState[\"Unsubscribed\"] = 6] = \"Unsubscribed\";\r\n})(ParticipantState = exports.ParticipantState || (exports.ParticipantState = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PersonRole = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.PersonRole\r\n*/\r\nvar PersonRole;\r\n(function (PersonRole) {\r\n PersonRole[PersonRole[\"Unknown\"] = 0] = \"Unknown\";\r\n PersonRole[PersonRole[\"Guest\"] = 25] = \"Guest\";\r\n PersonRole[PersonRole[\"Person\"] = 50] = \"Person\";\r\n PersonRole[PersonRole[\"Admin\"] = 100] = \"Admin\";\r\n})(PersonRole = exports.PersonRole || (exports.PersonRole = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ProviderType = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.ProviderType\r\n*/\r\nvar ProviderType;\r\n(function (ProviderType) {\r\n ProviderType[ProviderType[\"Unknown\"] = 0] = \"Unknown\";\r\n ProviderType[ProviderType[\"AAD\"] = 1] = \"AAD\";\r\n ProviderType[ProviderType[\"Interact\"] = 100] = \"Interact\";\r\n ProviderType[ProviderType[\"OKTA\"] = 200] = \"OKTA\";\r\n})(ProviderType = exports.ProviderType || (exports.ProviderType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Recurrence = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.Recurrence\r\n*/\r\nvar Recurrence;\r\n(function (Recurrence) {\r\n Recurrence[Recurrence[\"NoRepeat\"] = 0] = \"NoRepeat\";\r\n Recurrence[Recurrence[\"Weekday\"] = 1] = \"Weekday\";\r\n Recurrence[Recurrence[\"Daily\"] = 2] = \"Daily\";\r\n Recurrence[Recurrence[\"Weekly\"] = 3] = \"Weekly\";\r\n Recurrence[Recurrence[\"Monthly\"] = 4] = \"Monthly\";\r\n})(Recurrence = exports.Recurrence || (exports.Recurrence = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SecurityOpType = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.SecurityOpType\r\n*/\r\nvar SecurityOpType;\r\n(function (SecurityOpType) {\r\n SecurityOpType[SecurityOpType[\"Create\"] = 0] = \"Create\";\r\n SecurityOpType[SecurityOpType[\"Read\"] = 1] = \"Read\";\r\n SecurityOpType[SecurityOpType[\"Update\"] = 2] = \"Update\";\r\n SecurityOpType[SecurityOpType[\"Delete\"] = 3] = \"Delete\";\r\n SecurityOpType[SecurityOpType[\"Manage\"] = 4] = \"Manage\";\r\n})(SecurityOpType = exports.SecurityOpType || (exports.SecurityOpType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionCommentPolicy = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.SessionCommentPolicy\r\n*/\r\nvar SessionCommentPolicy;\r\n(function (SessionCommentPolicy) {\r\n SessionCommentPolicy[SessionCommentPolicy[\"Allowed\"] = 0] = \"Allowed\";\r\n SessionCommentPolicy[SessionCommentPolicy[\"Disallowed\"] = 10] = \"Disallowed\";\r\n})(SessionCommentPolicy = exports.SessionCommentPolicy || (exports.SessionCommentPolicy = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionLifecycleStage = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.Models.SessionLifecycleStage\r\n*/\r\nvar SessionLifecycleStage;\r\n(function (SessionLifecycleStage) {\r\n SessionLifecycleStage[SessionLifecycleStage[\"Unknown\"] = 0] = \"Unknown\";\r\n SessionLifecycleStage[SessionLifecycleStage[\"Draft\"] = 100] = \"Draft\";\r\n SessionLifecycleStage[SessionLifecycleStage[\"UnderReview\"] = 200] = \"UnderReview\";\r\n SessionLifecycleStage[SessionLifecycleStage[\"WaitingToRemind\"] = 300] = \"WaitingToRemind\";\r\n SessionLifecycleStage[SessionLifecycleStage[\"WaitingToPublish\"] = 400] = \"WaitingToPublish\";\r\n SessionLifecycleStage[SessionLifecycleStage[\"Published\"] = 500] = \"Published\";\r\n SessionLifecycleStage[SessionLifecycleStage[\"Archived\"] = 600] = \"Archived\";\r\n SessionLifecycleStage[SessionLifecycleStage[\"Hold\"] = 700] = \"Hold\";\r\n SessionLifecycleStage[SessionLifecycleStage[\"Removed\"] = 800] = \"Removed\";\r\n})(SessionLifecycleStage = exports.SessionLifecycleStage || (exports.SessionLifecycleStage = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionNotificationType = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.SessionNotificationType\r\n*/\r\nvar SessionNotificationType;\r\n(function (SessionNotificationType) {\r\n SessionNotificationType[SessionNotificationType[\"Unknown\"] = 0] = \"Unknown\";\r\n SessionNotificationType[SessionNotificationType[\"Reminder\"] = 10] = \"Reminder\";\r\n SessionNotificationType[SessionNotificationType[\"Publish\"] = 20] = \"Publish\";\r\n SessionNotificationType[SessionNotificationType[\"HostPublish\"] = 30] = \"HostPublish\";\r\n})(SessionNotificationType = exports.SessionNotificationType || (exports.SessionNotificationType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionSecurityType = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.SessionSecurityType\r\n*/\r\nvar SessionSecurityType;\r\n(function (SessionSecurityType) {\r\n SessionSecurityType[SessionSecurityType[\"Protected\"] = 0] = \"Protected\";\r\n SessionSecurityType[SessionSecurityType[\"Public\"] = 10] = \"Public\";\r\n})(SessionSecurityType = exports.SessionSecurityType || (exports.SessionSecurityType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionSummaryType = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.Services.SessionSummaryType\r\n*/\r\nvar SessionSummaryType;\r\n(function (SessionSummaryType) {\r\n SessionSummaryType[SessionSummaryType[\"Paragraph\"] = 0] = \"Paragraph\";\r\n SessionSummaryType[SessionSummaryType[\"Social\"] = 10] = \"Social\";\r\n SessionSummaryType[SessionSummaryType[\"Tweet\"] = 20] = \"Tweet\";\r\n SessionSummaryType[SessionSummaryType[\"Blog\"] = 30] = \"Blog\";\r\n SessionSummaryType[SessionSummaryType[\"Newsletter\"] = 40] = \"Newsletter\";\r\n})(SessionSummaryType = exports.SessionSummaryType || (exports.SessionSummaryType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionType = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.SessionType\r\n*/\r\nvar SessionType;\r\n(function (SessionType) {\r\n SessionType[SessionType[\"Memo\"] = 0] = \"Memo\";\r\n SessionType[SessionType[\"Message\"] = 1] = \"Message\";\r\n SessionType[SessionType[\"Announcement\"] = 2] = \"Announcement\";\r\n SessionType[SessionType[\"Survey\"] = 3] = \"Survey\";\r\n SessionType[SessionType[\"Meeting\"] = 4] = \"Meeting\";\r\n})(SessionType = exports.SessionType || (exports.SessionType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SyncOpType = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.DirectorySync.SyncOpType\r\n*/\r\nvar SyncOpType;\r\n(function (SyncOpType) {\r\n SyncOpType[SyncOpType[\"Ignore\"] = 0] = \"Ignore\";\r\n SyncOpType[SyncOpType[\"AddOrUpdate\"] = 1] = \"AddOrUpdate\";\r\n SyncOpType[SyncOpType[\"UpdateOnly\"] = 2] = \"UpdateOnly\";\r\n SyncOpType[SyncOpType[\"Remove\"] = 3] = \"Remove\";\r\n SyncOpType[SyncOpType[\"MemberRegistration\"] = 4] = \"MemberRegistration\";\r\n SyncOpType[SyncOpType[\"MemberRegistrationExistingUsersOnly\"] = 5] = \"MemberRegistrationExistingUsersOnly\";\r\n})(SyncOpType = exports.SyncOpType || (exports.SyncOpType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SyncScope = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.DirectorySync.SyncScope\r\n*/\r\nvar SyncScope;\r\n(function (SyncScope) {\r\n SyncScope[SyncScope[\"Organization\"] = 0] = \"Organization\";\r\n SyncScope[SyncScope[\"Region\"] = 1] = \"Region\";\r\n})(SyncScope = exports.SyncScope || (exports.SyncScope = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TokenSecurityLevel = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.TokenSecurityLevel\r\n*/\r\nvar TokenSecurityLevel;\r\n(function (TokenSecurityLevel) {\r\n TokenSecurityLevel[TokenSecurityLevel[\"Default\"] = 0] = \"Default\";\r\n TokenSecurityLevel[TokenSecurityLevel[\"Tenant\"] = 10] = \"Tenant\";\r\n TokenSecurityLevel[TokenSecurityLevel[\"Organization\"] = 20] = \"Organization\";\r\n})(TokenSecurityLevel = exports.TokenSecurityLevel || (exports.TokenSecurityLevel = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TokenSecurityType = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.TokenSecurityType\r\n*/\r\nvar TokenSecurityType;\r\n(function (TokenSecurityType) {\r\n TokenSecurityType[TokenSecurityType[\"None\"] = 0] = \"None\";\r\n TokenSecurityType[TokenSecurityType[\"SecretKey\"] = 10] = \"SecretKey\";\r\n TokenSecurityType[TokenSecurityType[\"Certificate\"] = 20] = \"Certificate\";\r\n})(TokenSecurityType = exports.TokenSecurityType || (exports.TokenSecurityType = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TranscriptState = void 0;\r\n/**\r\n* Automatically generated enum for Soundbite.TranscriptState\r\n*/\r\nvar TranscriptState;\r\n(function (TranscriptState) {\r\n TranscriptState[TranscriptState[\"None\"] = 0] = \"None\";\r\n TranscriptState[TranscriptState[\"Requested\"] = 1] = \"Requested\";\r\n TranscriptState[TranscriptState[\"Available\"] = 2] = \"Available\";\r\n TranscriptState[TranscriptState[\"Failed\"] = 3] = \"Failed\";\r\n})(TranscriptState = exports.TranscriptState || (exports.TranscriptState = {}));\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UserRole = void 0;\r\n/**\r\n* Automatically generated enum for Masticore.UserRole\r\n*/\r\nvar UserRole;\r\n(function (UserRole) {\r\n UserRole[UserRole[\"Unknown\"] = 0] = \"Unknown\";\r\n UserRole[UserRole[\"User\"] = 50] = \"User\";\r\n UserRole[UserRole[\"God\"] = 100] = \"God\";\r\n})(UserRole = exports.UserRole || (exports.UserRole = {}));\r\n","\"use strict\";\r\n//NOTE: content in the following section of code is automatically generated. Do not remove comments \r\n// defining the start and end of the section. Do not add any custom code inside the section of\r\n// code because it will be removed during the code generation process.\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/***** [GENERATED FILES::START] *******************************************************************/\r\n__exportStar(require(\"./AadOrgConfig.model\"), exports);\r\n__exportStar(require(\"./ActivityHighlight.model\"), exports);\r\n__exportStar(require(\"./ActivityRange.model\"), exports);\r\n__exportStar(require(\"./ActivityRangeItem.model\"), exports);\r\n__exportStar(require(\"./ActivityReport.model\"), exports);\r\n__exportStar(require(\"./AdClientConfig.model\"), exports);\r\n__exportStar(require(\"./AdPlatformConfig.model\"), exports);\r\n__exportStar(require(\"./ApiError.model\"), exports);\r\n__exportStar(require(\"./AppPayload.model\"), exports);\r\n__exportStar(require(\"./AppPayload_Obsolete.model\"), exports);\r\n__exportStar(require(\"./CalendarEntry.model\"), exports);\r\n__exportStar(require(\"./ClientOp.model\"), exports);\r\n__exportStar(require(\"./ClientOpWrapper.model\"), exports);\r\n__exportStar(require(\"./Clip.model\"), exports);\r\n__exportStar(require(\"./ClipDetails.model\"), exports);\r\n__exportStar(require(\"./ClipWithContributor.model\"), exports);\r\n__exportStar(require(\"./ContentReport.model\"), exports);\r\n__exportStar(require(\"./ContentResult.model\"), exports);\r\n__exportStar(require(\"./FeatureFlags.model\"), exports);\r\n__exportStar(require(\"./Group.model\"), exports);\r\n__exportStar(require(\"./GroupDetails.model\"), exports);\r\n__exportStar(require(\"./GroupFields.model\"), exports);\r\n__exportStar(require(\"./GroupSyncConfig.model\"), exports);\r\n__exportStar(require(\"./IAppPayload.model\"), exports);\r\n__exportStar(require(\"./IMediaEffect.model\"), exports);\r\n__exportStar(require(\"./IndexPageRequest.model\"), exports);\r\n__exportStar(require(\"./IndexPageResponse.model\"), exports);\r\n__exportStar(require(\"./Invite.model\"), exports);\r\n__exportStar(require(\"./InviteLifecycle.model\"), exports);\r\n__exportStar(require(\"./InviteResult.model\"), exports);\r\n__exportStar(require(\"./IOrgSettings.model\"), exports);\r\n__exportStar(require(\"./IUserNotifications.model\"), exports);\r\n__exportStar(require(\"./Member.model\"), exports);\r\n__exportStar(require(\"./NewClip.model\"), exports);\r\n__exportStar(require(\"./NewGroup.model\"), exports);\r\n__exportStar(require(\"./NewMember.model\"), exports);\r\n__exportStar(require(\"./NewParticipant.model\"), exports);\r\n__exportStar(require(\"./NewParticipantGroup.model\"), exports);\r\n__exportStar(require(\"./NewSession.model\"), exports);\r\n__exportStar(require(\"./NewSessionComment.model\"), exports);\r\n__exportStar(require(\"./OktaOrgSyncConfig.model\"), exports);\r\n__exportStar(require(\"./Organization.model\"), exports);\r\n__exportStar(require(\"./OrganizationDetails.model\"), exports);\r\n__exportStar(require(\"./OrganizationDetails_Obsolete.model\"), exports);\r\n__exportStar(require(\"./OrganizationExtended.model\"), exports);\r\n__exportStar(require(\"./OrganizationWithPermissions.model\"), exports);\r\n__exportStar(require(\"./OrganizationWithPermissions_Obsolete.model\"), exports);\r\n__exportStar(require(\"./OrganizationWithSettings.model\"), exports);\r\n__exportStar(require(\"./OrgAzureSettings.model\"), exports);\r\n__exportStar(require(\"./OrgContentReport.model\"), exports);\r\n__exportStar(require(\"./OrgNotificationChannels.model\"), exports);\r\n__exportStar(require(\"./OrgNotificationSettings.model\"), exports);\r\n__exportStar(require(\"./OrgOktaSettings.model\"), exports);\r\n__exportStar(require(\"./OrgOktaSettingsWithOrgRoute.model\"), exports);\r\n__exportStar(require(\"./OrgPermissions.model\"), exports);\r\n__exportStar(require(\"./OrgSessionSettings.model\"), exports);\r\n__exportStar(require(\"./OrgSettings.model\"), exports);\r\n__exportStar(require(\"./OrgSyncConfig.model\"), exports);\r\n__exportStar(require(\"./OrgSyncFields.model\"), exports);\r\n__exportStar(require(\"./OrgSyncResult.model\"), exports);\r\n__exportStar(require(\"./PageRequestBase.model\"), exports);\r\n__exportStar(require(\"./PageResponseBase.model\"), exports);\r\n__exportStar(require(\"./Participant.model\"), exports);\r\n__exportStar(require(\"./ParticipantGroup.model\"), exports);\r\n__exportStar(require(\"./ParticipantStateUpdate.model\"), exports);\r\n__exportStar(require(\"./Person.model\"), exports);\r\n__exportStar(require(\"./Prompt.model\"), exports);\r\n__exportStar(require(\"./PromptWithClips.model\"), exports);\r\n__exportStar(require(\"./ReactionSummary.model\"), exports);\r\n__exportStar(require(\"./ReadAllPeopleIndexPageRequest.model\"), exports);\r\n__exportStar(require(\"./Record.model\"), exports);\r\n__exportStar(require(\"./RecurrencePattern.model\"), exports);\r\n__exportStar(require(\"./ReportBase.model\"), exports);\r\n__exportStar(require(\"./Resource.model\"), exports);\r\n__exportStar(require(\"./ResourceBase.model\"), exports);\r\n__exportStar(require(\"./SbClipManifestResult.model\"), exports);\r\n__exportStar(require(\"./Series.model\"), exports);\r\n__exportStar(require(\"./SeriesDetails.model\"), exports);\r\n__exportStar(require(\"./SeriesPreview.model\"), exports);\r\n__exportStar(require(\"./Session.model\"), exports);\r\n__exportStar(require(\"./SessionCalendarEntry.model\"), exports);\r\n__exportStar(require(\"./SessionComment.model\"), exports);\r\n__exportStar(require(\"./SessionContentDetailsReport.model\"), exports);\r\n__exportStar(require(\"./SessionContentNotificiation.model\"), exports);\r\n__exportStar(require(\"./SessionContentPersonEvent.model\"), exports);\r\n__exportStar(require(\"./SessionContentReport.model\"), exports);\r\n__exportStar(require(\"./SessionDetails.model\"), exports);\r\n__exportStar(require(\"./SessionPreview.model\"), exports);\r\n__exportStar(require(\"./SessionSummary.model\"), exports);\r\n__exportStar(require(\"./SessionTypeTranscriptionSettings.model\"), exports);\r\n__exportStar(require(\"./SpaConfig.model\"), exports);\r\n__exportStar(require(\"./SyncedUserInfo.model\"), exports);\r\n__exportStar(require(\"./SyncResultBase.model\"), exports);\r\n__exportStar(require(\"./SyncStrategyConfigBase.model\"), exports);\r\n__exportStar(require(\"./SyncTarget.model\"), exports);\r\n__exportStar(require(\"./SyncValidation.model\"), exports);\r\n__exportStar(require(\"./Theme.model\"), exports);\r\n__exportStar(require(\"./ThemeBootstrap.model\"), exports);\r\n__exportStar(require(\"./ThemeBrand.model\"), exports);\r\n__exportStar(require(\"./ThemeColors.model\"), exports);\r\n__exportStar(require(\"./ThemeFonts.model\"), exports);\r\n__exportStar(require(\"./ThemeHues.model\"), exports);\r\n__exportStar(require(\"./ThemeImages.model\"), exports);\r\n__exportStar(require(\"./ThemeNeutrals.model\"), exports);\r\n__exportStar(require(\"./TokenInfo.model\"), exports);\r\n__exportStar(require(\"./TokenPageRequest.model\"), exports);\r\n__exportStar(require(\"./TokenPageResponse.model\"), exports);\r\n__exportStar(require(\"./User.model\"), exports);\r\n__exportStar(require(\"./UserFields.model\"), exports);\r\n__exportStar(require(\"./UserNotifications.model\"), exports);\r\n__exportStar(require(\"./UserSyncConfig.model\"), exports);\r\n/***** [GENERATED FILES::END] *********************************************************************/\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\n//NOTE: content in the following section of code is automatically generated. Do not remove comments \r\n// defining the start and end of the section. Do not add any custom code inside the section of\r\n// code because it will be removed during the code generation process.\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/***** [GENERATED FILES::START] *******************************************************************/\r\n__exportStar(require(\"./azureauth.service\"), exports);\r\n__exportStar(require(\"./clip.service\"), exports);\r\n__exportStar(require(\"./groups.service\"), exports);\r\n__exportStar(require(\"./mediastreaming.service\"), exports);\r\n__exportStar(require(\"./members.service\"), exports);\r\n__exportStar(require(\"./oktaauth.service\"), exports);\r\n__exportStar(require(\"./organizations.service\"), exports);\r\n__exportStar(require(\"./people.service\"), exports);\r\n__exportStar(require(\"./report.service\"), exports);\r\n__exportStar(require(\"./series.service\"), exports);\r\n__exportStar(require(\"./sessioncomments.service\"), exports);\r\n__exportStar(require(\"./sessions.service\"), exports);\r\n__exportStar(require(\"./spa.service\"), exports);\r\n__exportStar(require(\"./sync.service\"), exports);\r\n__exportStar(require(\"./users.service\"), exports);\r\n/***** [GENERATED FILES::END] *********************************************************************/\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AzureAuthService = void 0;\r\nconst HttpService_1 = require(\"../../code/HttpService\");\r\nconst SoundbiteApiConfig_1 = require(\"../../code/SoundbiteApiConfig\");\r\n/**\r\n * Automatically generated endpoint API for the Soundbite.Api.Controllers.AzureAuthController\r\n **/\r\nclass AzureAuthServiceClass {\r\n /**\r\n * Automatically generated API call\r\n */\r\n loginAzureAD(externalUserInfo, orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/azureAuth/login?orgRoute=${encodeURIComponent(orgRoute)}`;\r\n const response = yield HttpService_1.HttpService.post(url, externalUserInfo, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n loginToOrgAzureAD(orgRoute, externalUserInfo, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/azureAuth/login/${encodeURIComponent(orgRoute)}`;\r\n const response = yield HttpService_1.HttpService.post(url, externalUserInfo, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n loginTeams(options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/azureAuth/LoginTeams`;\r\n const response = yield HttpService_1.HttpService.post(url, null, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Responsible for managing the initial login process for Soundbite's Microsoft SharePoint app.\r\n * Action is responsible for azure token validation.\r\n */\r\n loginSharePoint(options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/azureAuth/LoginSharePoint`;\r\n const response = yield HttpService_1.HttpService.post(url, null, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n * DO NOT USE; please check the documentation for its replacement\r\n * @deprecated\r\n */\r\n loginToOrg(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/azureAuth/loginToOrg/${encodeURIComponent(orgRoute)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n}\r\nexports.AzureAuthService = new AzureAuthServiceClass();\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ClipService = void 0;\r\nconst HttpService_1 = require(\"../../code/HttpService\");\r\nconst SoundbiteApiConfig_1 = require(\"../../code/SoundbiteApiConfig\");\r\n/**\r\n * Automatically generated endpoint API for the Soundbite.Api.Controllers.ClipController\r\n **/\r\nclass ClipServiceClass {\r\n /**\r\n * Automatically generated API call\r\n */\r\n simulateAmsGridEvent(clipOpRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/SimulateAmsGridEvent/${encodeURIComponent(clipOpRoute)}`;\r\n const response = yield HttpService_1.HttpService.post(url, null, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n * DO NOT USE; please check the documentation for its replacement\r\n * @deprecated\r\n */\r\n createAsync_Obsolete(orgRoute, sessionRoute, promptRoute, formData, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/Prompts/${encodeURIComponent(promptRoute)}/Clips`;\r\n const response = yield HttpService_1.HttpService.post(url, formData, options);\r\n yield SoundbiteApiConfig_1.SoundbiteApiConfig.clientOpsHandler(response === null || response === void 0 ? void 0 : response.clientOps);\r\n return response.result;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n createAsync(orgRoute, sessionRoute, promptRoute, formData, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/Prompts/${encodeURIComponent(promptRoute)}/Clips/New`;\r\n const response = yield HttpService_1.HttpService.post(url, formData, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n stateAsync(orgRoute, sessionRoute, promptRoute, clipRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/Prompts/${encodeURIComponent(promptRoute)}/Clips/${encodeURIComponent(clipRoute)}/state`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n createAnnouncementClipAsync(orgRoute, sessionRoute, formData, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/Prompts/Announcements`;\r\n const response = yield HttpService_1.HttpService.post(url, formData, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n getTranscriptUrl(orgRoute, sessionRoute, clipRoute, isPublic = false, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/Prompts/{promptRoute}/Clips/${encodeURIComponent(clipRoute)}/transcript?isPublic=${encodeURIComponent(isPublic)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n}\r\nexports.ClipService = new ClipServiceClass();\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GroupsService = void 0;\r\nconst HttpService_1 = require(\"../../code/HttpService\");\r\nconst SoundbiteApiConfig_1 = require(\"../../code/SoundbiteApiConfig\");\r\n/**\r\n * Automatically generated endpoint API for the Soundbite.Api.Controllers.GroupsController\r\n **/\r\nclass GroupsServiceClass {\r\n /**\r\n * Automatically generated API call\r\n */\r\n readAllGroupsAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Groups`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readMyGroupsAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Me/Groups`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readMyTargetGroupsAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Me/Groups/Targets`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n createAsync(orgRoute, newGroup, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/Groups/`;\r\n const response = yield HttpService_1.HttpService.post(url, newGroup, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readAsync(orgRoute, groupRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/Groups/${encodeURIComponent(groupRoute)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n deleteAsync(orgRoute, groupRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/Groups/${encodeURIComponent(groupRoute)}`;\r\n yield HttpService_1.HttpService.delete(url, options);\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n patchAsync(orgRoute, groupRoute, changes, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/Groups/${encodeURIComponent(groupRoute)}`;\r\n const response = yield HttpService_1.HttpService.patch(url, changes, options);\r\n return response;\r\n });\r\n }\r\n}\r\nexports.GroupsService = new GroupsServiceClass();\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MediaStreamingService = void 0;\r\nconst HttpService_1 = require(\"../../code/HttpService\");\r\nconst SoundbiteApiConfig_1 = require(\"../../code/SoundbiteApiConfig\");\r\n/**\r\n * Automatically generated endpoint API for the Soundbite.Api.Controllers.MediaStreamingController\r\n **/\r\nclass MediaStreamingServiceClass {\r\n /**\r\n * Automatically generated API call\r\n */\r\n sbClipManifest(orgRoute, clipRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/mediaproxy/sbhosted/manifest?orgRoute=${encodeURIComponent(orgRoute)}&clipRoute=${encodeURIComponent(clipRoute)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n manifest(sourceUrl, token, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/mediaproxy/manifest?sourceUrl=${encodeURIComponent(sourceUrl)}&token=${encodeURIComponent(token)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n manifestPart(sourceUrl, token, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/mediaproxy/manifestpart?sourceUrl=${encodeURIComponent(sourceUrl)}&token=${encodeURIComponent(token)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readVariantPlaylist(orgRoute, sessionRoute, promptRoute, clipRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/media/${encodeURIComponent(orgRoute)}/${encodeURIComponent(sessionRoute)}/${encodeURIComponent(promptRoute)}/${encodeURIComponent(clipRoute)}/playlist.m3u8`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n * DO NOT USE; please check the documentation for its replacement\r\n * @deprecated\r\n */\r\n readVariantPlaylistByClip(clipRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/media/clip/${encodeURIComponent(clipRoute)}/playlist.m3u8`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readLevelPlaylist(orgRoute, sessionRoute, promptRoute, clipRoute, level, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/media/${encodeURIComponent(orgRoute)}/${encodeURIComponent(sessionRoute)}/${encodeURIComponent(promptRoute)}/${encodeURIComponent(clipRoute)}/${encodeURIComponent(level)}/playlist.m3u8`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n * DO NOT USE; please check the documentation for its replacement\r\n * @deprecated\r\n */\r\n readLevelPlaylistByClip(clipRoute, level, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/media/clip/${encodeURIComponent(clipRoute)}/${encodeURIComponent(level)}/playlist.m3u8`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n}\r\nexports.MediaStreamingService = new MediaStreamingServiceClass();\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MembersService = void 0;\r\nconst HttpService_1 = require(\"../../code/HttpService\");\r\nconst SoundbiteApiConfig_1 = require(\"../../code/SoundbiteApiConfig\");\r\n/**\r\n * Automatically generated endpoint API for the Soundbite.Api.Controllers.MembersController\r\n **/\r\nclass MembersServiceClass {\r\n /**\r\n * Automatically generated API call\r\n * DO NOT USE; please check the documentation for its replacement\r\n * @deprecated\r\n */\r\n readAllAsync_Obsolete(orgRoute, groupRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/Groups/${encodeURIComponent(groupRoute)}/Members/`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readAllAsync(orgRoute, groupRoute, pageRequest, options) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/Groups/${encodeURIComponent(groupRoute)}/Members/Page?&filter=${encodeURIComponent((_a = pageRequest === null || pageRequest === void 0 ? void 0 : pageRequest.filter) !== null && _a !== void 0 ? _a : \"\")}&includesCounts=${encodeURIComponent((_b = pageRequest === null || pageRequest === void 0 ? void 0 : pageRequest.includesCounts) !== null && _b !== void 0 ? _b : \"\")}&skip=${encodeURIComponent((_c = pageRequest === null || pageRequest === void 0 ? void 0 : pageRequest.skip) !== null && _c !== void 0 ? _c : \"\")}&take=${encodeURIComponent((_d = pageRequest === null || pageRequest === void 0 ? void 0 : pageRequest.take) !== null && _d !== void 0 ? _d : \"\")}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n inviteAsync(orgRoute, groupRoute, invites, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/Groups/${encodeURIComponent(groupRoute)}/Members/`;\r\n yield HttpService_1.HttpService.post(url, invites, options);\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n updateAsync(orgRoute, groupRoute, memberRoute, member, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/Groups/${encodeURIComponent(groupRoute)}/Members/${encodeURIComponent(memberRoute)}`;\r\n const response = yield HttpService_1.HttpService.patch(url, member, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n deleteAsync(orgRoute, groupRoute, memberRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/Groups/${encodeURIComponent(groupRoute)}/Members/${encodeURIComponent(memberRoute)}`;\r\n yield HttpService_1.HttpService.delete(url, options);\r\n });\r\n }\r\n}\r\nexports.MembersService = new MembersServiceClass();\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OktaAuthService = void 0;\r\nconst HttpService_1 = require(\"../../code/HttpService\");\r\nconst SoundbiteApiConfig_1 = require(\"../../code/SoundbiteApiConfig\");\r\n/**\r\n * Automatically generated endpoint API for the Soundbite.Api.Controllers.OktaAuthController\r\n **/\r\nclass OktaAuthServiceClass {\r\n /**\r\n * Automatically generated API call\r\n */\r\n getSettingsByEmail(email, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/oktaAuth/settingsByEmail?email=${encodeURIComponent(email)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n getSettingsByRoute(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/oktaAuth/settingsByRoute?orgRoute=${encodeURIComponent(orgRoute)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n login(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/oktaAuth/login?orgRoute=${encodeURIComponent(orgRoute)}`;\r\n const response = yield HttpService_1.HttpService.post(url, null, options);\r\n return response;\r\n });\r\n }\r\n}\r\nexports.OktaAuthService = new OktaAuthServiceClass();\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OrganizationsService = void 0;\r\nconst HttpService_1 = require(\"../../code/HttpService\");\r\nconst SoundbiteApiConfig_1 = require(\"../../code/SoundbiteApiConfig\");\r\n/**\r\n * Automatically generated endpoint API for the Soundbite.App.Controllers.OrganizationsController\r\n **/\r\nclass OrganizationsServiceClass {\r\n /**\r\n * Gets a list of all the active organizations to which the current user has access.\r\n */\r\n readAllAsync(options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n createAsync(organization, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/`;\r\n const response = yield HttpService_1.HttpService.post(url, organization, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Gets an array containing all of the active organizations in the system.\r\n */\r\n readAllAsGodAsync(options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/all`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Gets a list of all the archived organizations to which the current user has access.\r\n */\r\n readAllArchivedAsync(options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/archived`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n deleteAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}`;\r\n yield HttpService_1.HttpService.delete(url, options);\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readNotificationSettingsAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/settings/notifications`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readSessionSettingsAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/settings/sessions`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n updateNotificationSettingsAsync(orgRoute, settings, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/settings/notifications`;\r\n const response = yield HttpService_1.HttpService.put(url, settings, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n updateSessionSettingsAsync(orgRoute, settings, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/settings/sessions`;\r\n const response = yield HttpService_1.HttpService.put(url, settings, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readAzureSettingsAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/settings/azure`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n updateAzureSettingsAsync(orgRoute, settings, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/settings/azure`;\r\n const response = yield HttpService_1.HttpService.put(url, settings, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readPermissionsAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/settings/permissions`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n updatePermissionsAsync(orgRoute, settings, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/settings/permissions`;\r\n const response = yield HttpService_1.HttpService.put(url, settings, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n restoreAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/restore`;\r\n const response = yield HttpService_1.HttpService.post(url, null, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n patchAsync(orgRoute, changes, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}`;\r\n const response = yield HttpService_1.HttpService.patch(url, changes, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n uploadImageAsync(orgRoute, formData, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/image`;\r\n const response = yield HttpService_1.HttpService.post(url, formData, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n updateThemeAsync(orgRoute, theme, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/theme`;\r\n const response = yield HttpService_1.HttpService.post(url, theme !== null && theme !== void 0 ? theme : null, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n setOrgToken(orgRoute, newToken, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/setOrgToken`;\r\n yield HttpService_1.HttpService.post(url, newToken, options);\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n syncOrgTokenWithAmsContentKeyPolicy(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/syncOrgTokenWithAmsContentKeyPolicy`;\r\n yield HttpService_1.HttpService.put(url, null, options);\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n ensureAmsContentKeyPolicy(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/EnsureAmsContentKeyPolicy`;\r\n const response = yield HttpService_1.HttpService.post(url, null, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readAmsStreamingUrl(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/readAmsStreamingUrl`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n}\r\nexports.OrganizationsService = new OrganizationsServiceClass();\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PeopleService = void 0;\r\nconst HttpService_1 = require(\"../../code/HttpService\");\r\nconst SoundbiteApiConfig_1 = require(\"../../code/SoundbiteApiConfig\");\r\n/**\r\n * Automatically generated endpoint API for the Soundbite.Api.Controllers.PeopleController\r\n **/\r\nclass PeopleServiceClass {\r\n /**\r\n * Automatically generated API call\r\n */\r\n readMeAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/me`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n inviteAsync(orgRoute, invites, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/People/Invite`;\r\n const response = yield HttpService_1.HttpService.post(url, invites, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n updateAsync(orgRoute, personRoute, personFields, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/People/${encodeURIComponent(personRoute)}`;\r\n const response = yield HttpService_1.HttpService.patch(url, personFields, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readAllAsync(orgRoute, pageRequest, options) {\r\n var _a, _b, _c, _d, _e;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/People/Page?&filter=${encodeURIComponent((_a = pageRequest === null || pageRequest === void 0 ? void 0 : pageRequest.filter) !== null && _a !== void 0 ? _a : \"\")}&includesCounts=${encodeURIComponent((_b = pageRequest === null || pageRequest === void 0 ? void 0 : pageRequest.includesCounts) !== null && _b !== void 0 ? _b : \"\")}&personRole=${encodeURIComponent((_c = pageRequest === null || pageRequest === void 0 ? void 0 : pageRequest.personRole) !== null && _c !== void 0 ? _c : \"\")}&skip=${encodeURIComponent((_d = pageRequest === null || pageRequest === void 0 ? void 0 : pageRequest.skip) !== null && _d !== void 0 ? _d : \"\")}&take=${encodeURIComponent((_e = pageRequest === null || pageRequest === void 0 ? void 0 : pageRequest.take) !== null && _e !== void 0 ? _e : \"\")}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n delete(orgRoute, personRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/People/${encodeURIComponent(personRoute)}`;\r\n yield HttpService_1.HttpService.delete(url, options);\r\n });\r\n }\r\n}\r\nexports.PeopleService = new PeopleServiceClass();\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ReportService = void 0;\r\nconst HttpService_1 = require(\"../../code/HttpService\");\r\nconst SoundbiteApiConfig_1 = require(\"../../code/SoundbiteApiConfig\");\r\n/**\r\n * Automatically generated endpoint API for the Soundbite.Api.Controllers.ReportController\r\n **/\r\nclass ReportServiceClass {\r\n /**\r\n * Automatically generated API call\r\n */\r\n activityReportAsync(orgRoute, startUtc, endUtc, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/reports/activity?startUtc=${encodeURIComponent(startUtc !== null && startUtc !== void 0 ? startUtc : \"\")}&endUtc=${encodeURIComponent(endUtc !== null && endUtc !== void 0 ? endUtc : \"\")}`;\r\n const response = yield HttpService_1.HttpService.post(url, null, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n contentReportAsync(orgRoute, startUtc, endUtc, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/reports/content?startUtc=${encodeURIComponent(startUtc !== null && startUtc !== void 0 ? startUtc : \"\")}&endUtc=${encodeURIComponent(endUtc !== null && endUtc !== void 0 ? endUtc : \"\")}`;\r\n const response = yield HttpService_1.HttpService.post(url, null, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n sessionReportAsync(orgRoute, sessionRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/sessions/${encodeURIComponent(sessionRoute)}/reports/content`;\r\n const response = yield HttpService_1.HttpService.post(url, null, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n sessionDetailsReportAsync(orgRoute, sessionRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/sessions/${encodeURIComponent(sessionRoute)}/reports/content/details`;\r\n const response = yield HttpService_1.HttpService.post(url, null, options);\r\n return response;\r\n });\r\n }\r\n}\r\nexports.ReportService = new ReportServiceClass();\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SeriesService = void 0;\r\nconst HttpService_1 = require(\"../../code/HttpService\");\r\nconst SoundbiteApiConfig_1 = require(\"../../code/SoundbiteApiConfig\");\r\n/**\r\n * Automatically generated endpoint API for the Soundbite.Api.Controllers.SeriesController\r\n **/\r\nclass SeriesServiceClass {\r\n /**\r\n * Automatically generated API call\r\n */\r\n readAsync(orgRoute, seriesRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Series/${encodeURIComponent(seriesRoute)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readAllAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Series`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readAllGroupAsync(orgRoute, groupRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/Groups/${encodeURIComponent(groupRoute)}/Series`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n deleteAsync(orgRoute, seriesRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Series/${encodeURIComponent(seriesRoute)}`;\r\n yield HttpService_1.HttpService.delete(url, options);\r\n });\r\n }\r\n}\r\nexports.SeriesService = new SeriesServiceClass();\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionCommentsService = void 0;\r\nconst HttpService_1 = require(\"../../code/HttpService\");\r\nconst SoundbiteApiConfig_1 = require(\"../../code/SoundbiteApiConfig\");\r\n/**\r\n * Automatically generated endpoint API for the Soundbite.Api.Controllers.SessionCommentsController\r\n **/\r\nclass SessionCommentsServiceClass {\r\n /**\r\n * Automatically generated API call\r\n */\r\n readAllSessionComments(orgRoute, sessionRoute, page, options) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/comments?&filter=${encodeURIComponent((_a = page === null || page === void 0 ? void 0 : page.filter) !== null && _a !== void 0 ? _a : \"\")}&includesCounts=${encodeURIComponent((_b = page === null || page === void 0 ? void 0 : page.includesCounts) !== null && _b !== void 0 ? _b : \"\")}&skip=${encodeURIComponent((_c = page === null || page === void 0 ? void 0 : page.skip) !== null && _c !== void 0 ? _c : \"\")}&take=${encodeURIComponent((_d = page === null || page === void 0 ? void 0 : page.take) !== null && _d !== void 0 ? _d : \"\")}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n createSessionComment(orgRoute, sessionRoute, newComment, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/comments`;\r\n const response = yield HttpService_1.HttpService.post(url, newComment, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n updateSessionComment(orgRoute, sessionRoute, commentRoute, newComment, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/comments/${encodeURIComponent(commentRoute)}`;\r\n yield HttpService_1.HttpService.put(url, newComment, options);\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n deleteSessionComment(orgRoute, sessionRoute, commentRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/comments/${encodeURIComponent(commentRoute)}`;\r\n yield HttpService_1.HttpService.delete(url, options);\r\n });\r\n }\r\n}\r\nexports.SessionCommentsService = new SessionCommentsServiceClass();\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionsService = void 0;\r\nconst HttpService_1 = require(\"../../code/HttpService\");\r\nconst SoundbiteApiConfig_1 = require(\"../../code/SoundbiteApiConfig\");\r\nconst index_1 = require(\"../enums/index\");\r\n/**\r\n * Automatically generated endpoint API for the Soundbite.Api.Controllers.SessionsController\r\n **/\r\nclass SessionsServiceClass {\r\n /**\r\n * Automatically generated API call\r\n * DO NOT USE; please check the documentation for its replacement\r\n * @deprecated\r\n */\r\n createAsync_Obsolete(orgRoute, newSession, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions`;\r\n const response = yield HttpService_1.HttpService.post(url, newSession, options);\r\n yield SoundbiteApiConfig_1.SoundbiteApiConfig.clientOpsHandler(response === null || response === void 0 ? void 0 : response.clientOps);\r\n return response.result;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n createAsync(orgRoute, newSession, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/New`;\r\n const response = yield HttpService_1.HttpService.post(url, newSession, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n * DO NOT USE; please check the documentation for its replacement\r\n * @deprecated\r\n */\r\n readAllAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readPendingAsync(orgRoute, page, options) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/Pending?&filter=${encodeURIComponent((_a = page === null || page === void 0 ? void 0 : page.filter) !== null && _a !== void 0 ? _a : \"\")}&includesCounts=${encodeURIComponent((_b = page === null || page === void 0 ? void 0 : page.includesCounts) !== null && _b !== void 0 ? _b : \"\")}&skip=${encodeURIComponent((_c = page === null || page === void 0 ? void 0 : page.skip) !== null && _c !== void 0 ? _c : \"\")}&take=${encodeURIComponent((_d = page === null || page === void 0 ? void 0 : page.take) !== null && _d !== void 0 ? _d : \"\")}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readPastAsync(orgRoute, page, options) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/Past?&filter=${encodeURIComponent((_a = page === null || page === void 0 ? void 0 : page.filter) !== null && _a !== void 0 ? _a : \"\")}&includesCounts=${encodeURIComponent((_b = page === null || page === void 0 ? void 0 : page.includesCounts) !== null && _b !== void 0 ? _b : \"\")}&skip=${encodeURIComponent((_c = page === null || page === void 0 ? void 0 : page.skip) !== null && _c !== void 0 ? _c : \"\")}&take=${encodeURIComponent((_d = page === null || page === void 0 ? void 0 : page.take) !== null && _d !== void 0 ? _d : \"\")}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n * DO NOT USE; please check the documentation for its replacement\r\n * @deprecated\r\n */\r\n readFeedAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Feed`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n * DO NOT USE; please check the documentation for its replacement\r\n * @deprecated\r\n */\r\n readPublicFeedAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Public/Feed`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n * DO NOT USE; please check the documentation for its replacement\r\n * @deprecated\r\n */\r\n readAllGroupSessionsAsync(orgRoute, groupRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/Groups/${encodeURIComponent(groupRoute)}/Sessions`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readGroupPendingAsync(orgRoute, groupRoute, page, options) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Groups/${encodeURIComponent(groupRoute)}/Sessions/Pending?&filter=${encodeURIComponent((_a = page === null || page === void 0 ? void 0 : page.filter) !== null && _a !== void 0 ? _a : \"\")}&includesCounts=${encodeURIComponent((_b = page === null || page === void 0 ? void 0 : page.includesCounts) !== null && _b !== void 0 ? _b : \"\")}&skip=${encodeURIComponent((_c = page === null || page === void 0 ? void 0 : page.skip) !== null && _c !== void 0 ? _c : \"\")}&take=${encodeURIComponent((_d = page === null || page === void 0 ? void 0 : page.take) !== null && _d !== void 0 ? _d : \"\")}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readGroupPastAsync(orgRoute, groupRoute, page, options) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Groups/${encodeURIComponent(groupRoute)}/Sessions/Past?&filter=${encodeURIComponent((_a = page === null || page === void 0 ? void 0 : page.filter) !== null && _a !== void 0 ? _a : \"\")}&includesCounts=${encodeURIComponent((_b = page === null || page === void 0 ? void 0 : page.includesCounts) !== null && _b !== void 0 ? _b : \"\")}&skip=${encodeURIComponent((_c = page === null || page === void 0 ? void 0 : page.skip) !== null && _c !== void 0 ? _c : \"\")}&take=${encodeURIComponent((_d = page === null || page === void 0 ? void 0 : page.take) !== null && _d !== void 0 ? _d : \"\")}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n * DO NOT USE; please check the documentation for its replacement\r\n * @deprecated\r\n */\r\n readGroupFeedAsync(orgRoute, groupRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/Groups/${encodeURIComponent(groupRoute)}/Feed`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n * DO NOT USE; please check the documentation for its replacement\r\n * @deprecated\r\n */\r\n readGroupPublicFeedAsync(orgRoute, groupRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/Organizations/${encodeURIComponent(orgRoute)}/Public/Groups/${encodeURIComponent(groupRoute)}/Feed`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n * DO NOT USE; please check the documentation for its replacement\r\n * @deprecated\r\n */\r\n readRecentlyPublishedAsync(orgRoute, skip = 0, take = 10, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/Published?skip=${encodeURIComponent(skip)}&take=${encodeURIComponent(take)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readAsync(orgRoute, sessionRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readReactionsAsync(orgRoute, sessionRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/reactions`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n summaryAsync(orgRoute, sessionRoute, summaryType = index_1.SessionSummaryType.Paragraph, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/summary?summaryType=${encodeURIComponent(summaryType)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readPublicAsync(orgRoute, sessionRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Public/Sessions/${encodeURIComponent(sessionRoute)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n updateAsync(orgRoute, sessionRoute, session, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}`;\r\n const response = yield HttpService_1.HttpService.put(url, session, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n updateStateAsync(orgRoute, sessionRoute, partUpdate, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/state`;\r\n yield HttpService_1.HttpService.put(url, partUpdate, options);\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n updateReactionAsync(orgRoute, sessionRoute, reactionType = index_1.ParticipantReactionType.None, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/reaction`;\r\n yield HttpService_1.HttpService.put(url, reactionType, options);\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n acknowledgePublicSession(orgRoute, sessionRoute, userRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/public/Sessions/${encodeURIComponent(sessionRoute)}/acknowledge?userRoute=${encodeURIComponent(userRoute !== null && userRoute !== void 0 ? userRoute : \"\")}`;\r\n yield HttpService_1.HttpService.put(url, null, options);\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n deleteAsync(orgRoute, sessionRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}`;\r\n yield HttpService_1.HttpService.delete(url, options);\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n setReminderCalendarEntryId(orgRoute, sessionRoute, reminderCalendarEventId, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/SetReminderCalendarEntryId`;\r\n yield HttpService_1.HttpService.post(url, reminderCalendarEventId, options);\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readParticipants(orgRoute, sessionRoute, includeRoles, page, options) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/Participants/Page?includeRoles=${encodeURIComponent(includeRoles !== null && includeRoles !== void 0 ? includeRoles : \"\")}&&filter=${encodeURIComponent((_a = page === null || page === void 0 ? void 0 : page.filter) !== null && _a !== void 0 ? _a : \"\")}&includesCounts=${encodeURIComponent((_b = page === null || page === void 0 ? void 0 : page.includesCounts) !== null && _b !== void 0 ? _b : \"\")}&skip=${encodeURIComponent((_c = page === null || page === void 0 ? void 0 : page.skip) !== null && _c !== void 0 ? _c : \"\")}&take=${encodeURIComponent((_d = page === null || page === void 0 ? void 0 : page.take) !== null && _d !== void 0 ? _d : \"\")}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readPariticpantsInGroup(orgRoute, sessionRoute, groupRoute, includeRoles, page, options) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/Sessions/${encodeURIComponent(sessionRoute)}/Participants/Groups/${encodeURIComponent(groupRoute)}/Page?includeRoles=${encodeURIComponent(includeRoles !== null && includeRoles !== void 0 ? includeRoles : \"\")}&&filter=${encodeURIComponent((_a = page === null || page === void 0 ? void 0 : page.filter) !== null && _a !== void 0 ? _a : \"\")}&includesCounts=${encodeURIComponent((_b = page === null || page === void 0 ? void 0 : page.includesCounts) !== null && _b !== void 0 ? _b : \"\")}&skip=${encodeURIComponent((_c = page === null || page === void 0 ? void 0 : page.skip) !== null && _c !== void 0 ? _c : \"\")}&take=${encodeURIComponent((_d = page === null || page === void 0 ? void 0 : page.take) !== null && _d !== void 0 ? _d : \"\")}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n}\r\nexports.SessionsService = new SessionsServiceClass();\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SpaService = void 0;\r\nconst HttpService_1 = require(\"../../code/HttpService\");\r\nconst SoundbiteApiConfig_1 = require(\"../../code/SoundbiteApiConfig\");\r\n/**\r\n * Automatically generated endpoint API for the Soundbite.Api.Controllers.SpaController\r\n **/\r\nclass SpaServiceClass {\r\n /**\r\n * Automatically generated API call\r\n * DO NOT USE; please check the documentation for its replacement\r\n * @deprecated\r\n */\r\n spaInit(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/spa/init?orgRoute=${encodeURIComponent(orgRoute !== null && orgRoute !== void 0 ? orgRoute : \"\")}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n load(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/spa/load?orgRoute=${encodeURIComponent(orgRoute !== null && orgRoute !== void 0 ? orgRoute : \"\")}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n getToken(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/getToken/${encodeURIComponent(orgRoute)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Returns a default value to indicate we're alive\r\n */\r\n ping(options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Returns a default value to indicate we're alive\r\n */\r\n version(options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/version`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n}\r\nexports.SpaService = new SpaServiceClass();\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SyncService = void 0;\r\nconst HttpService_1 = require(\"../../code/HttpService\");\r\nconst SoundbiteApiConfig_1 = require(\"../../code/SoundbiteApiConfig\");\r\n/**\r\n * Automatically generated endpoint API for the Soundbite.Api.Controllers.SyncController\r\n **/\r\nclass SyncServiceClass {\r\n /**\r\n * Automatically generated API call\r\n */\r\n validateAsync(orgRoute, orgConfig, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/sync/validate`;\r\n const response = yield HttpService_1.HttpService.post(url, orgConfig !== null && orgConfig !== void 0 ? orgConfig : null, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readConfigAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/sync/config`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n updateConfigAsync(orgRoute, orgConfig, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/sync/config`;\r\n const response = yield HttpService_1.HttpService.post(url, orgConfig !== null && orgConfig !== void 0 ? orgConfig : null, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n syncAsync(orgRoute, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/sync`;\r\n const response = yield HttpService_1.HttpService.post(url, null, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readResults(orgRoute, page, options) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/sync/results?&filter=${encodeURIComponent((_a = page === null || page === void 0 ? void 0 : page.filter) !== null && _a !== void 0 ? _a : \"\")}&includesCounts=${encodeURIComponent((_b = page === null || page === void 0 ? void 0 : page.includesCounts) !== null && _b !== void 0 ? _b : \"\")}&skip=${encodeURIComponent((_c = page === null || page === void 0 ? void 0 : page.skip) !== null && _c !== void 0 ? _c : \"\")}&take=${encodeURIComponent((_d = page === null || page === void 0 ? void 0 : page.take) !== null && _d !== void 0 ? _d : \"\")}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readUsersAsync(orgRoute, page, options) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/sync/users/page?&filter=${encodeURIComponent((_a = page === null || page === void 0 ? void 0 : page.filter) !== null && _a !== void 0 ? _a : \"\")}&skipToken=${encodeURIComponent((_b = page === null || page === void 0 ? void 0 : page.skipToken) !== null && _b !== void 0 ? _b : \"\")}&take=${encodeURIComponent((_c = page === null || page === void 0 ? void 0 : page.take) !== null && _c !== void 0 ? _c : \"\")}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readUserAsync(orgRoute, userId, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/sync/users/${encodeURIComponent(userId)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readGroupsAsync(orgRoute, page, options) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/sync/groups/page?&filter=${encodeURIComponent((_a = page === null || page === void 0 ? void 0 : page.filter) !== null && _a !== void 0 ? _a : \"\")}&skipToken=${encodeURIComponent((_b = page === null || page === void 0 ? void 0 : page.skipToken) !== null && _b !== void 0 ? _b : \"\")}&take=${encodeURIComponent((_c = page === null || page === void 0 ? void 0 : page.take) !== null && _c !== void 0 ? _c : \"\")}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n readGroupAsync(orgRoute, groupId, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/organizations/${encodeURIComponent(orgRoute)}/sync/groups/${encodeURIComponent(groupId)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n}\r\nexports.SyncService = new SyncServiceClass();\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * Auto-Generated File - do not modify because all changes will be lost\r\n **************************************************************************************************/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UsersService = void 0;\r\nconst HttpService_1 = require(\"../../code/HttpService\");\r\nconst SoundbiteApiConfig_1 = require(\"../../code/SoundbiteApiConfig\");\r\n/**\r\n * Automatically generated endpoint API for the Soundbite.Api.Controllers.UsersController\r\n **/\r\nclass UsersServiceClass {\r\n /**\r\n * Automatically generated API call\r\n */\r\n upsertMeAsync(userInfo, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/me`;\r\n const response = yield HttpService_1.HttpService.post(url, userInfo, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n updateNotificationAsync(notificationSettings, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/me/notifications/settings`;\r\n yield HttpService_1.HttpService.post(url, notificationSettings, options);\r\n });\r\n }\r\n /**\r\n * Uploads a new \"avatar\" image for the current user. The URL returned in the ImageSrc\r\n * property contains a short-lived token used to access the image.\r\n */\r\n upsertMyImageAsync(blob, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/me/image`;\r\n const response = yield HttpService_1.HttpService.post(url, blob, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Retrieves user details for the current user.\r\n */\r\n readMeAsync(options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/me`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n getRouteFromUniversalId(universalId, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/users/routeFromUid/${encodeURIComponent(universalId)}`;\r\n const response = yield HttpService_1.HttpService.get(url, options);\r\n return response;\r\n });\r\n }\r\n /**\r\n * Automatically generated API call\r\n */\r\n inviteAsync(invites, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const url = SoundbiteApiConfig_1.SoundbiteApiConfig.ApiPrefixUrl + `/users`;\r\n yield HttpService_1.HttpService.post(url, invites, options);\r\n });\r\n }\r\n}\r\nexports.UsersService = new UsersServiceClass();\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AxiosHttpAdapter = void 0;\r\nconst axios_1 = __importDefault(require(\"axios\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\n/**\r\n * IHttpAdapter implementation for the Axios library.\r\n */\r\nclass AxiosHttpAdapter {\r\n /**\r\n * Issues an HTTP request with the DELETE verb to the specified url.\r\n * @param url - URL to which the request is sent.\r\n * @param options - HTTP request options used to customize the request.\r\n */\r\n delete(url, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const config = yield this.getConfig(options);\r\n const response = yield axios_1.default.delete(url, config);\r\n return response === null || response === void 0 ? void 0 : response.data;\r\n });\r\n }\r\n /**\r\n * Issues an HTTP request with the GET verb to the specified url.\r\n * @param url - URL to which the request is sent.\r\n * @param options - HTTP request options used to customize the request.\r\n */\r\n get(url, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const config = yield this.getConfig(options);\r\n const response = yield axios_1.default.get(url, config);\r\n return response === null || response === void 0 ? void 0 : response.data;\r\n });\r\n }\r\n /**\r\n * Issues an HTTP request with the PATCH verb to the specified url.\r\n * @param url - URL to which the request is sent.\r\n * @data data - data sent in the body of the request.\r\n * @param options - HTTP request options used to customize the request.\r\n */\r\n patch(url, data, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const config = yield this.getConfig(options);\r\n const response = yield axios_1.default.patch(url, data, config);\r\n return response === null || response === void 0 ? void 0 : response.data;\r\n });\r\n }\r\n /**\r\n * Issues an HTTP request with the POST verb to the specified url.\r\n * @param url - URL to which the request is sent.\r\n * @data data - data sent in the body of the request.\r\n * @param options - HTTP request options used to customize the request.\r\n */\r\n post(url, data, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const config = yield this.getConfig(options);\r\n const response = yield axios_1.default.post(url, data, config);\r\n return response === null || response === void 0 ? void 0 : response.data;\r\n });\r\n }\r\n /**\r\n * Issues an HTTP request with the PUT verb to the specified url.\r\n * @param url - URL to which the request is sent.\r\n * @data data - data sent in the body of the request.\r\n * @param options - HTTP request options used to customize the request.\r\n */\r\n put(url, data, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const config = yield this.getConfig(options);\r\n const response = yield axios_1.default.put(url, data, config);\r\n return response === null || response === void 0 ? void 0 : response.data;\r\n });\r\n }\r\n static onProgressHandler(progressEvent, options) {\r\n if ((options === null || options === void 0 ? void 0 : options.onProgress) == null) {\r\n return;\r\n }\r\n let percentage = (progressEvent.loaded / progressEvent.total) * 100;\r\n if (percentage > 100) {\r\n percentage = 100;\r\n }\r\n options.onProgress(percentage);\r\n }\r\n /**\r\n * Responsible for building an Axios request configuration containing the bearer token\r\n * @param options - HTTP request options used to customize the request.\r\n */\r\n getConfig(options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let hasConfig = !!(options === null || options === void 0 ? void 0 : options.headers);\r\n // Setup the result and merge headers from the options parameter into the configuration object\r\n let result = {\r\n headers: (options === null || options === void 0 ? void 0 : options.headers) ? Object.assign({}, options.headers) : {},\r\n };\r\n if ((options === null || options === void 0 ? void 0 : options.includeToken) !== false) {\r\n const token = yield api_1.SoundbiteApiConfig.getToken();\r\n if (token) {\r\n result.headers.Authorization = `Bearer ${token}`;\r\n hasConfig = true;\r\n }\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.contentType) {\r\n if (options.contentType !== \"\") {\r\n result.headers[\"Content-Type\"] = options.contentType;\r\n hasConfig = true;\r\n }\r\n }\r\n else {\r\n result.headers[\"Content-Type\"] = \"application/json\";\r\n hasConfig = true;\r\n }\r\n if ((options === null || options === void 0 ? void 0 : options.onProgress) != null) {\r\n result.onUploadProgress = (progress) => AxiosHttpAdapter.onProgressHandler(progress, options);\r\n result.onDownloadProgress = (progress) => AxiosHttpAdapter.onProgressHandler(progress, options);\r\n }\r\n return hasConfig ? result : undefined;\r\n });\r\n }\r\n}\r\nexports.AxiosHttpAdapter = AxiosHttpAdapter;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SbBootstrapStyles = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = __importStar(require(\"react\"));\r\nconst tinycolor2_1 = __importDefault(require(\"tinycolor2\"));\r\nconst GlobalTheme_1 = require(\"./GlobalTheme\");\r\nconst bootstrapButton = (styleName, neutral, color, colorHigh, colorLow) => {\r\n return `\r\n .btn-${styleName} {\r\n color: ${neutral};\r\n background-color: ${color};\r\n border-color: ${color};\r\n }\r\n\r\n .btn-${styleName}:hover,\r\n .btn-${styleName}.hover {\r\n color: ${neutral};\r\n background-color: ${colorHigh};\r\n border-color: ${colorHigh};\r\n }\r\n\r\n .btn-${styleName}:focus,\r\n .btn-${styleName}.focus {\r\n background-color: ${colorHigh};\r\n border-color: ${colorHigh};\r\n box-shadow: 0 0 0 0.2rem ${(0, tinycolor2_1.default)(colorLow)\r\n .setAlpha(0.5)\r\n .toHex8String()};\r\n }\r\n\r\n .btn-${styleName}.disabled,\r\n .btn-${styleName}:disabled {\r\n background-color: ${colorLow};\r\n border-color: ${colorLow};\r\n }\r\n\r\n .btn-${styleName}:not(:disabled):not(.disabled):active,\r\n .btn-${styleName}:not(:disabled):not(.disabled).active,\r\n .show > .btn-${styleName}.dropdown-toggle {\r\n background-color: ${colorHigh};\r\n border-color: ${colorHigh};\r\n }\r\n\r\n .btn-${styleName}:not(:disabled):not(.disabled):active:focus, \r\n .btn-${styleName}:not(:disabled):not(.disabled).active:focus,\r\n .btn-${styleName}:not(:disabled):not(.disabled).active.focus,\r\n .show > .btn-${styleName}.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem ${(0, tinycolor2_1.default)(colorLow)\r\n .setAlpha(0.5)\r\n .toHex8String()};\r\n }\r\n\r\n .btn-outline-${styleName} {\r\n color: ${color};\r\n border-color: ${color};\r\n }\r\n\r\n .btn-outline-${styleName}:not(:disabled):hover,\r\n .btn-outline-${styleName}:not(:disabled).hover {\r\n color: ${neutral};\r\n background-color: ${color};\r\n border-color: ${color};\r\n }\r\n\r\n .btn-outline-${styleName}:focus,\r\n .btn-outline-${styleName}.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\r\n }\r\n\r\n .btn-outline-${styleName}.disabled,\r\n .btn-outline-${styleName}:disabled {\r\n color: ${color};\r\n background-color: ${GlobalTheme_1.GlobalTheme.current.colors.transparent};\r\n }\r\n\r\n .btn-outline-${styleName}:not(:disabled):not(.disabled):active, \r\n .btn-outline-${styleName}:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-${styleName}.dropdown-toggle {\r\n color: ${neutral};\r\n background-color: ${color};\r\n border-color: ${color};\r\n }\r\n\r\n .btn-outline-${styleName}:not(:disabled):not(.disabled):active:focus,\r\n .btn-outline-${styleName}:not(:disabled):not(.disabled).active:focus,\r\n .btn-outline-${styleName}:not(:disabled):not(.disabled).active.focus,\r\n .show > .btn-outline-${styleName}.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem ${(0, tinycolor2_1.default)(colorLow)\r\n .setAlpha(0.5)\r\n .toHex8String()};\r\n }\r\n `;\r\n};\r\nconst getStyles = () => {\r\n const colors = GlobalTheme_1.GlobalTheme.current.colors;\r\n const bootstrapCss = (0, react_1.css) `\r\n /*!\r\n * Bootstrap v4.6.0 (https://getbootstrap.com/)\r\n * Copyright 2011-2021 The Bootstrap Authors\r\n * Copyright 2011-2021 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n *\r\n * NOTE: Modified by Soundbite to accept parameterized styles\r\n */\r\n:root {\r\n --blue: ${colors.hues.blue};\r\n --indigo: ${colors.hues.indigo};\r\n --purple: ${colors.hues.violet};\r\n --pink: ${colors.hues.pink};\r\n --red: ${colors.hues.red};\r\n --orange: ${colors.hues.orange};\r\n --yellow: ${colors.hues.yellow};\r\n --green: ${colors.hues.green};\r\n --teal: ${colors.bootstrap.info};\r\n --cyan: ${colors.hues.cyan};\r\n --white: ${colors.neutrals.min};\r\n --gray: ${colors.neutrals.n700};\r\n --gray-dark: ${colors.neutrals.n800};\r\n --light: ${colors.neutrals.n400};\r\n --lighter: ${colors.neutrals.n200};\r\n --primary: ${colors.bootstrap.primary};\r\n --secondary: ${colors.bootstrap.secondary};\r\n --success: ${colors.hues.green};\r\n --info: ${colors.bootstrap.info};\r\n --warning: ${colors.bootstrap.warning};\r\n --danger: ${colors.bootstrap.danger};\r\n --dark: ${colors.neutrals.n900};\r\n --default: ${colors.bootstrap.default};\r\n --darker: ${colors.neutrals.min};\r\n --breakpoint-xs: 0;\r\n --breakpoint-sm: 576px;\r\n --breakpoint-md: 768px;\r\n --breakpoint-lg: 992px;\r\n --breakpoint-xl: 1200px;\r\n --font-family-sans-serif: ${GlobalTheme_1.GlobalTheme.current.fonts.fontFamily};\r\n --font-family-monospace: ${GlobalTheme_1.GlobalTheme.current.fonts.fontFamilyMono};\r\n}\r\n\r\n*,\r\n*::before,\r\n*::after {\r\n box-sizing: border-box;\r\n}\r\n\r\nhtml {\r\n font-family: sans-serif;\r\n line-height: 1.15;\r\n -webkit-text-size-adjust: 100%;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n background-color: ${colors.neutrals.background};\r\n}\r\n\r\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\r\n display: block;\r\n}\r\n\r\nbody {\r\n margin: 0;\r\n font-family: ${GlobalTheme_1.GlobalTheme.current.fonts.fontFamily};\r\n font-size: 1rem;\r\n font-weight: 400;\r\n line-height: 1.5;\r\n color: ${colors.neutrals.n900};\r\n text-align: left;\r\n background-color: ${colors.neutrals.background};\r\n}\r\n\r\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\r\n outline: 0 !important;\r\n}\r\n\r\nhr {\r\n box-sizing: content-box;\r\n height: 0;\r\n overflow: visible;\r\n}\r\n\r\nh1, h2, h3, h4, h5, h6 {\r\n margin-top: 0;\r\n margin-bottom: 0.5rem;\r\n}\r\n\r\np {\r\n margin-top: 0;\r\n margin-bottom: 1rem;\r\n}\r\n\r\nabbr[title],\r\nabbr[data-original-title] {\r\n text-decoration: underline;\r\n -webkit-text-decoration: underline dotted;\r\n text-decoration: underline dotted;\r\n cursor: help;\r\n border-bottom: 0;\r\n -webkit-text-decoration-skip-ink: none;\r\n text-decoration-skip-ink: none;\r\n}\r\n\r\naddress {\r\n margin-bottom: 1rem;\r\n font-style: normal;\r\n line-height: inherit;\r\n}\r\n\r\nol,\r\nul,\r\ndl {\r\n margin-top: 0;\r\n margin-bottom: 1rem;\r\n}\r\n\r\nol ol,\r\nul ul,\r\nol ul,\r\nul ol {\r\n margin-bottom: 0;\r\n}\r\n\r\ndt {\r\n font-weight: 700;\r\n}\r\n\r\ndd {\r\n margin-bottom: .5rem;\r\n margin-left: 0;\r\n}\r\n\r\nblockquote {\r\n margin: 0 0 1rem;\r\n}\r\n\r\nb,\r\nstrong {\r\n font-weight: bolder;\r\n}\r\n\r\nsmall {\r\n font-size: 80%;\r\n}\r\n\r\nsub,\r\nsup {\r\n position: relative;\r\n font-size: 75%;\r\n line-height: 0;\r\n vertical-align: baseline;\r\n}\r\n\r\nsub {\r\n bottom: -.25em;\r\n}\r\n\r\nsup {\r\n top: -.5em;\r\n}\r\n\r\na {\r\n color: ${colors.bootstrap.primary};\r\n text-decoration: none;\r\n background-color: ${colors.transparent};\r\n}\r\n\r\na:hover {\r\n color: #0056b3;\r\n text-decoration: underline;\r\n}\r\n\r\na:not([href]):not([class]) {\r\n color: inherit;\r\n text-decoration: none;\r\n}\r\n\r\na:not([href]):not([class]):hover {\r\n color: inherit;\r\n text-decoration: none;\r\n}\r\n\r\npre,\r\ncode,\r\nkbd,\r\nsamp {\r\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\r\n font-size: 1em;\r\n}\r\n\r\npre {\r\n margin-top: 0;\r\n margin-bottom: 1rem;\r\n overflow: auto;\r\n -ms-overflow-style: scrollbar;\r\n}\r\n\r\nfigure {\r\n margin: 0 0 1rem;\r\n}\r\n\r\nimg {\r\n vertical-align: middle;\r\n border-style: none;\r\n}\r\n\r\nsvg {\r\n overflow: hidden;\r\n vertical-align: middle;\r\n}\r\n\r\ntable {\r\n border-collapse: collapse;\r\n}\r\n\r\ncaption {\r\n padding-top: 0.75rem;\r\n padding-bottom: 0.75rem;\r\n color: ${colors.neutrals.n700};\r\n text-align: left;\r\n caption-side: bottom;\r\n}\r\n\r\nth {\r\n text-align: inherit;\r\n text-align: -webkit-match-parent;\r\n}\r\n\r\nlabel {\r\n display: inline-block;\r\n margin-bottom: 0.5rem;\r\n}\r\n\r\nbutton {\r\n border-radius: 0;\r\n}\r\n\r\nbutton:focus:not(:focus-visible) {\r\n outline: 0;\r\n}\r\n\r\ninput,\r\nbutton,\r\nselect,\r\noptgroup,\r\ntextarea {\r\n margin: 0;\r\n font-family: inherit;\r\n font-size: inherit;\r\n line-height: inherit;\r\n}\r\n\r\nbutton,\r\ninput {\r\n overflow: visible;\r\n}\r\n\r\nbutton,\r\nselect {\r\n text-transform: none;\r\n}\r\n\r\n[role=\"button\"] {\r\n cursor: pointer;\r\n}\r\n\r\nselect {\r\n word-wrap: normal;\r\n}\r\n\r\nbutton,\r\n[type=\"button\"],\r\n[type=\"reset\"],\r\n[type=\"submit\"] {\r\n -webkit-appearance: button;\r\n}\r\n\r\nbutton:not(:disabled),\r\n[type=\"button\"]:not(:disabled),\r\n[type=\"reset\"]:not(:disabled),\r\n[type=\"submit\"]:not(:disabled) {\r\n cursor: pointer;\r\n}\r\n\r\nbutton::-moz-focus-inner,\r\n[type=\"button\"]::-moz-focus-inner,\r\n[type=\"reset\"]::-moz-focus-inner,\r\n[type=\"submit\"]::-moz-focus-inner {\r\n padding: 0;\r\n border-style: none;\r\n}\r\n\r\ninput[type=\"radio\"],\r\ninput[type=\"checkbox\"] {\r\n box-sizing: border-box;\r\n padding: 0;\r\n}\r\n\r\ntextarea {\r\n overflow: auto;\r\n resize: vertical;\r\n}\r\n\r\nfieldset {\r\n min-width: 0;\r\n padding: 0;\r\n margin: 0;\r\n border: 0;\r\n}\r\n\r\nlegend {\r\n display: block;\r\n width: 100%;\r\n max-width: 100%;\r\n padding: 0;\r\n margin-bottom: .5rem;\r\n font-size: 1.5rem;\r\n line-height: inherit;\r\n color: inherit;\r\n white-space: normal;\r\n}\r\n\r\nprogress {\r\n vertical-align: baseline;\r\n}\r\n\r\n[type=\"number\"]::-webkit-inner-spin-button,\r\n[type=\"number\"]::-webkit-outer-spin-button {\r\n height: auto;\r\n}\r\n\r\n[type=\"search\"] {\r\n outline-offset: -2px;\r\n -webkit-appearance: none;\r\n}\r\n\r\n[type=\"search\"]::-webkit-search-decoration {\r\n -webkit-appearance: none;\r\n}\r\n\r\n::-webkit-file-upload-button {\r\n font: inherit;\r\n -webkit-appearance: button;\r\n}\r\n\r\noutput {\r\n display: inline-block;\r\n}\r\n\r\nsummary {\r\n display: list-item;\r\n cursor: pointer;\r\n}\r\n\r\ntemplate {\r\n display: none;\r\n}\r\n\r\n[hidden] {\r\n display: none !important;\r\n}\r\n\r\nh1, h2, h3, h4, h5, h6,\r\n.h1, .h2, .h3, .h4, .h5, .h6 {\r\n margin-bottom: 0.5rem;\r\n font-weight: 500;\r\n line-height: 1.2;\r\n}\r\n\r\nh1, .h1 {\r\n font-size: 2.5rem;\r\n}\r\n\r\nh2, .h2 {\r\n font-size: 2rem;\r\n}\r\n\r\nh3, .h3 {\r\n font-size: 1.75rem;\r\n}\r\n\r\nh4, .h4 {\r\n font-size: 1.5rem;\r\n}\r\n\r\nh5, .h5 {\r\n font-size: 1.25rem;\r\n}\r\n\r\nh6, .h6 {\r\n font-size: 1rem;\r\n}\r\n\r\n.lead {\r\n font-size: 1.25rem;\r\n font-weight: 300;\r\n}\r\n\r\n.display-1 {\r\n font-size: 6rem;\r\n font-weight: 300;\r\n line-height: 1.2;\r\n}\r\n\r\n.display-2 {\r\n font-size: 5.5rem;\r\n font-weight: 300;\r\n line-height: 1.2;\r\n}\r\n\r\n.display-3 {\r\n font-size: 4.5rem;\r\n font-weight: 300;\r\n line-height: 1.2;\r\n}\r\n\r\n.display-4 {\r\n font-size: 3.5rem;\r\n font-weight: 300;\r\n line-height: 1.2;\r\n}\r\n\r\nhr {\r\n margin-top: 1rem;\r\n margin-bottom: 1rem;\r\n border: 0;\r\n border-top: 1px solid rgba(0, 0, 0, 0.1);\r\n}\r\n\r\nsmall,\r\n.small {\r\n font-size: 80%;\r\n font-weight: 400;\r\n}\r\n\r\nmark,\r\n.mark {\r\n padding: 0.2em;\r\n background-color: #fcf8e3;\r\n}\r\n\r\n.list-unstyled {\r\n padding-left: 0;\r\n list-style: none;\r\n}\r\n\r\n.list-inline {\r\n padding-left: 0;\r\n list-style: none;\r\n}\r\n\r\n.list-inline-item {\r\n display: inline-block;\r\n}\r\n\r\n.list-inline-item:not(:last-child) {\r\n margin-right: 0.5rem;\r\n}\r\n\r\n.initialism {\r\n font-size: 90%;\r\n text-transform: uppercase;\r\n}\r\n\r\n.blockquote {\r\n margin-bottom: 1rem;\r\n font-size: 1.25rem;\r\n}\r\n\r\n.blockquote-footer {\r\n display: block;\r\n font-size: 80%;\r\n color: ${colors.neutrals.n700};\r\n}\r\n\r\n.blockquote-footer::before {\r\n content: \"\\\\2014\\\\00A0\";\r\n}\r\n\r\n.img-fluid {\r\n max-width: 100%;\r\n height: auto;\r\n}\r\n\r\n.img-thumbnail {\r\n padding: 0.25rem;\r\n background-color: ${colors.neutrals.min};\r\n border: 1px solid ${colors.neutrals.n300};\r\n border-radius: 0.25rem;\r\n max-width: 100%;\r\n height: auto;\r\n}\r\n\r\n.figure {\r\n display: inline-block;\r\n}\r\n\r\n.figure-img {\r\n margin-bottom: 0.5rem;\r\n line-height: 1;\r\n}\r\n\r\n.figure-caption {\r\n font-size: 90%;\r\n color: ${colors.neutrals.n700};\r\n}\r\n\r\ncode {\r\n font-size: 87.5%;\r\n color: #e83e8c;\r\n word-wrap: break-word;\r\n}\r\n\r\na > code {\r\n color: inherit;\r\n}\r\n\r\nkbd {\r\n padding: 0.2rem 0.4rem;\r\n font-size: 87.5%;\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.n900};\r\n border-radius: 0.2rem;\r\n}\r\n\r\nkbd kbd {\r\n padding: 0;\r\n font-size: 100%;\r\n font-weight: 700;\r\n}\r\n\r\npre {\r\n display: block;\r\n font-size: 87.5%;\r\n color: ${colors.neutrals.n900};\r\n}\r\n\r\npre code {\r\n font-size: inherit;\r\n color: inherit;\r\n word-break: normal;\r\n}\r\n\r\n.pre-scrollable {\r\n max-height: 340px;\r\n overflow-y: scroll;\r\n}\r\n\r\n.container,\r\n.container-fluid,\r\n.container-sm,\r\n.container-md,\r\n.container-lg,\r\n.container-xl {\r\n width: 100%;\r\n padding-right: 15px;\r\n padding-left: 15px;\r\n margin-right: auto;\r\n margin-left: auto;\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .container, .container-sm {\r\n max-width: 540px;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .container, .container-sm, .container-md {\r\n max-width: 720px;\r\n }\r\n}\r\n\r\n@media (min-width: 992px) {\r\n .container, .container-sm, .container-md, .container-lg {\r\n max-width: 960px;\r\n }\r\n}\r\n\r\n@media (min-width: 1200px) {\r\n .container, .container-sm, .container-md, .container-lg, .container-xl {\r\n max-width: 1140px;\r\n }\r\n}\r\n\r\n.row {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n margin-right: -15px;\r\n margin-left: -15px;\r\n}\r\n\r\n.no-gutters {\r\n margin-right: 0;\r\n margin-left: 0;\r\n}\r\n\r\n.no-gutters > .col,\r\n.no-gutters > [class*=\"col-\"] {\r\n padding-right: 0;\r\n padding-left: 0;\r\n}\r\n\r\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\r\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\r\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\r\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\r\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\r\n.col-xl-auto {\r\n position: relative;\r\n width: 100%;\r\n padding-right: 15px;\r\n padding-left: 15px;\r\n}\r\n\r\n.col {\r\n -ms-flex-preferred-size: 0;\r\n flex-basis: 0;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n max-width: 100%;\r\n}\r\n\r\n.row-cols-1 > * {\r\n -ms-flex: 0 0 100%;\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n}\r\n\r\n.row-cols-2 > * {\r\n -ms-flex: 0 0 50%;\r\n flex: 0 0 50%;\r\n max-width: 50%;\r\n}\r\n\r\n.row-cols-3 > * {\r\n -ms-flex: 0 0 33.333333%;\r\n flex: 0 0 33.333333%;\r\n max-width: 33.333333%;\r\n}\r\n\r\n.row-cols-4 > * {\r\n -ms-flex: 0 0 25%;\r\n flex: 0 0 25%;\r\n max-width: 25%;\r\n}\r\n\r\n.row-cols-5 > * {\r\n -ms-flex: 0 0 20%;\r\n flex: 0 0 20%;\r\n max-width: 20%;\r\n}\r\n\r\n.row-cols-6 > * {\r\n -ms-flex: 0 0 16.666667%;\r\n flex: 0 0 16.666667%;\r\n max-width: 16.666667%;\r\n}\r\n\r\n.col-auto {\r\n -ms-flex: 0 0 auto;\r\n flex: 0 0 auto;\r\n width: auto;\r\n max-width: 100%;\r\n}\r\n\r\n.col-1 {\r\n -ms-flex: 0 0 8.333333%;\r\n flex: 0 0 8.333333%;\r\n max-width: 8.333333%;\r\n}\r\n\r\n.col-2 {\r\n -ms-flex: 0 0 16.666667%;\r\n flex: 0 0 16.666667%;\r\n max-width: 16.666667%;\r\n}\r\n\r\n.col-3 {\r\n -ms-flex: 0 0 25%;\r\n flex: 0 0 25%;\r\n max-width: 25%;\r\n}\r\n\r\n.col-4 {\r\n -ms-flex: 0 0 33.333333%;\r\n flex: 0 0 33.333333%;\r\n max-width: 33.333333%;\r\n}\r\n\r\n.col-5 {\r\n -ms-flex: 0 0 41.666667%;\r\n flex: 0 0 41.666667%;\r\n max-width: 41.666667%;\r\n}\r\n\r\n.col-6 {\r\n -ms-flex: 0 0 50%;\r\n flex: 0 0 50%;\r\n max-width: 50%;\r\n}\r\n\r\n.col-7 {\r\n -ms-flex: 0 0 58.333333%;\r\n flex: 0 0 58.333333%;\r\n max-width: 58.333333%;\r\n}\r\n\r\n.col-8 {\r\n -ms-flex: 0 0 66.666667%;\r\n flex: 0 0 66.666667%;\r\n max-width: 66.666667%;\r\n}\r\n\r\n.col-9 {\r\n -ms-flex: 0 0 75%;\r\n flex: 0 0 75%;\r\n max-width: 75%;\r\n}\r\n\r\n.col-10 {\r\n -ms-flex: 0 0 83.333333%;\r\n flex: 0 0 83.333333%;\r\n max-width: 83.333333%;\r\n}\r\n\r\n.col-11 {\r\n -ms-flex: 0 0 91.666667%;\r\n flex: 0 0 91.666667%;\r\n max-width: 91.666667%;\r\n}\r\n\r\n.col-12 {\r\n -ms-flex: 0 0 100%;\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n}\r\n\r\n.order-first {\r\n -ms-flex-order: -1;\r\n order: -1;\r\n}\r\n\r\n.order-last {\r\n -ms-flex-order: 13;\r\n order: 13;\r\n}\r\n\r\n.order-0 {\r\n -ms-flex-order: 0;\r\n order: 0;\r\n}\r\n\r\n.order-1 {\r\n -ms-flex-order: 1;\r\n order: 1;\r\n}\r\n\r\n.order-2 {\r\n -ms-flex-order: 2;\r\n order: 2;\r\n}\r\n\r\n.order-3 {\r\n -ms-flex-order: 3;\r\n order: 3;\r\n}\r\n\r\n.order-4 {\r\n -ms-flex-order: 4;\r\n order: 4;\r\n}\r\n\r\n.order-5 {\r\n -ms-flex-order: 5;\r\n order: 5;\r\n}\r\n\r\n.order-6 {\r\n -ms-flex-order: 6;\r\n order: 6;\r\n}\r\n\r\n.order-7 {\r\n -ms-flex-order: 7;\r\n order: 7;\r\n}\r\n\r\n.order-8 {\r\n -ms-flex-order: 8;\r\n order: 8;\r\n}\r\n\r\n.order-9 {\r\n -ms-flex-order: 9;\r\n order: 9;\r\n}\r\n\r\n.order-10 {\r\n -ms-flex-order: 10;\r\n order: 10;\r\n}\r\n\r\n.order-11 {\r\n -ms-flex-order: 11;\r\n order: 11;\r\n}\r\n\r\n.order-12 {\r\n -ms-flex-order: 12;\r\n order: 12;\r\n}\r\n\r\n.offset-1 {\r\n margin-left: 8.333333%;\r\n}\r\n\r\n.offset-2 {\r\n margin-left: 16.666667%;\r\n}\r\n\r\n.offset-3 {\r\n margin-left: 25%;\r\n}\r\n\r\n.offset-4 {\r\n margin-left: 33.333333%;\r\n}\r\n\r\n.offset-5 {\r\n margin-left: 41.666667%;\r\n}\r\n\r\n.offset-6 {\r\n margin-left: 50%;\r\n}\r\n\r\n.offset-7 {\r\n margin-left: 58.333333%;\r\n}\r\n\r\n.offset-8 {\r\n margin-left: 66.666667%;\r\n}\r\n\r\n.offset-9 {\r\n margin-left: 75%;\r\n}\r\n\r\n.offset-10 {\r\n margin-left: 83.333333%;\r\n}\r\n\r\n.offset-11 {\r\n margin-left: 91.666667%;\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .col-sm {\r\n -ms-flex-preferred-size: 0;\r\n flex-basis: 0;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n max-width: 100%;\r\n }\r\n .row-cols-sm-1 > * {\r\n -ms-flex: 0 0 100%;\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n }\r\n .row-cols-sm-2 > * {\r\n -ms-flex: 0 0 50%;\r\n flex: 0 0 50%;\r\n max-width: 50%;\r\n }\r\n .row-cols-sm-3 > * {\r\n -ms-flex: 0 0 33.333333%;\r\n flex: 0 0 33.333333%;\r\n max-width: 33.333333%;\r\n }\r\n .row-cols-sm-4 > * {\r\n -ms-flex: 0 0 25%;\r\n flex: 0 0 25%;\r\n max-width: 25%;\r\n }\r\n .row-cols-sm-5 > * {\r\n -ms-flex: 0 0 20%;\r\n flex: 0 0 20%;\r\n max-width: 20%;\r\n }\r\n .row-cols-sm-6 > * {\r\n -ms-flex: 0 0 16.666667%;\r\n flex: 0 0 16.666667%;\r\n max-width: 16.666667%;\r\n }\r\n .col-sm-auto {\r\n -ms-flex: 0 0 auto;\r\n flex: 0 0 auto;\r\n width: auto;\r\n max-width: 100%;\r\n }\r\n .col-sm-1 {\r\n -ms-flex: 0 0 8.333333%;\r\n flex: 0 0 8.333333%;\r\n max-width: 8.333333%;\r\n }\r\n .col-sm-2 {\r\n -ms-flex: 0 0 16.666667%;\r\n flex: 0 0 16.666667%;\r\n max-width: 16.666667%;\r\n }\r\n .col-sm-3 {\r\n -ms-flex: 0 0 25%;\r\n flex: 0 0 25%;\r\n max-width: 25%;\r\n }\r\n .col-sm-4 {\r\n -ms-flex: 0 0 33.333333%;\r\n flex: 0 0 33.333333%;\r\n max-width: 33.333333%;\r\n }\r\n .col-sm-5 {\r\n -ms-flex: 0 0 41.666667%;\r\n flex: 0 0 41.666667%;\r\n max-width: 41.666667%;\r\n }\r\n .col-sm-6 {\r\n -ms-flex: 0 0 50%;\r\n flex: 0 0 50%;\r\n max-width: 50%;\r\n }\r\n .col-sm-7 {\r\n -ms-flex: 0 0 58.333333%;\r\n flex: 0 0 58.333333%;\r\n max-width: 58.333333%;\r\n }\r\n .col-sm-8 {\r\n -ms-flex: 0 0 66.666667%;\r\n flex: 0 0 66.666667%;\r\n max-width: 66.666667%;\r\n }\r\n .col-sm-9 {\r\n -ms-flex: 0 0 75%;\r\n flex: 0 0 75%;\r\n max-width: 75%;\r\n }\r\n .col-sm-10 {\r\n -ms-flex: 0 0 83.333333%;\r\n flex: 0 0 83.333333%;\r\n max-width: 83.333333%;\r\n }\r\n .col-sm-11 {\r\n -ms-flex: 0 0 91.666667%;\r\n flex: 0 0 91.666667%;\r\n max-width: 91.666667%;\r\n }\r\n .col-sm-12 {\r\n -ms-flex: 0 0 100%;\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n }\r\n .order-sm-first {\r\n -ms-flex-order: -1;\r\n order: -1;\r\n }\r\n .order-sm-last {\r\n -ms-flex-order: 13;\r\n order: 13;\r\n }\r\n .order-sm-0 {\r\n -ms-flex-order: 0;\r\n order: 0;\r\n }\r\n .order-sm-1 {\r\n -ms-flex-order: 1;\r\n order: 1;\r\n }\r\n .order-sm-2 {\r\n -ms-flex-order: 2;\r\n order: 2;\r\n }\r\n .order-sm-3 {\r\n -ms-flex-order: 3;\r\n order: 3;\r\n }\r\n .order-sm-4 {\r\n -ms-flex-order: 4;\r\n order: 4;\r\n }\r\n .order-sm-5 {\r\n -ms-flex-order: 5;\r\n order: 5;\r\n }\r\n .order-sm-6 {\r\n -ms-flex-order: 6;\r\n order: 6;\r\n }\r\n .order-sm-7 {\r\n -ms-flex-order: 7;\r\n order: 7;\r\n }\r\n .order-sm-8 {\r\n -ms-flex-order: 8;\r\n order: 8;\r\n }\r\n .order-sm-9 {\r\n -ms-flex-order: 9;\r\n order: 9;\r\n }\r\n .order-sm-10 {\r\n -ms-flex-order: 10;\r\n order: 10;\r\n }\r\n .order-sm-11 {\r\n -ms-flex-order: 11;\r\n order: 11;\r\n }\r\n .order-sm-12 {\r\n -ms-flex-order: 12;\r\n order: 12;\r\n }\r\n .offset-sm-0 {\r\n margin-left: 0;\r\n }\r\n .offset-sm-1 {\r\n margin-left: 8.333333%;\r\n }\r\n .offset-sm-2 {\r\n margin-left: 16.666667%;\r\n }\r\n .offset-sm-3 {\r\n margin-left: 25%;\r\n }\r\n .offset-sm-4 {\r\n margin-left: 33.333333%;\r\n }\r\n .offset-sm-5 {\r\n margin-left: 41.666667%;\r\n }\r\n .offset-sm-6 {\r\n margin-left: 50%;\r\n }\r\n .offset-sm-7 {\r\n margin-left: 58.333333%;\r\n }\r\n .offset-sm-8 {\r\n margin-left: 66.666667%;\r\n }\r\n .offset-sm-9 {\r\n margin-left: 75%;\r\n }\r\n .offset-sm-10 {\r\n margin-left: 83.333333%;\r\n }\r\n .offset-sm-11 {\r\n margin-left: 91.666667%;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .col-md {\r\n -ms-flex-preferred-size: 0;\r\n flex-basis: 0;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n max-width: 100%;\r\n }\r\n .row-cols-md-1 > * {\r\n -ms-flex: 0 0 100%;\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n }\r\n .row-cols-md-2 > * {\r\n -ms-flex: 0 0 50%;\r\n flex: 0 0 50%;\r\n max-width: 50%;\r\n }\r\n .row-cols-md-3 > * {\r\n -ms-flex: 0 0 33.333333%;\r\n flex: 0 0 33.333333%;\r\n max-width: 33.333333%;\r\n }\r\n .row-cols-md-4 > * {\r\n -ms-flex: 0 0 25%;\r\n flex: 0 0 25%;\r\n max-width: 25%;\r\n }\r\n .row-cols-md-5 > * {\r\n -ms-flex: 0 0 20%;\r\n flex: 0 0 20%;\r\n max-width: 20%;\r\n }\r\n .row-cols-md-6 > * {\r\n -ms-flex: 0 0 16.666667%;\r\n flex: 0 0 16.666667%;\r\n max-width: 16.666667%;\r\n }\r\n .col-md-auto {\r\n -ms-flex: 0 0 auto;\r\n flex: 0 0 auto;\r\n width: auto;\r\n max-width: 100%;\r\n }\r\n .col-md-1 {\r\n -ms-flex: 0 0 8.333333%;\r\n flex: 0 0 8.333333%;\r\n max-width: 8.333333%;\r\n }\r\n .col-md-2 {\r\n -ms-flex: 0 0 16.666667%;\r\n flex: 0 0 16.666667%;\r\n max-width: 16.666667%;\r\n }\r\n .col-md-3 {\r\n -ms-flex: 0 0 25%;\r\n flex: 0 0 25%;\r\n max-width: 25%;\r\n }\r\n .col-md-4 {\r\n -ms-flex: 0 0 33.333333%;\r\n flex: 0 0 33.333333%;\r\n max-width: 33.333333%;\r\n }\r\n .col-md-5 {\r\n -ms-flex: 0 0 41.666667%;\r\n flex: 0 0 41.666667%;\r\n max-width: 41.666667%;\r\n }\r\n .col-md-6 {\r\n -ms-flex: 0 0 50%;\r\n flex: 0 0 50%;\r\n max-width: 50%;\r\n }\r\n .col-md-7 {\r\n -ms-flex: 0 0 58.333333%;\r\n flex: 0 0 58.333333%;\r\n max-width: 58.333333%;\r\n }\r\n .col-md-8 {\r\n -ms-flex: 0 0 66.666667%;\r\n flex: 0 0 66.666667%;\r\n max-width: 66.666667%;\r\n }\r\n .col-md-9 {\r\n -ms-flex: 0 0 75%;\r\n flex: 0 0 75%;\r\n max-width: 75%;\r\n }\r\n .col-md-10 {\r\n -ms-flex: 0 0 83.333333%;\r\n flex: 0 0 83.333333%;\r\n max-width: 83.333333%;\r\n }\r\n .col-md-11 {\r\n -ms-flex: 0 0 91.666667%;\r\n flex: 0 0 91.666667%;\r\n max-width: 91.666667%;\r\n }\r\n .col-md-12 {\r\n -ms-flex: 0 0 100%;\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n }\r\n .order-md-first {\r\n -ms-flex-order: -1;\r\n order: -1;\r\n }\r\n .order-md-last {\r\n -ms-flex-order: 13;\r\n order: 13;\r\n }\r\n .order-md-0 {\r\n -ms-flex-order: 0;\r\n order: 0;\r\n }\r\n .order-md-1 {\r\n -ms-flex-order: 1;\r\n order: 1;\r\n }\r\n .order-md-2 {\r\n -ms-flex-order: 2;\r\n order: 2;\r\n }\r\n .order-md-3 {\r\n -ms-flex-order: 3;\r\n order: 3;\r\n }\r\n .order-md-4 {\r\n -ms-flex-order: 4;\r\n order: 4;\r\n }\r\n .order-md-5 {\r\n -ms-flex-order: 5;\r\n order: 5;\r\n }\r\n .order-md-6 {\r\n -ms-flex-order: 6;\r\n order: 6;\r\n }\r\n .order-md-7 {\r\n -ms-flex-order: 7;\r\n order: 7;\r\n }\r\n .order-md-8 {\r\n -ms-flex-order: 8;\r\n order: 8;\r\n }\r\n .order-md-9 {\r\n -ms-flex-order: 9;\r\n order: 9;\r\n }\r\n .order-md-10 {\r\n -ms-flex-order: 10;\r\n order: 10;\r\n }\r\n .order-md-11 {\r\n -ms-flex-order: 11;\r\n order: 11;\r\n }\r\n .order-md-12 {\r\n -ms-flex-order: 12;\r\n order: 12;\r\n }\r\n .offset-md-0 {\r\n margin-left: 0;\r\n }\r\n .offset-md-1 {\r\n margin-left: 8.333333%;\r\n }\r\n .offset-md-2 {\r\n margin-left: 16.666667%;\r\n }\r\n .offset-md-3 {\r\n margin-left: 25%;\r\n }\r\n .offset-md-4 {\r\n margin-left: 33.333333%;\r\n }\r\n .offset-md-5 {\r\n margin-left: 41.666667%;\r\n }\r\n .offset-md-6 {\r\n margin-left: 50%;\r\n }\r\n .offset-md-7 {\r\n margin-left: 58.333333%;\r\n }\r\n .offset-md-8 {\r\n margin-left: 66.666667%;\r\n }\r\n .offset-md-9 {\r\n margin-left: 75%;\r\n }\r\n .offset-md-10 {\r\n margin-left: 83.333333%;\r\n }\r\n .offset-md-11 {\r\n margin-left: 91.666667%;\r\n }\r\n}\r\n\r\n@media (min-width: 992px) {\r\n .col-lg {\r\n -ms-flex-preferred-size: 0;\r\n flex-basis: 0;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n max-width: 100%;\r\n }\r\n .row-cols-lg-1 > * {\r\n -ms-flex: 0 0 100%;\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n }\r\n .row-cols-lg-2 > * {\r\n -ms-flex: 0 0 50%;\r\n flex: 0 0 50%;\r\n max-width: 50%;\r\n }\r\n .row-cols-lg-3 > * {\r\n -ms-flex: 0 0 33.333333%;\r\n flex: 0 0 33.333333%;\r\n max-width: 33.333333%;\r\n }\r\n .row-cols-lg-4 > * {\r\n -ms-flex: 0 0 25%;\r\n flex: 0 0 25%;\r\n max-width: 25%;\r\n }\r\n .row-cols-lg-5 > * {\r\n -ms-flex: 0 0 20%;\r\n flex: 0 0 20%;\r\n max-width: 20%;\r\n }\r\n .row-cols-lg-6 > * {\r\n -ms-flex: 0 0 16.666667%;\r\n flex: 0 0 16.666667%;\r\n max-width: 16.666667%;\r\n }\r\n .col-lg-auto {\r\n -ms-flex: 0 0 auto;\r\n flex: 0 0 auto;\r\n width: auto;\r\n max-width: 100%;\r\n }\r\n .col-lg-1 {\r\n -ms-flex: 0 0 8.333333%;\r\n flex: 0 0 8.333333%;\r\n max-width: 8.333333%;\r\n }\r\n .col-lg-2 {\r\n -ms-flex: 0 0 16.666667%;\r\n flex: 0 0 16.666667%;\r\n max-width: 16.666667%;\r\n }\r\n .col-lg-3 {\r\n -ms-flex: 0 0 25%;\r\n flex: 0 0 25%;\r\n max-width: 25%;\r\n }\r\n .col-lg-4 {\r\n -ms-flex: 0 0 33.333333%;\r\n flex: 0 0 33.333333%;\r\n max-width: 33.333333%;\r\n }\r\n .col-lg-5 {\r\n -ms-flex: 0 0 41.666667%;\r\n flex: 0 0 41.666667%;\r\n max-width: 41.666667%;\r\n }\r\n .col-lg-6 {\r\n -ms-flex: 0 0 50%;\r\n flex: 0 0 50%;\r\n max-width: 50%;\r\n }\r\n .col-lg-7 {\r\n -ms-flex: 0 0 58.333333%;\r\n flex: 0 0 58.333333%;\r\n max-width: 58.333333%;\r\n }\r\n .col-lg-8 {\r\n -ms-flex: 0 0 66.666667%;\r\n flex: 0 0 66.666667%;\r\n max-width: 66.666667%;\r\n }\r\n .col-lg-9 {\r\n -ms-flex: 0 0 75%;\r\n flex: 0 0 75%;\r\n max-width: 75%;\r\n }\r\n .col-lg-10 {\r\n -ms-flex: 0 0 83.333333%;\r\n flex: 0 0 83.333333%;\r\n max-width: 83.333333%;\r\n }\r\n .col-lg-11 {\r\n -ms-flex: 0 0 91.666667%;\r\n flex: 0 0 91.666667%;\r\n max-width: 91.666667%;\r\n }\r\n .col-lg-12 {\r\n -ms-flex: 0 0 100%;\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n }\r\n .order-lg-first {\r\n -ms-flex-order: -1;\r\n order: -1;\r\n }\r\n .order-lg-last {\r\n -ms-flex-order: 13;\r\n order: 13;\r\n }\r\n .order-lg-0 {\r\n -ms-flex-order: 0;\r\n order: 0;\r\n }\r\n .order-lg-1 {\r\n -ms-flex-order: 1;\r\n order: 1;\r\n }\r\n .order-lg-2 {\r\n -ms-flex-order: 2;\r\n order: 2;\r\n }\r\n .order-lg-3 {\r\n -ms-flex-order: 3;\r\n order: 3;\r\n }\r\n .order-lg-4 {\r\n -ms-flex-order: 4;\r\n order: 4;\r\n }\r\n .order-lg-5 {\r\n -ms-flex-order: 5;\r\n order: 5;\r\n }\r\n .order-lg-6 {\r\n -ms-flex-order: 6;\r\n order: 6;\r\n }\r\n .order-lg-7 {\r\n -ms-flex-order: 7;\r\n order: 7;\r\n }\r\n .order-lg-8 {\r\n -ms-flex-order: 8;\r\n order: 8;\r\n }\r\n .order-lg-9 {\r\n -ms-flex-order: 9;\r\n order: 9;\r\n }\r\n .order-lg-10 {\r\n -ms-flex-order: 10;\r\n order: 10;\r\n }\r\n .order-lg-11 {\r\n -ms-flex-order: 11;\r\n order: 11;\r\n }\r\n .order-lg-12 {\r\n -ms-flex-order: 12;\r\n order: 12;\r\n }\r\n .offset-lg-0 {\r\n margin-left: 0;\r\n }\r\n .offset-lg-1 {\r\n margin-left: 8.333333%;\r\n }\r\n .offset-lg-2 {\r\n margin-left: 16.666667%;\r\n }\r\n .offset-lg-3 {\r\n margin-left: 25%;\r\n }\r\n .offset-lg-4 {\r\n margin-left: 33.333333%;\r\n }\r\n .offset-lg-5 {\r\n margin-left: 41.666667%;\r\n }\r\n .offset-lg-6 {\r\n margin-left: 50%;\r\n }\r\n .offset-lg-7 {\r\n margin-left: 58.333333%;\r\n }\r\n .offset-lg-8 {\r\n margin-left: 66.666667%;\r\n }\r\n .offset-lg-9 {\r\n margin-left: 75%;\r\n }\r\n .offset-lg-10 {\r\n margin-left: 83.333333%;\r\n }\r\n .offset-lg-11 {\r\n margin-left: 91.666667%;\r\n }\r\n}\r\n\r\n@media (min-width: 1200px) {\r\n .col-xl {\r\n -ms-flex-preferred-size: 0;\r\n flex-basis: 0;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n max-width: 100%;\r\n }\r\n .row-cols-xl-1 > * {\r\n -ms-flex: 0 0 100%;\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n }\r\n .row-cols-xl-2 > * {\r\n -ms-flex: 0 0 50%;\r\n flex: 0 0 50%;\r\n max-width: 50%;\r\n }\r\n .row-cols-xl-3 > * {\r\n -ms-flex: 0 0 33.333333%;\r\n flex: 0 0 33.333333%;\r\n max-width: 33.333333%;\r\n }\r\n .row-cols-xl-4 > * {\r\n -ms-flex: 0 0 25%;\r\n flex: 0 0 25%;\r\n max-width: 25%;\r\n }\r\n .row-cols-xl-5 > * {\r\n -ms-flex: 0 0 20%;\r\n flex: 0 0 20%;\r\n max-width: 20%;\r\n }\r\n .row-cols-xl-6 > * {\r\n -ms-flex: 0 0 16.666667%;\r\n flex: 0 0 16.666667%;\r\n max-width: 16.666667%;\r\n }\r\n .col-xl-auto {\r\n -ms-flex: 0 0 auto;\r\n flex: 0 0 auto;\r\n width: auto;\r\n max-width: 100%;\r\n }\r\n .col-xl-1 {\r\n -ms-flex: 0 0 8.333333%;\r\n flex: 0 0 8.333333%;\r\n max-width: 8.333333%;\r\n }\r\n .col-xl-2 {\r\n -ms-flex: 0 0 16.666667%;\r\n flex: 0 0 16.666667%;\r\n max-width: 16.666667%;\r\n }\r\n .col-xl-3 {\r\n -ms-flex: 0 0 25%;\r\n flex: 0 0 25%;\r\n max-width: 25%;\r\n }\r\n .col-xl-4 {\r\n -ms-flex: 0 0 33.333333%;\r\n flex: 0 0 33.333333%;\r\n max-width: 33.333333%;\r\n }\r\n .col-xl-5 {\r\n -ms-flex: 0 0 41.666667%;\r\n flex: 0 0 41.666667%;\r\n max-width: 41.666667%;\r\n }\r\n .col-xl-6 {\r\n -ms-flex: 0 0 50%;\r\n flex: 0 0 50%;\r\n max-width: 50%;\r\n }\r\n .col-xl-7 {\r\n -ms-flex: 0 0 58.333333%;\r\n flex: 0 0 58.333333%;\r\n max-width: 58.333333%;\r\n }\r\n .col-xl-8 {\r\n -ms-flex: 0 0 66.666667%;\r\n flex: 0 0 66.666667%;\r\n max-width: 66.666667%;\r\n }\r\n .col-xl-9 {\r\n -ms-flex: 0 0 75%;\r\n flex: 0 0 75%;\r\n max-width: 75%;\r\n }\r\n .col-xl-10 {\r\n -ms-flex: 0 0 83.333333%;\r\n flex: 0 0 83.333333%;\r\n max-width: 83.333333%;\r\n }\r\n .col-xl-11 {\r\n -ms-flex: 0 0 91.666667%;\r\n flex: 0 0 91.666667%;\r\n max-width: 91.666667%;\r\n }\r\n .col-xl-12 {\r\n -ms-flex: 0 0 100%;\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n }\r\n .order-xl-first {\r\n -ms-flex-order: -1;\r\n order: -1;\r\n }\r\n .order-xl-last {\r\n -ms-flex-order: 13;\r\n order: 13;\r\n }\r\n .order-xl-0 {\r\n -ms-flex-order: 0;\r\n order: 0;\r\n }\r\n .order-xl-1 {\r\n -ms-flex-order: 1;\r\n order: 1;\r\n }\r\n .order-xl-2 {\r\n -ms-flex-order: 2;\r\n order: 2;\r\n }\r\n .order-xl-3 {\r\n -ms-flex-order: 3;\r\n order: 3;\r\n }\r\n .order-xl-4 {\r\n -ms-flex-order: 4;\r\n order: 4;\r\n }\r\n .order-xl-5 {\r\n -ms-flex-order: 5;\r\n order: 5;\r\n }\r\n .order-xl-6 {\r\n -ms-flex-order: 6;\r\n order: 6;\r\n }\r\n .order-xl-7 {\r\n -ms-flex-order: 7;\r\n order: 7;\r\n }\r\n .order-xl-8 {\r\n -ms-flex-order: 8;\r\n order: 8;\r\n }\r\n .order-xl-9 {\r\n -ms-flex-order: 9;\r\n order: 9;\r\n }\r\n .order-xl-10 {\r\n -ms-flex-order: 10;\r\n order: 10;\r\n }\r\n .order-xl-11 {\r\n -ms-flex-order: 11;\r\n order: 11;\r\n }\r\n .order-xl-12 {\r\n -ms-flex-order: 12;\r\n order: 12;\r\n }\r\n .offset-xl-0 {\r\n margin-left: 0;\r\n }\r\n .offset-xl-1 {\r\n margin-left: 8.333333%;\r\n }\r\n .offset-xl-2 {\r\n margin-left: 16.666667%;\r\n }\r\n .offset-xl-3 {\r\n margin-left: 25%;\r\n }\r\n .offset-xl-4 {\r\n margin-left: 33.333333%;\r\n }\r\n .offset-xl-5 {\r\n margin-left: 41.666667%;\r\n }\r\n .offset-xl-6 {\r\n margin-left: 50%;\r\n }\r\n .offset-xl-7 {\r\n margin-left: 58.333333%;\r\n }\r\n .offset-xl-8 {\r\n margin-left: 66.666667%;\r\n }\r\n .offset-xl-9 {\r\n margin-left: 75%;\r\n }\r\n .offset-xl-10 {\r\n margin-left: 83.333333%;\r\n }\r\n .offset-xl-11 {\r\n margin-left: 91.666667%;\r\n }\r\n}\r\n\r\n.table {\r\n width: 100%;\r\n margin-bottom: 1rem;\r\n color: ${colors.neutrals.n900};\r\n}\r\n\r\n.table th,\r\n.table td {\r\n padding: 0.75rem;\r\n vertical-align: top;\r\n border-top: 1px solid ${colors.neutrals.n200};\r\n}\r\n\r\n.table thead th {\r\n vertical-align: bottom;\r\n border-bottom: 2px solid ${colors.neutrals.n200};\r\n}\r\n\r\n.table tbody + tbody {\r\n border-top: 2px solid ${colors.neutrals.n200};\r\n}\r\n\r\n.table-sm th,\r\n.table-sm td {\r\n padding: 0.3rem;\r\n}\r\n\r\n.table-bordered {\r\n border: 1px solid ${colors.neutrals.n300};\r\n}\r\n\r\n.table-bordered th,\r\n.table-bordered td {\r\n border: 1px solid ${colors.neutrals.n300};\r\n}\r\n\r\n.table-bordered thead th,\r\n.table-bordered thead td {\r\n border-bottom-width: 2px;\r\n}\r\n\r\n.table-borderless th,\r\n.table-borderless td,\r\n.table-borderless thead th,\r\n.table-borderless tbody + tbody {\r\n border: 0;\r\n}\r\n\r\n.table-striped tbody tr:nth-of-type(odd) {\r\n background-color: rgba(0, 0, 0, 0.05);\r\n}\r\n\r\n.table-hover tbody tr:hover {\r\n color: ${colors.neutrals.n900};\r\n background-color: rgba(0, 0, 0, 0.075);\r\n}\r\n\r\n.table-primary,\r\n.table-primary > th,\r\n.table-primary > td {\r\n background-color: #b8daff;\r\n}\r\n\r\n.table-primary th,\r\n.table-primary td,\r\n.table-primary thead th,\r\n.table-primary tbody + tbody {\r\n border-color: #7abaff;\r\n}\r\n\r\n.table-hover .table-primary:hover {\r\n background-color: #9fcdff;\r\n}\r\n\r\n.table-hover .table-primary:hover > td,\r\n.table-hover .table-primary:hover > th {\r\n background-color: #9fcdff;\r\n}\r\n\r\n.table-secondary,\r\n.table-secondary > th,\r\n.table-secondary > td {\r\n background-color: #d6d8db;\r\n}\r\n\r\n.table-secondary th,\r\n.table-secondary td,\r\n.table-secondary thead th,\r\n.table-secondary tbody + tbody {\r\n border-color: #b3b7bb;\r\n}\r\n\r\n.table-hover .table-secondary:hover {\r\n background-color: #c8cbcf;\r\n}\r\n\r\n.table-hover .table-secondary:hover > td,\r\n.table-hover .table-secondary:hover > th {\r\n background-color: #c8cbcf;\r\n}\r\n\r\n.table-success,\r\n.table-success > th,\r\n.table-success > td {\r\n background-color: #c3e6cb;\r\n}\r\n\r\n.table-success th,\r\n.table-success td,\r\n.table-success thead th,\r\n.table-success tbody + tbody {\r\n border-color: #8fd19e;\r\n}\r\n\r\n.table-hover .table-success:hover {\r\n background-color: #b1dfbb;\r\n}\r\n\r\n.table-hover .table-success:hover > td,\r\n.table-hover .table-success:hover > th {\r\n background-color: #b1dfbb;\r\n}\r\n\r\n.table-info,\r\n.table-info > th,\r\n.table-info > td {\r\n background-color: #bee5eb;\r\n}\r\n\r\n.table-info th,\r\n.table-info td,\r\n.table-info thead th,\r\n.table-info tbody + tbody {\r\n border-color: #86cfda;\r\n}\r\n\r\n.table-hover .table-info:hover {\r\n background-color: #abdde5;\r\n}\r\n\r\n.table-hover .table-info:hover > td,\r\n.table-hover .table-info:hover > th {\r\n background-color: #abdde5;\r\n}\r\n\r\n.table-warning,\r\n.table-warning > th,\r\n.table-warning > td {\r\n background-color: #ffeeba;\r\n}\r\n\r\n.table-warning th,\r\n.table-warning td,\r\n.table-warning thead th,\r\n.table-warning tbody + tbody {\r\n border-color: #ffdf7e;\r\n}\r\n\r\n.table-hover .table-warning:hover {\r\n background-color: #ffe8a1;\r\n}\r\n\r\n.table-hover .table-warning:hover > td,\r\n.table-hover .table-warning:hover > th {\r\n background-color: #ffe8a1;\r\n}\r\n\r\n.table-danger,\r\n.table-danger > th,\r\n.table-danger > td {\r\n background-color: #f5c6cb;\r\n}\r\n\r\n.table-danger th,\r\n.table-danger td,\r\n.table-danger thead th,\r\n.table-danger tbody + tbody {\r\n border-color: #ed969e;\r\n}\r\n\r\n.table-hover .table-danger:hover {\r\n background-color: #f1b0b7;\r\n}\r\n\r\n.table-hover .table-danger:hover > td,\r\n.table-hover .table-danger:hover > th {\r\n background-color: #f1b0b7;\r\n}\r\n\r\n.table-light,\r\n.table-light > th,\r\n.table-light > td {\r\n background-color: #fdfdfe;\r\n}\r\n\r\n.table-light th,\r\n.table-light td,\r\n.table-light thead th,\r\n.table-light tbody + tbody {\r\n border-color: #fbfcfc;\r\n}\r\n\r\n.table-hover .table-light:hover {\r\n background-color: #ececf6;\r\n}\r\n\r\n.table-hover .table-light:hover > td,\r\n.table-hover .table-light:hover > th {\r\n background-color: #ececf6;\r\n}\r\n\r\n.table-dark,\r\n.table-dark > th,\r\n.table-dark > td {\r\n background-color: #c6c8ca;\r\n}\r\n\r\n.table-dark th,\r\n.table-dark td,\r\n.table-dark thead th,\r\n.table-dark tbody + tbody {\r\n border-color: #95999c;\r\n}\r\n\r\n.table-hover .table-dark:hover {\r\n background-color: #b9bbbe;\r\n}\r\n\r\n.table-hover .table-dark:hover > td,\r\n.table-hover .table-dark:hover > th {\r\n background-color: #b9bbbe;\r\n}\r\n\r\n.table-active,\r\n.table-active > th,\r\n.table-active > td {\r\n background-color: rgba(0, 0, 0, 0.075);\r\n}\r\n\r\n.table-hover .table-active:hover {\r\n background-color: rgba(0, 0, 0, 0.075);\r\n}\r\n\r\n.table-hover .table-active:hover > td,\r\n.table-hover .table-active:hover > th {\r\n background-color: rgba(0, 0, 0, 0.075);\r\n}\r\n\r\n.table .thead-dark th {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.n800};\r\n border-color: #454d55;\r\n}\r\n\r\n.table .thead-light th {\r\n color: ${colors.neutrals.n800};\r\n background-color: ${colors.neutrals.n100};\r\n border-color: ${colors.neutrals.n200};\r\n}\r\n\r\n.table-dark {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.n800};\r\n}\r\n\r\n.table-dark th,\r\n.table-dark td,\r\n.table-dark thead th {\r\n border-color: #454d55;\r\n}\r\n\r\n.table-dark.table-bordered {\r\n border: 0;\r\n}\r\n\r\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\r\n background-color: rgba(255, 255, 255, 0.05);\r\n}\r\n\r\n.table-dark.table-hover tbody tr:hover {\r\n color: ${colors.neutrals.min};\r\n background-color: rgba(255, 255, 255, 0.075);\r\n}\r\n\r\n@media (max-width: 575.98px) {\r\n .table-responsive-sm {\r\n display: block;\r\n width: 100%;\r\n overflow-x: auto;\r\n -webkit-overflow-scrolling: touch;\r\n }\r\n .table-responsive-sm > .table-bordered {\r\n border: 0;\r\n }\r\n}\r\n\r\n@media (max-width: 767.98px) {\r\n .table-responsive-md {\r\n display: block;\r\n width: 100%;\r\n overflow-x: auto;\r\n -webkit-overflow-scrolling: touch;\r\n }\r\n .table-responsive-md > .table-bordered {\r\n border: 0;\r\n }\r\n}\r\n\r\n@media (max-width: 991.98px) {\r\n .table-responsive-lg {\r\n display: block;\r\n width: 100%;\r\n overflow-x: auto;\r\n -webkit-overflow-scrolling: touch;\r\n }\r\n .table-responsive-lg > .table-bordered {\r\n border: 0;\r\n }\r\n}\r\n\r\n@media (max-width: 1199.98px) {\r\n .table-responsive-xl {\r\n display: block;\r\n width: 100%;\r\n overflow-x: auto;\r\n -webkit-overflow-scrolling: touch;\r\n }\r\n .table-responsive-xl > .table-bordered {\r\n border: 0;\r\n }\r\n}\r\n\r\n.table-responsive {\r\n display: block;\r\n width: 100%;\r\n overflow-x: auto;\r\n -webkit-overflow-scrolling: touch;\r\n}\r\n\r\n.table-responsive > .table-bordered {\r\n border: 0;\r\n}\r\n\r\n.form-control {\r\n display: block;\r\n width: 100%;\r\n height: calc(1.5em + 0.75rem + 2px);\r\n padding: 0.375rem 0.75rem;\r\n font-size: 1rem;\r\n font-weight: 400;\r\n line-height: 1.5;\r\n color: ${colors.neutrals.n800};\r\n background-color: ${colors.neutrals.midground};\r\n background-clip: padding-box;\r\n border: 1px solid ${colors.neutrals.n600};\r\n border-radius: 0.25rem;\r\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .form-control {\r\n transition: none;\r\n }\r\n}\r\n\r\n.form-control:hover {\r\n border-color: ${colors.neutrals.n700};\r\n}\r\n\r\n.form-control::-ms-expand {\r\n background-color: ${colors.transparent};\r\n border: 0;\r\n}\r\n\r\n.form-control:-moz-focusring {\r\n color: ${colors.transparent};\r\n text-shadow: 0 0 0 ${colors.neutrals.n800};\r\n}\r\n\r\n.form-control:focus {\r\n color: ${colors.neutrals.n800};\r\n background-color: ${colors.neutrals.foreground};\r\n border-color: ${colors.bootstrap.primary};\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\r\n}\r\n\r\n.form-control::-webkit-input-placeholder {\r\n color: ${colors.neutrals.n500};\r\n opacity: 1;\r\n}\r\n\r\n.form-control::-moz-placeholder {\r\n color: ${colors.neutrals.n500};\r\n opacity: 1;\r\n}\r\n\r\n.form-control:-ms-input-placeholder {\r\n color: ${colors.neutrals.n500};\r\n opacity: 1;\r\n}\r\n\r\n.form-control::-ms-input-placeholder {\r\n color: ${colors.neutrals.n500};\r\n opacity: 1;\r\n}\r\n\r\n.form-control::placeholder {\r\n color: ${colors.neutrals.n500};\r\n opacity: 1;\r\n}\r\n\r\n.form-control:disabled, .form-control[readonly] {\r\n background-color: ${colors.neutrals.n200};\r\n opacity: 1;\r\n}\r\n\r\ninput[type=\"date\"].form-control,\r\ninput[type=\"time\"].form-control,\r\ninput[type=\"datetime-local\"].form-control,\r\ninput[type=\"month\"].form-control {\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n appearance: none;\r\n}\r\n\r\nselect.form-control:focus::-ms-value {\r\n color: ${colors.neutrals.n600};\r\n background-color: ${colors.bootstrap.primary};\r\n}\r\n\r\n.form-control-file,\r\n.form-control-range {\r\n display: block;\r\n width: 100%;\r\n}\r\n\r\n.col-form-label {\r\n padding-top: calc(0.375rem + 1px);\r\n padding-bottom: calc(0.375rem + 1px);\r\n margin-bottom: 0;\r\n font-size: inherit;\r\n line-height: 1.5;\r\n}\r\n\r\n.col-form-label-lg {\r\n padding-top: calc(0.5rem + 1px);\r\n padding-bottom: calc(0.5rem + 1px);\r\n font-size: 1.25rem;\r\n line-height: 1.5;\r\n}\r\n\r\n.col-form-label-sm {\r\n padding-top: calc(0.25rem + 1px);\r\n padding-bottom: calc(0.25rem + 1px);\r\n font-size: 0.875rem;\r\n line-height: 1.5;\r\n}\r\n\r\n.form-control-plaintext {\r\n display: block;\r\n width: 100%;\r\n padding: 0.375rem 0;\r\n margin-bottom: 0;\r\n font-size: 1rem;\r\n line-height: 1.5;\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.transparent};\r\n border: solid ${colors.transparent};\r\n border-width: 1px 0;\r\n}\r\n\r\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\r\n padding-right: 0;\r\n padding-left: 0;\r\n}\r\n\r\n.form-control-sm {\r\n height: calc(1.5em + 0.5rem + 2px);\r\n padding: 0.25rem 0.5rem;\r\n font-size: 0.875rem;\r\n line-height: 1.5;\r\n border-radius: 0.2rem;\r\n}\r\n\r\n.form-control-lg {\r\n height: calc(1.5em + 1rem + 2px);\r\n padding: 0.5rem 1rem;\r\n font-size: 1.25rem;\r\n line-height: 1.5;\r\n border-radius: 0.3rem;\r\n}\r\n\r\nselect.form-control[size], select.form-control[multiple] {\r\n height: auto;\r\n}\r\n\r\ntextarea.form-control {\r\n height: auto;\r\n}\r\n\r\n.form-group {\r\n margin-bottom: 1rem;\r\n}\r\n\r\n.form-text {\r\n display: block;\r\n margin-top: 0.25rem;\r\n}\r\n\r\n.form-row {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n margin-right: -5px;\r\n margin-left: -5px;\r\n}\r\n\r\n.form-row > .col,\r\n.form-row > [class*=\"col-\"] {\r\n padding-right: 5px;\r\n padding-left: 5px;\r\n}\r\n\r\n.form-check {\r\n position: relative;\r\n display: block;\r\n padding-left: 1.25rem;\r\n}\r\n\r\n.form-check-input {\r\n position: absolute;\r\n margin-top: 0.3rem;\r\n margin-left: -1.25rem;\r\n}\r\n\r\n.form-check-input[disabled] ~ .form-check-label,\r\n.form-check-input:disabled ~ .form-check-label {\r\n color: ${colors.neutrals.n700};\r\n}\r\n\r\n.form-check-label {\r\n margin-bottom: 0;\r\n}\r\n\r\n.form-check-inline {\r\n display: -ms-inline-flexbox;\r\n display: inline-flex;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n padding-left: 0;\r\n margin-right: 0.75rem;\r\n}\r\n\r\n.form-check-inline .form-check-input {\r\n position: static;\r\n margin-top: 0;\r\n margin-right: 0.3125rem;\r\n margin-left: 0;\r\n}\r\n\r\n.valid-feedback {\r\n display: none;\r\n width: 100%;\r\n margin-top: 0.25rem;\r\n font-size: 80%;\r\n color: ${colors.bootstrap.success};\r\n}\r\n\r\n.valid-tooltip {\r\n position: absolute;\r\n top: 100%;\r\n left: 0;\r\n z-index: 5;\r\n display: none;\r\n max-width: 100%;\r\n padding: 0.25rem 0.5rem;\r\n margin-top: .1rem;\r\n font-size: 0.875rem;\r\n line-height: 1.5;\r\n color: ${colors.neutrals.min};\r\n background-color: rgba(40, 167, 69, 0.9);\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.form-row > .col > .valid-tooltip,\r\n.form-row > [class*=\"col-\"] > .valid-tooltip {\r\n left: 5px;\r\n}\r\n\r\n.was-validated :valid ~ .valid-feedback,\r\n.was-validated :valid ~ .valid-tooltip,\r\n.is-valid ~ .valid-feedback,\r\n.is-valid ~ .valid-tooltip {\r\n display: block;\r\n}\r\n\r\n.was-validated .form-control:valid, .form-control.is-valid {\r\n border-color: ${colors.bootstrap.success};\r\n padding-right: calc(1.5em + 0.75rem);\r\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\r\n background-repeat: no-repeat;\r\n background-position: right calc(0.375em + 0.1875rem) center;\r\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\r\n}\r\n\r\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\r\n border-color: ${colors.bootstrap.success};\r\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\r\n}\r\n\r\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\r\n padding-right: calc(1.5em + 0.75rem);\r\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\r\n}\r\n\r\n.was-validated .custom-select:valid, .custom-select.is-valid {\r\n border-color: ${colors.bootstrap.success};\r\n padding-right: calc(0.75em + 2.3125rem);\r\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat, ${colors.neutrals.min} url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\r\n}\r\n\r\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\r\n border-color: ${colors.bootstrap.success};\r\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\r\n}\r\n\r\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\r\n color: ${colors.bootstrap.success};\r\n}\r\n\r\n.was-validated .form-check-input:valid ~ .valid-feedback,\r\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\r\n.form-check-input.is-valid ~ .valid-tooltip {\r\n display: block;\r\n}\r\n\r\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\r\n color: ${colors.bootstrap.success};\r\n}\r\n\r\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\r\n border-color: ${colors.bootstrap.success};\r\n}\r\n\r\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\r\n border-color: #34ce57;\r\n background-color: #34ce57;\r\n}\r\n\r\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\r\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\r\n}\r\n\r\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\r\n border-color: ${colors.bootstrap.success};\r\n}\r\n\r\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\r\n border-color: ${colors.bootstrap.success};\r\n}\r\n\r\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\r\n border-color: ${colors.bootstrap.success};\r\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\r\n}\r\n\r\n.invalid-feedback {\r\n display: none;\r\n width: 100%;\r\n margin-top: 0.25rem;\r\n font-size: 80%;\r\n color: #dc3545;\r\n}\r\n\r\n.invalid-tooltip {\r\n position: absolute;\r\n top: 100%;\r\n left: 0;\r\n z-index: 5;\r\n display: none;\r\n max-width: 100%;\r\n padding: 0.25rem 0.5rem;\r\n margin-top: .1rem;\r\n font-size: 0.875rem;\r\n line-height: 1.5;\r\n color: ${colors.neutrals.min};\r\n background-color: rgba(220, 53, 69, 0.9);\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.form-row > .col > .invalid-tooltip,\r\n.form-row > [class*=\"col-\"] > .invalid-tooltip {\r\n left: 5px;\r\n}\r\n\r\n.was-validated :invalid ~ .invalid-feedback,\r\n.was-validated :invalid ~ .invalid-tooltip,\r\n.is-invalid ~ .invalid-feedback,\r\n.is-invalid ~ .invalid-tooltip {\r\n display: block;\r\n}\r\n\r\n.was-validated .form-control:invalid, .form-control.is-invalid {\r\n border-color: #dc3545;\r\n padding-right: calc(1.5em + 0.75rem);\r\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\r\n background-repeat: no-repeat;\r\n background-position: right calc(0.375em + 0.1875rem) center;\r\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\r\n}\r\n\r\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\r\n border-color: #dc3545;\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\r\n}\r\n\r\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\r\n padding-right: calc(1.5em + 0.75rem);\r\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\r\n}\r\n\r\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\r\n border-color: #dc3545;\r\n padding-right: calc(0.75em + 2.3125rem);\r\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat, ${colors.neutrals.min} url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\r\n}\r\n\r\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\r\n border-color: #dc3545;\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\r\n}\r\n\r\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\r\n color: #dc3545;\r\n}\r\n\r\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\r\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\r\n.form-check-input.is-invalid ~ .invalid-tooltip {\r\n display: block;\r\n}\r\n\r\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\r\n color: #dc3545;\r\n}\r\n\r\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\r\n border-color: #dc3545;\r\n}\r\n\r\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\r\n border-color: #e4606d;\r\n background-color: #e4606d;\r\n}\r\n\r\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\r\n}\r\n\r\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\r\n border-color: #dc3545;\r\n}\r\n\r\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\r\n border-color: #dc3545;\r\n}\r\n\r\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\r\n border-color: #dc3545;\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\r\n}\r\n\r\n.form-inline {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-flow: row wrap;\r\n flex-flow: row wrap;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n}\r\n\r\n.form-inline .form-check {\r\n width: 100%;\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .form-inline label {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n margin-bottom: 0;\r\n }\r\n .form-inline .form-group {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex: 0 0 auto;\r\n flex: 0 0 auto;\r\n -ms-flex-flow: row wrap;\r\n flex-flow: row wrap;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n margin-bottom: 0;\r\n }\r\n .form-inline .form-control {\r\n display: inline-block;\r\n width: auto;\r\n vertical-align: middle;\r\n }\r\n .form-inline .form-control-plaintext {\r\n display: inline-block;\r\n }\r\n .form-inline .input-group,\r\n .form-inline .custom-select {\r\n width: auto;\r\n }\r\n .form-inline .form-check {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n width: auto;\r\n padding-left: 0;\r\n }\r\n .form-inline .form-check-input {\r\n position: relative;\r\n -ms-flex-negative: 0;\r\n flex-shrink: 0;\r\n margin-top: 0;\r\n margin-right: 0.25rem;\r\n margin-left: 0;\r\n }\r\n .form-inline .custom-control {\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n }\r\n .form-inline .custom-control-label {\r\n margin-bottom: 0;\r\n }\r\n}\r\n\r\n.btn {\r\n display: inline-block;\r\n font-weight: 400;\r\n color: ${colors.neutrals.n900};\r\n text-align: center;\r\n vertical-align: middle;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n background-color: ${colors.transparent};\r\n border: 1px solid ${colors.transparent};\r\n padding: 0.375rem 0.75rem;\r\n font-size: 1rem;\r\n line-height: 1.5;\r\n border-radius: 0.25rem;\r\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .btn {\r\n transition: none;\r\n }\r\n}\r\n\r\n.btn:hover {\r\n text-decoration: none;\r\n}\r\n\r\n.btn:focus, .btn.focus {\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\r\n}\r\n\r\n.btn.disabled, .btn:disabled {\r\n opacity: 0.65;\r\n}\r\n\r\n.btn:not(:disabled):not(.disabled) {\r\n cursor: pointer;\r\n}\r\n\r\na.btn.disabled,\r\nfieldset:disabled a.btn {\r\n pointer-events: none;\r\n}\r\n\r\n${bootstrapButton(\"default\", colors.neutrals.min, colors.bootstrap.default, colors.bootstrap.defaultHigh, colors.bootstrap.defaultLow)}\r\n\r\n${bootstrapButton(\"primary\", colors.neutrals.min, colors.bootstrap.primary, colors.bootstrap.primaryHigh, colors.bootstrap.primaryLow)}\r\n\r\n${bootstrapButton(\"secondary\", colors.neutrals.min, colors.bootstrap.secondary, colors.bootstrap.secondaryHigh, colors.bootstrap.secondaryLow)}\r\n\r\n${bootstrapButton(\"success\", colors.neutrals.min, colors.bootstrap.success, colors.bootstrap.successHigh, colors.bootstrap.successLow)}\r\n\r\n${bootstrapButton(\"info\", colors.neutrals.min, colors.bootstrap.info, colors.bootstrap.infoHigh, colors.bootstrap.infoLow)}\r\n\r\n${bootstrapButton(\"warning\", colors.neutrals.min, colors.bootstrap.warning, colors.bootstrap.warningHigh, colors.bootstrap.warningLow)}\r\n\r\n${bootstrapButton(\"danger\", colors.neutrals.min, colors.bootstrap.danger, colors.bootstrap.dangerHigh, colors.bootstrap.dangerLow)}\r\n\r\n.btn-light {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.n100};\r\n border-color: ${colors.neutrals.n100};\r\n}\r\n\r\n.btn-light:not(:disabled):hover {\r\n color: ${colors.neutrals.n900};\r\n background-color: #e2e6ea;\r\n border-color: #dae0e5;\r\n}\r\n\r\n.btn-light:focus, .btn-light.focus {\r\n color: ${colors.neutrals.n900};\r\n background-color: #e2e6ea;\r\n border-color: #dae0e5;\r\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\r\n}\r\n\r\n.btn-light.disabled, .btn-light:disabled {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.n100};\r\n border-color: ${colors.neutrals.n100};\r\n}\r\n\r\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\r\n.show > .btn-light.dropdown-toggle {\r\n color: ${colors.neutrals.n900};\r\n background-color: #dae0e5;\r\n border-color: #d3d9df;\r\n}\r\n\r\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\r\n.show > .btn-light.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\r\n}\r\n\r\n.btn-dark {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.n800};\r\n border-color: ${colors.neutrals.n800};\r\n}\r\n\r\n.btn-dark:not(:disabled):hover {\r\n color: ${colors.neutrals.min};\r\n background-color: #23272b;\r\n border-color: #1d2124;\r\n}\r\n\r\n.btn-dark:focus, .btn-dark.focus {\r\n color: ${colors.neutrals.min};\r\n background-color: #23272b;\r\n border-color: #1d2124;\r\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\r\n}\r\n\r\n.btn-dark.disabled, .btn-dark:disabled {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.n800};\r\n border-color: ${colors.neutrals.n800};\r\n}\r\n\r\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\r\n.show > .btn-dark.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: #1d2124;\r\n border-color: #171a1d;\r\n}\r\n\r\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\r\n.show > .btn-dark.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\r\n}\r\n\r\n.btn-outline-light {\r\n color: ${colors.neutrals.n100};\r\n border-color: ${colors.neutrals.n100};\r\n}\r\n\r\n.btn-outline-light:not(:disabled):hover {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.n100};\r\n border-color: ${colors.neutrals.n100};\r\n}\r\n\r\n.btn-outline-light:focus, .btn-outline-light.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\r\n}\r\n\r\n.btn-outline-light.disabled, .btn-outline-light:disabled {\r\n color: ${colors.neutrals.n100};\r\n background-color: ${colors.transparent};\r\n}\r\n\r\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\r\n.show > .btn-outline-light.dropdown-toggle {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.n100};\r\n border-color: ${colors.neutrals.n100};\r\n}\r\n\r\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\r\n.show > .btn-outline-light.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\r\n}\r\n\r\n.btn-outline-dark {\r\n color: ${colors.neutrals.n800};\r\n border-color: ${colors.neutrals.n800};\r\n}\r\n\r\n.btn-outline-dark:not(:disabled):hover {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.n800};\r\n border-color: ${colors.neutrals.n800};\r\n}\r\n\r\n.btn-outline-dark:focus, .btn-outline-dark.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\r\n}\r\n\r\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\r\n color: ${colors.neutrals.n800};\r\n background-color: ${colors.transparent};\r\n}\r\n\r\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\r\n.show > .btn-outline-dark.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.n800};\r\n border-color: ${colors.neutrals.n800};\r\n}\r\n\r\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\r\n.show > .btn-outline-dark.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\r\n}\r\n\r\n.btn-link {\r\n font-weight: 400;\r\n color: ${colors.bootstrap.primary};\r\n text-decoration: none;\r\n}\r\n\r\n.btn-link:hover {\r\n color: ${colors.bootstrap.primaryHigh};\r\n text-decoration: underline;\r\n}\r\n\r\n.btn-link:focus, .btn-link.focus {\r\n text-decoration: underline;\r\n}\r\n\r\n.btn-link:disabled, .btn-link.disabled {\r\n color: ${colors.neutrals.n700};\r\n pointer-events: none;\r\n}\r\n\r\n.btn-lg, .btn-group-lg > .btn {\r\n padding: 0.5rem 1rem;\r\n font-size: 1.25rem;\r\n line-height: 1.5;\r\n border-radius: 0.3rem;\r\n}\r\n\r\n.btn-sm, .btn-group-sm > .btn {\r\n padding: 0.25rem 0.5rem;\r\n font-size: 0.875rem;\r\n line-height: 1.5;\r\n border-radius: 0.2rem;\r\n}\r\n\r\n.btn-block {\r\n display: block;\r\n width: 100%;\r\n}\r\n\r\n.btn-block + .btn-block {\r\n margin-top: 0.5rem;\r\n}\r\n\r\ninput[type=\"submit\"].btn-block,\r\ninput[type=\"reset\"].btn-block,\r\ninput[type=\"button\"].btn-block {\r\n width: 100%;\r\n}\r\n\r\n.fade {\r\n transition: opacity 0.15s linear;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .fade {\r\n transition: none;\r\n }\r\n}\r\n\r\n.fade:not(.show) {\r\n opacity: 0;\r\n}\r\n\r\n.collapse:not(.show) {\r\n display: none;\r\n}\r\n\r\n.collapsing {\r\n position: relative;\r\n height: 0;\r\n overflow: hidden;\r\n transition: height 0.35s ease;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .collapsing {\r\n transition: none;\r\n }\r\n}\r\n\r\n.dropup,\r\n.dropright,\r\n.dropdown,\r\n.dropleft {\r\n position: relative;\r\n}\r\n\r\n.dropdown-toggle {\r\n white-space: nowrap;\r\n}\r\n\r\n.dropdown-toggle::after {\r\n display: inline-block;\r\n margin-left: 0.255em;\r\n vertical-align: 0.255em;\r\n content: \"\";\r\n border-top: 0.3em solid;\r\n border-right: 0.3em solid ${colors.transparent};\r\n border-bottom: 0;\r\n border-left: 0.3em solid ${colors.transparent};\r\n}\r\n\r\n.dropdown-toggle:empty::after {\r\n margin-left: 0;\r\n}\r\n\r\n.dropdown-menu {\r\n position: absolute;\r\n top: 100%;\r\n left: 0;\r\n z-index: 1000;\r\n display: none;\r\n float: left;\r\n min-width: 10rem;\r\n padding: 0.5rem 0;\r\n margin: 0.125rem 0 0;\r\n font-size: 1rem;\r\n color: ${colors.neutrals.n900};\r\n text-align: left;\r\n list-style: none;\r\n background-color: ${colors.neutrals.min};\r\n background-clip: padding-box;\r\n border: 1px solid rgba(0, 0, 0, 0.15);\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.dropdown-menu-left {\r\n right: auto;\r\n left: 0;\r\n}\r\n\r\n.dropdown-menu-right {\r\n right: 0;\r\n left: auto;\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .dropdown-menu-sm-left {\r\n right: auto;\r\n left: 0;\r\n }\r\n .dropdown-menu-sm-right {\r\n right: 0;\r\n left: auto;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .dropdown-menu-md-left {\r\n right: auto;\r\n left: 0;\r\n }\r\n .dropdown-menu-md-right {\r\n right: 0;\r\n left: auto;\r\n }\r\n}\r\n\r\n@media (min-width: 992px) {\r\n .dropdown-menu-lg-left {\r\n right: auto;\r\n left: 0;\r\n }\r\n .dropdown-menu-lg-right {\r\n right: 0;\r\n left: auto;\r\n }\r\n}\r\n\r\n@media (min-width: 1200px) {\r\n .dropdown-menu-xl-left {\r\n right: auto;\r\n left: 0;\r\n }\r\n .dropdown-menu-xl-right {\r\n right: 0;\r\n left: auto;\r\n }\r\n}\r\n\r\n.dropup .dropdown-menu {\r\n top: auto;\r\n bottom: 100%;\r\n margin-top: 0;\r\n margin-bottom: 0.125rem;\r\n}\r\n\r\n.dropup .dropdown-toggle::after {\r\n display: inline-block;\r\n margin-left: 0.255em;\r\n vertical-align: 0.255em;\r\n content: \"\";\r\n border-top: 0;\r\n border-right: 0.3em solid ${colors.transparent};\r\n border-bottom: 0.3em solid;\r\n border-left: 0.3em solid ${colors.transparent};\r\n}\r\n\r\n.dropup .dropdown-toggle:empty::after {\r\n margin-left: 0;\r\n}\r\n\r\n.dropright .dropdown-menu {\r\n top: 0;\r\n right: auto;\r\n left: 100%;\r\n margin-top: 0;\r\n margin-left: 0.125rem;\r\n}\r\n\r\n.dropright .dropdown-toggle::after {\r\n display: inline-block;\r\n margin-left: 0.255em;\r\n vertical-align: 0.255em;\r\n content: \"\";\r\n border-top: 0.3em solid ${colors.transparent};\r\n border-right: 0;\r\n border-bottom: 0.3em solid ${colors.transparent};\r\n border-left: 0.3em solid;\r\n}\r\n\r\n.dropright .dropdown-toggle:empty::after {\r\n margin-left: 0;\r\n}\r\n\r\n.dropright .dropdown-toggle::after {\r\n vertical-align: 0;\r\n}\r\n\r\n.dropleft .dropdown-menu {\r\n top: 0;\r\n right: 100%;\r\n left: auto;\r\n margin-top: 0;\r\n margin-right: 0.125rem;\r\n}\r\n\r\n.dropleft .dropdown-toggle::after {\r\n display: inline-block;\r\n margin-left: 0.255em;\r\n vertical-align: 0.255em;\r\n content: \"\";\r\n}\r\n\r\n.dropleft .dropdown-toggle::after {\r\n display: none;\r\n}\r\n\r\n.dropleft .dropdown-toggle::before {\r\n display: inline-block;\r\n margin-right: 0.255em;\r\n vertical-align: 0.255em;\r\n content: \"\";\r\n border-top: 0.3em solid ${colors.transparent};\r\n border-right: 0.3em solid;\r\n border-bottom: 0.3em solid ${colors.transparent};\r\n}\r\n\r\n.dropleft .dropdown-toggle:empty::after {\r\n margin-left: 0;\r\n}\r\n\r\n.dropleft .dropdown-toggle::before {\r\n vertical-align: 0;\r\n}\r\n\r\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\r\n right: auto;\r\n bottom: auto;\r\n}\r\n\r\n.dropdown-divider {\r\n height: 0;\r\n margin: 0.5rem 0;\r\n overflow: hidden;\r\n border-top: 1px solid ${colors.neutrals.n200};\r\n}\r\n\r\n.dropdown-item {\r\n cursor: pointer;\r\n display: block;\r\n width: 100%;\r\n padding: 0.25rem 1.5rem;\r\n clear: both;\r\n font-weight: 400;\r\n color: ${colors.neutrals.n700};\r\n text-align: inherit;\r\n white-space: nowrap;\r\n background-color: ${colors.transparent};\r\n border: 0;\r\n}\r\n\r\n.dropdown-item:hover, .dropdown-item:focus {\r\n color: ${colors.neutrals.n900};\r\n text-decoration: none;\r\n background-color: ${colors.neutrals.n200};\r\n}\r\n\r\n.dropdown-item.active, .dropdown-item:active {\r\n color: ${colors.neutrals.min};\r\n text-decoration: none;\r\n background-color: ${colors.bootstrap.primary};\r\n}\r\n\r\n.dropdown-item.disabled, .dropdown-item:disabled {\r\n color: ${colors.neutrals.n600};\r\n pointer-events: none;\r\n background-color: ${colors.transparent};\r\n}\r\n\r\n.dropdown-menu.show {\r\n display: block;\r\n}\r\n\r\n.dropdown-header {\r\n display: block;\r\n padding: 0.5rem 1.5rem;\r\n margin-bottom: 0;\r\n font-size: 0.875rem;\r\n color: ${colors.neutrals.n600};\r\n white-space: nowrap;\r\n}\r\n\r\n.dropdown-item-text {\r\n display: block;\r\n padding: 0.25rem 1.5rem;\r\n color: ${colors.neutrals.n900};\r\n}\r\n\r\n.btn-group,\r\n.btn-group-vertical {\r\n position: relative;\r\n display: -ms-inline-flexbox;\r\n display: inline-flex;\r\n vertical-align: middle;\r\n}\r\n\r\n.btn-group > .btn,\r\n.btn-group-vertical > .btn {\r\n position: relative;\r\n -ms-flex: 1 1 auto;\r\n flex: 1 1 auto;\r\n}\r\n\r\n.btn-group > .btn:hover,\r\n.btn-group-vertical > .btn:hover {\r\n z-index: 1;\r\n}\r\n\r\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\r\n.btn-group-vertical > .btn:focus,\r\n.btn-group-vertical > .btn:active,\r\n.btn-group-vertical > .btn.active {\r\n z-index: 1;\r\n}\r\n\r\n.btn-toolbar {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n}\r\n\r\n.btn-toolbar .input-group {\r\n width: auto;\r\n}\r\n\r\n.btn-group > .btn:not(:first-of-type),\r\n.btn-group > .btn-group:not(:first-of-type) {\r\n margin-left: -1px;\r\n}\r\n\r\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\r\n.btn-group > .btn-group:not(:last-child) > .btn {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n}\r\n\r\n.btn-group > .btn:not(:first-of-type),\r\n.btn-group > .btn-group:not(:first-of-type) > .btn {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n}\r\n\r\n.dropdown-toggle-split {\r\n padding-right: 0.5625rem;\r\n padding-left: 0.5625rem;\r\n}\r\n\r\n.dropdown-toggle-split::after,\r\n.dropup .dropdown-toggle-split::after,\r\n.dropright .dropdown-toggle-split::after {\r\n margin-left: 0;\r\n}\r\n\r\n.dropleft .dropdown-toggle-split::before {\r\n margin-right: 0;\r\n}\r\n\r\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\r\n padding-right: 0.375rem;\r\n padding-left: 0.375rem;\r\n}\r\n\r\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\r\n padding-right: 0.75rem;\r\n padding-left: 0.75rem;\r\n}\r\n\r\n.btn-group-vertical {\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n -ms-flex-align: start;\r\n align-items: flex-start;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n}\r\n\r\n.btn-group-vertical > .btn,\r\n.btn-group-vertical > .btn-group {\r\n width: 100%;\r\n}\r\n\r\n.btn-group-vertical > .btn:not(:first-of-type),\r\n.btn-group-vertical > .btn-group:not(:first-of-type) {\r\n margin-top: -1px;\r\n}\r\n\r\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\r\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\r\n border-bottom-right-radius: 0;\r\n border-bottom-left-radius: 0;\r\n}\r\n\r\n.btn-group-vertical > .btn:not(:first-of-type),\r\n.btn-group-vertical > .btn-group:not(:first-of-type) > .btn {\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n}\r\n\r\n.btn-group-toggle > .btn,\r\n.btn-group-toggle > .btn-group > .btn {\r\n margin-bottom: 0;\r\n}\r\n\r\n.btn-group-toggle > .btn input[type=\"radio\"],\r\n.btn-group-toggle > .btn input[type=\"checkbox\"],\r\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\r\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\r\n position: absolute;\r\n clip: rect(0, 0, 0, 0);\r\n pointer-events: none;\r\n}\r\n\r\n.input-group {\r\n position: relative;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n -ms-flex-align: stretch;\r\n align-items: stretch;\r\n width: 100%;\r\n}\r\n\r\n.input-group > .form-control,\r\n.input-group > .form-control-plaintext,\r\n.input-group > .custom-select,\r\n.input-group > .custom-file {\r\n position: relative;\r\n -ms-flex: 1 1 auto;\r\n flex: 1 1 auto;\r\n width: 1%;\r\n min-width: 0;\r\n margin-bottom: 0;\r\n}\r\n\r\n.input-group > .form-control + .form-control,\r\n.input-group > .form-control + .custom-select,\r\n.input-group > .form-control + .custom-file,\r\n.input-group > .form-control-plaintext + .form-control,\r\n.input-group > .form-control-plaintext + .custom-select,\r\n.input-group > .form-control-plaintext + .custom-file,\r\n.input-group > .custom-select + .form-control,\r\n.input-group > .custom-select + .custom-select,\r\n.input-group > .custom-select + .custom-file,\r\n.input-group > .custom-file + .form-control,\r\n.input-group > .custom-file + .custom-select,\r\n.input-group > .custom-file + .custom-file {\r\n margin-left: -1px;\r\n}\r\n\r\n.input-group > .form-control:focus,\r\n.input-group > .custom-select:focus,\r\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\r\n z-index: 3;\r\n}\r\n\r\n.input-group > .custom-file .custom-file-input:focus {\r\n z-index: 4;\r\n}\r\n\r\n.input-group > .form-control:not(:first-of-type),\r\n.input-group > .custom-select:not(:first-of-type) {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n}\r\n\r\n.input-group > .custom-file {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n}\r\n\r\n.input-group > .custom-file:not(:last-child) .custom-file-label,\r\n.input-group > .custom-file:not(:first-of-type) .custom-file-label {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n}\r\n\r\n.input-group:not(.has-validation) > .form-control:not(:last-child),\r\n.input-group:not(.has-validation) > .custom-select:not(:last-child),\r\n.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n}\r\n\r\n.input-group.has-validation > .form-control:last-of-type(n + 3),\r\n.input-group.has-validation > .custom-select:last-of-type(n + 3),\r\n.input-group.has-validation > .custom-file:last-of-type(n + 3) .custom-file-label::after {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n}\r\n\r\n.input-group-prepend,\r\n.input-group-append {\r\n display: -ms-flexbox;\r\n display: flex;\r\n}\r\n\r\n.input-group-prepend .btn,\r\n.input-group-append .btn {\r\n position: relative;\r\n z-index: 2;\r\n}\r\n\r\n.input-group-prepend .btn:focus,\r\n.input-group-append .btn:focus {\r\n z-index: 3;\r\n}\r\n\r\n.input-group-prepend .btn + .btn,\r\n.input-group-prepend .btn + .input-group-text,\r\n.input-group-prepend .input-group-text + .input-group-text,\r\n.input-group-prepend .input-group-text + .btn,\r\n.input-group-append .btn + .btn,\r\n.input-group-append .btn + .input-group-text,\r\n.input-group-append .input-group-text + .input-group-text,\r\n.input-group-append .input-group-text + .btn {\r\n margin-left: -1px;\r\n}\r\n\r\n.input-group-prepend {\r\n margin-right: -1px;\r\n}\r\n\r\n.input-group-append {\r\n margin-left: -1px;\r\n}\r\n\r\n.input-group-text {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n padding: 0.375rem 0.75rem;\r\n margin-bottom: 0;\r\n font-size: 1rem;\r\n font-weight: 400;\r\n line-height: 1.5;\r\n color: ${colors.neutrals.n800};\r\n text-align: center;\r\n white-space: nowrap;\r\n background-color: ${colors.neutrals.midground};\r\n border: 1px solid ${colors.neutrals.n500};\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.input-group-text input[type=\"radio\"],\r\n.input-group-text input[type=\"checkbox\"] {\r\n margin-top: 0;\r\n}\r\n\r\n.input-group-lg > .form-control:not(textarea),\r\n.input-group-lg > .custom-select {\r\n height: calc(1.5em + 1rem + 2px);\r\n}\r\n\r\n.input-group-lg > .form-control,\r\n.input-group-lg > .custom-select,\r\n.input-group-lg > .input-group-prepend > .input-group-text,\r\n.input-group-lg > .input-group-append > .input-group-text,\r\n.input-group-lg > .input-group-prepend > .btn,\r\n.input-group-lg > .input-group-append > .btn {\r\n padding: 0.5rem 1rem;\r\n font-size: 1.25rem;\r\n line-height: 1.5;\r\n border-radius: 0.3rem;\r\n}\r\n\r\n.input-group-sm > .form-control:not(textarea),\r\n.input-group-sm > .custom-select {\r\n height: calc(1.5em + 0.5rem + 2px);\r\n}\r\n\r\n.input-group-sm > .form-control,\r\n.input-group-sm > .custom-select,\r\n.input-group-sm > .input-group-prepend > .input-group-text,\r\n.input-group-sm > .input-group-append > .input-group-text,\r\n.input-group-sm > .input-group-prepend > .btn,\r\n.input-group-sm > .input-group-append > .btn {\r\n padding: 0.25rem 0.5rem;\r\n font-size: 0.875rem;\r\n line-height: 1.5;\r\n border-radius: 0.2rem;\r\n}\r\n\r\n.input-group-lg > .custom-select,\r\n.input-group-sm > .custom-select {\r\n padding-right: 1.75rem;\r\n}\r\n\r\n.input-group > .input-group-prepend > .btn,\r\n.input-group > .input-group-prepend > .input-group-text,\r\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\r\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\r\n.input-group.has-validation > .input-group-append:last-of-type(n + 3) > .btn,\r\n.input-group.has-validation > .input-group-append:last-of-type(n + 3) > .input-group-text,\r\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\r\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n}\r\n\r\n.input-group > .input-group-append > .btn,\r\n.input-group > .input-group-append > .input-group-text,\r\n.input-group > .input-group-prepend:not(:first-of-type) > .btn,\r\n.input-group > .input-group-prepend:not(:first-of-type) > .input-group-text,\r\n.input-group > .input-group-prepend:first-of-type > .btn:not(:first-of-type),\r\n.input-group > .input-group-prepend:first-of-type > .input-group-text:not(:first-of-type) {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n}\r\n\r\n.custom-control {\r\n position: relative;\r\n z-index: 1;\r\n display: block;\r\n min-height: 1.5rem;\r\n padding-left: 1.5rem;\r\n -webkit-print-color-adjust: exact;\r\n color-adjust: exact;\r\n}\r\n\r\n.custom-control-inline {\r\n display: -ms-inline-flexbox;\r\n display: inline-flex;\r\n margin-right: 1rem;\r\n}\r\n\r\n.custom-control-input {\r\n position: absolute;\r\n left: 0;\r\n z-index: -1;\r\n width: 1rem;\r\n height: 1.25rem;\r\n opacity: 0;\r\n}\r\n\r\n.custom-control-input:checked ~ .custom-control-label::before {\r\n color: ${colors.neutrals.min};\r\n border-color: ${colors.bootstrap.primary};\r\n background-color: ${colors.bootstrap.primary};\r\n}\r\n\r\n.custom-control-input:focus ~ .custom-control-label::before {\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\r\n}\r\n\r\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\r\n border-color: #80bdff;\r\n}\r\n\r\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\r\n color: ${colors.neutrals.min};\r\n background-color: #b3d7ff;\r\n border-color: #b3d7ff;\r\n}\r\n\r\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\r\n color: ${colors.neutrals.n700};\r\n}\r\n\r\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\r\n background-color: ${colors.neutrals.n200};\r\n}\r\n\r\n.custom-control-label {\r\n position: relative;\r\n margin-bottom: 0;\r\n vertical-align: top;\r\n}\r\n\r\n.custom-control-label::before {\r\n position: absolute;\r\n top: 0.25rem;\r\n left: -1.5rem;\r\n display: block;\r\n width: 1rem;\r\n height: 1rem;\r\n pointer-events: none;\r\n content: \"\";\r\n background-color: ${colors.neutrals.min};\r\n border: #adb5bd solid 1px;\r\n}\r\n\r\n.custom-control-label::after {\r\n position: absolute;\r\n top: 0.25rem;\r\n left: -1.5rem;\r\n display: block;\r\n width: 1rem;\r\n height: 1rem;\r\n content: \"\";\r\n background: 50% / 50% 50% no-repeat;\r\n}\r\n\r\n.custom-checkbox .custom-control-label::before {\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\r\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\r\n}\r\n\r\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\r\n border-color: ${colors.bootstrap.primary};\r\n background-color: ${colors.bootstrap.primary};\r\n}\r\n\r\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\r\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\r\n}\r\n\r\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\r\n background-color: rgba(0, 123, 255, 0.5);\r\n}\r\n\r\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\r\n background-color: rgba(0, 123, 255, 0.5);\r\n}\r\n\r\n.custom-radio .custom-control-label::before {\r\n border-radius: 50%;\r\n}\r\n\r\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\r\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\r\n}\r\n\r\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\r\n background-color: rgba(0, 123, 255, 0.5);\r\n}\r\n\r\n.custom-switch {\r\n padding-left: 2.25rem;\r\n}\r\n\r\n.custom-switch .custom-control-label::before {\r\n left: -2.25rem;\r\n width: 1.75rem;\r\n pointer-events: all;\r\n border-radius: 0.5rem;\r\n}\r\n\r\n.custom-switch .custom-control-label::after {\r\n top: calc(0.25rem + 2px);\r\n left: calc(-2.25rem + 2px);\r\n width: calc(1rem - 4px);\r\n height: calc(1rem - 4px);\r\n background-color: #adb5bd;\r\n border-radius: 0.5rem;\r\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\r\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .custom-switch .custom-control-label::after {\r\n transition: none;\r\n }\r\n}\r\n\r\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\r\n background-color: ${colors.neutrals.min};\r\n -webkit-transform: translateX(0.75rem);\r\n transform: translateX(0.75rem);\r\n}\r\n\r\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\r\n background-color: rgba(0, 123, 255, 0.5);\r\n}\r\n\r\n.custom-select {\r\n display: inline-block;\r\n width: 100%;\r\n height: calc(1.5em + 0.75rem + 2px);\r\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\r\n font-size: 1rem;\r\n font-weight: 400;\r\n line-height: 1.5;\r\n color: ${colors.neutrals.n800};\r\n vertical-align: middle;\r\n background: ${colors.neutrals.min} url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat;\r\n border: 1px solid ${colors.neutrals.n400};\r\n border-radius: 0.25rem;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n appearance: none;\r\n}\r\n\r\n.custom-select:focus {\r\n border-color: #80bdff;\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\r\n}\r\n\r\n.custom-select:focus::-ms-value {\r\n color: ${colors.neutrals.n800};\r\n background-color: ${colors.neutrals.min};\r\n}\r\n\r\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\r\n height: auto;\r\n padding-right: 0.75rem;\r\n background-image: none;\r\n}\r\n\r\n.custom-select:disabled {\r\n color: ${colors.neutrals.n700};\r\n background-color: ${colors.neutrals.n200};\r\n}\r\n\r\n.custom-select::-ms-expand {\r\n display: none;\r\n}\r\n\r\n.custom-select:-moz-focusring {\r\n color: ${colors.transparent};\r\n text-shadow: 0 0 0 ${colors.neutrals.n800};\r\n}\r\n\r\n.custom-select-sm {\r\n height: calc(1.5em + 0.5rem + 2px);\r\n padding-top: 0.25rem;\r\n padding-bottom: 0.25rem;\r\n padding-left: 0.5rem;\r\n font-size: 0.875rem;\r\n}\r\n\r\n.custom-select-lg {\r\n height: calc(1.5em + 1rem + 2px);\r\n padding-top: 0.5rem;\r\n padding-bottom: 0.5rem;\r\n padding-left: 1rem;\r\n font-size: 1.25rem;\r\n}\r\n\r\n.custom-file {\r\n position: relative;\r\n display: inline-block;\r\n width: 100%;\r\n height: calc(1.5em + 0.75rem + 2px);\r\n margin-bottom: 0;\r\n}\r\n\r\n.custom-file-input {\r\n position: relative;\r\n z-index: 2;\r\n width: 100%;\r\n height: calc(1.5em + 0.75rem + 2px);\r\n margin: 0;\r\n overflow: hidden;\r\n opacity: 0;\r\n}\r\n\r\n.custom-file-input:focus ~ .custom-file-label {\r\n border-color: #80bdff;\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\r\n}\r\n\r\n.custom-file-input[disabled] ~ .custom-file-label,\r\n.custom-file-input:disabled ~ .custom-file-label {\r\n background-color: ${colors.neutrals.n200};\r\n}\r\n\r\n.custom-file-input:lang(en) ~ .custom-file-label::after {\r\n content: \"Browse\";\r\n}\r\n\r\n.custom-file-input ~ .custom-file-label[data-browse]::after {\r\n content: attr(data-browse);\r\n}\r\n\r\n.custom-file-label {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n left: 0;\r\n z-index: 1;\r\n height: calc(1.5em + 0.75rem + 2px);\r\n padding: 0.375rem 0.75rem;\r\n overflow: hidden;\r\n font-weight: 400;\r\n line-height: 1.5;\r\n color: ${colors.neutrals.n800};\r\n background-color: ${colors.neutrals.min};\r\n border: 1px solid ${colors.neutrals.n400};\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.custom-file-label::after {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 3;\r\n display: block;\r\n height: calc(1.5em + 0.75rem);\r\n padding: 0.375rem 0.75rem;\r\n line-height: 1.5;\r\n color: ${colors.neutrals.n800};\r\n content: \"Browse\";\r\n background-color: ${colors.neutrals.n200};\r\n border-left: inherit;\r\n border-radius: 0 0.25rem 0.25rem 0;\r\n}\r\n\r\n.custom-range {\r\n width: 100%;\r\n height: 1.4rem;\r\n padding: 0;\r\n background-color: ${colors.transparent};\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n appearance: none;\r\n}\r\n\r\n.custom-range:focus {\r\n outline: 0;\r\n}\r\n\r\n.custom-range:focus::-webkit-slider-thumb {\r\n box-shadow: 0 0 0 1px ${colors.neutrals.min}, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\r\n}\r\n\r\n.custom-range:focus::-moz-range-thumb {\r\n box-shadow: 0 0 0 1px ${colors.neutrals.min}, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\r\n}\r\n\r\n.custom-range:focus::-ms-thumb {\r\n box-shadow: 0 0 0 1px ${colors.neutrals.min}, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\r\n}\r\n\r\n.custom-range::-moz-focus-outer {\r\n border: 0;\r\n}\r\n\r\n.custom-range::-webkit-slider-thumb {\r\n width: 1rem;\r\n height: 1rem;\r\n margin-top: -0.25rem;\r\n background-color: ${colors.bootstrap.primary};\r\n border: 0;\r\n border-radius: 1rem;\r\n -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n -webkit-appearance: none;\r\n appearance: none;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .custom-range::-webkit-slider-thumb {\r\n -webkit-transition: none;\r\n transition: none;\r\n }\r\n}\r\n\r\n.custom-range::-webkit-slider-thumb:active {\r\n background-color: #b3d7ff;\r\n}\r\n\r\n.custom-range::-webkit-slider-runnable-track {\r\n width: 100%;\r\n height: 0.5rem;\r\n color: ${colors.transparent};\r\n cursor: pointer;\r\n background-color: ${colors.neutrals.n300};\r\n border-color: ${colors.transparent};\r\n border-radius: 1rem;\r\n}\r\n\r\n.custom-range::-moz-range-thumb {\r\n width: 1rem;\r\n height: 1rem;\r\n background-color: ${colors.bootstrap.primary};\r\n border: 0;\r\n border-radius: 1rem;\r\n -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n -moz-appearance: none;\r\n appearance: none;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .custom-range::-moz-range-thumb {\r\n -moz-transition: none;\r\n transition: none;\r\n }\r\n}\r\n\r\n.custom-range::-moz-range-thumb:active {\r\n background-color: #b3d7ff;\r\n}\r\n\r\n.custom-range::-moz-range-track {\r\n width: 100%;\r\n height: 0.5rem;\r\n color: ${colors.transparent};\r\n cursor: pointer;\r\n background-color: ${colors.neutrals.n300};\r\n border-color: ${colors.transparent};\r\n border-radius: 1rem;\r\n}\r\n\r\n.custom-range::-ms-thumb {\r\n width: 1rem;\r\n height: 1rem;\r\n margin-top: 0;\r\n margin-right: 0.2rem;\r\n margin-left: 0.2rem;\r\n background-color: ${colors.bootstrap.primary};\r\n border: 0;\r\n border-radius: 1rem;\r\n -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n appearance: none;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .custom-range::-ms-thumb {\r\n -ms-transition: none;\r\n transition: none;\r\n }\r\n}\r\n\r\n.custom-range::-ms-thumb:active {\r\n background-color: #b3d7ff;\r\n}\r\n\r\n.custom-range::-ms-track {\r\n width: 100%;\r\n height: 0.5rem;\r\n color: ${colors.transparent};\r\n cursor: pointer;\r\n background-color: ${colors.transparent};\r\n border-color: ${colors.transparent};\r\n border-width: 0.5rem;\r\n}\r\n\r\n.custom-range::-ms-fill-lower {\r\n background-color: ${colors.neutrals.n300};\r\n border-radius: 1rem;\r\n}\r\n\r\n.custom-range::-ms-fill-upper {\r\n margin-right: 15px;\r\n background-color: ${colors.neutrals.n300};\r\n border-radius: 1rem;\r\n}\r\n\r\n.custom-range:disabled::-webkit-slider-thumb {\r\n background-color: #adb5bd;\r\n}\r\n\r\n.custom-range:disabled::-webkit-slider-runnable-track {\r\n cursor: default;\r\n}\r\n\r\n.custom-range:disabled::-moz-range-thumb {\r\n background-color: #adb5bd;\r\n}\r\n\r\n.custom-range:disabled::-moz-range-track {\r\n cursor: default;\r\n}\r\n\r\n.custom-range:disabled::-ms-thumb {\r\n background-color: #adb5bd;\r\n}\r\n\r\n.custom-control-label::before,\r\n.custom-file-label,\r\n.custom-select {\r\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .custom-control-label::before,\r\n .custom-file-label,\r\n .custom-select {\r\n transition: none;\r\n }\r\n}\r\n\r\n.nav {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n padding-left: 0;\r\n margin-bottom: 0;\r\n list-style: none;\r\n}\r\n\r\n.nav-link {\r\n display: block;\r\n padding: 0.5rem 1rem;\r\n}\r\n\r\n.nav-link:hover, .nav-link:focus {\r\n text-decoration: none;\r\n}\r\n\r\n.nav-link.disabled {\r\n color: ${colors.neutrals.n700};\r\n pointer-events: none;\r\n cursor: default;\r\n}\r\n\r\n.nav-tabs {\r\n border-bottom: 1px solid ${colors.neutrals.n300};\r\n}\r\n\r\n.nav-tabs .nav-link {\r\n margin-bottom: -1px;\r\n border: 1px solid ${colors.transparent};\r\n border-top-left-radius: 0.25rem;\r\n border-top-right-radius: 0.25rem;\r\n}\r\n\r\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\r\n border-color: ${colors.neutrals.n200} ${colors.neutrals.n200} ${colors.neutrals.n300};\r\n}\r\n\r\n.nav-tabs .nav-link.disabled {\r\n color: ${colors.neutrals.n700};\r\n background-color: ${colors.transparent};\r\n border-color: ${colors.transparent};\r\n}\r\n\r\n.nav-tabs .nav-link.active,\r\n.nav-tabs .nav-item.show .nav-link {\r\n color: ${colors.neutrals.n800};\r\n background-color: ${colors.neutrals.min};\r\n border-color: ${colors.neutrals.n300} ${colors.neutrals.n300} ${colors.neutrals.min};\r\n}\r\n\r\n.nav-tabs .dropdown-menu {\r\n margin-top: -1px;\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n}\r\n\r\n.nav-pills .nav-link {\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.nav-pills .nav-link.active,\r\n.nav-pills .show > .nav-link {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.primary};\r\n}\r\n\r\n.nav-fill > .nav-link,\r\n.nav-fill .nav-item {\r\n -ms-flex: 1 1 auto;\r\n flex: 1 1 auto;\r\n text-align: center;\r\n}\r\n\r\n.nav-justified > .nav-link,\r\n.nav-justified .nav-item {\r\n -ms-flex-preferred-size: 0;\r\n flex-basis: 0;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n text-align: center;\r\n}\r\n\r\n.tab-content > .tab-pane {\r\n display: none;\r\n}\r\n\r\n.tab-content > .active {\r\n display: block;\r\n}\r\n\r\n.navbar {\r\n position: relative;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -ms-flex-pack: justify;\r\n justify-content: space-between;\r\n padding: 0.5rem 1rem;\r\n}\r\n\r\n.navbar .container,\r\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -ms-flex-pack: justify;\r\n justify-content: space-between;\r\n}\r\n\r\n.navbar-brand {\r\n display: inline-block;\r\n padding-top: 0.3125rem;\r\n padding-bottom: 0.3125rem;\r\n margin-right: 1rem;\r\n font-size: 1.25rem;\r\n line-height: inherit;\r\n white-space: nowrap;\r\n}\r\n\r\n.navbar-brand:hover, .navbar-brand:focus {\r\n text-decoration: none;\r\n}\r\n\r\n.navbar-nav {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n padding-left: 0;\r\n margin-bottom: 0;\r\n list-style: none;\r\n}\r\n\r\n.navbar-nav .nav-link {\r\n padding-right: 0;\r\n padding-left: 0;\r\n}\r\n\r\n.navbar-nav .dropdown-menu {\r\n position: static;\r\n float: none;\r\n}\r\n\r\n.navbar-text {\r\n display: inline-block;\r\n padding-top: 0.5rem;\r\n padding-bottom: 0.5rem;\r\n}\r\n\r\n.navbar-collapse {\r\n -ms-flex-preferred-size: 100%;\r\n flex-basis: 100%;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n}\r\n\r\n.navbar-toggler {\r\n padding: 0.25rem 0.75rem;\r\n font-size: 1.25rem;\r\n line-height: 1;\r\n background-color: ${colors.transparent};\r\n border: 1px solid ${colors.transparent};\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.navbar-toggler:hover, .navbar-toggler:focus {\r\n text-decoration: none;\r\n}\r\n\r\n.navbar-toggler-icon {\r\n display: inline-block;\r\n width: 1.5em;\r\n height: 1.5em;\r\n vertical-align: middle;\r\n content: \"\";\r\n background: 50% / 100% 100% no-repeat;\r\n}\r\n\r\n.navbar-nav-scroll {\r\n max-height: 75vh;\r\n overflow-y: auto;\r\n}\r\n\r\n@media (max-width: 575.98px) {\r\n .navbar-expand-sm > .container,\r\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\r\n padding-right: 0;\r\n padding-left: 0;\r\n }\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .navbar-expand-sm {\r\n -ms-flex-flow: row nowrap;\r\n flex-flow: row nowrap;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n }\r\n .navbar-expand-sm .navbar-nav {\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n }\r\n .navbar-expand-sm .navbar-nav .dropdown-menu {\r\n position: absolute;\r\n }\r\n .navbar-expand-sm .navbar-nav .nav-link {\r\n padding-right: 0.5rem;\r\n padding-left: 0.5rem;\r\n }\r\n .navbar-expand-sm > .container,\r\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\r\n -ms-flex-wrap: nowrap;\r\n flex-wrap: nowrap;\r\n }\r\n .navbar-expand-sm .navbar-nav-scroll {\r\n overflow: visible;\r\n }\r\n .navbar-expand-sm .navbar-collapse {\r\n display: -ms-flexbox !important;\r\n display: flex !important;\r\n -ms-flex-preferred-size: auto;\r\n flex-basis: auto;\r\n }\r\n .navbar-expand-sm .navbar-toggler {\r\n display: none;\r\n }\r\n}\r\n\r\n@media (max-width: 767.98px) {\r\n .navbar-expand-md > .container,\r\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\r\n padding-right: 0;\r\n padding-left: 0;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .navbar-expand-md {\r\n -ms-flex-flow: row nowrap;\r\n flex-flow: row nowrap;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n }\r\n .navbar-expand-md .navbar-nav {\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n }\r\n .navbar-expand-md .navbar-nav .dropdown-menu {\r\n position: absolute;\r\n }\r\n .navbar-expand-md .navbar-nav .nav-link {\r\n padding-right: 0.5rem;\r\n padding-left: 0.5rem;\r\n }\r\n .navbar-expand-md > .container,\r\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\r\n -ms-flex-wrap: nowrap;\r\n flex-wrap: nowrap;\r\n }\r\n .navbar-expand-md .navbar-nav-scroll {\r\n overflow: visible;\r\n }\r\n .navbar-expand-md .navbar-collapse {\r\n display: -ms-flexbox !important;\r\n display: flex !important;\r\n -ms-flex-preferred-size: auto;\r\n flex-basis: auto;\r\n }\r\n .navbar-expand-md .navbar-toggler {\r\n display: none;\r\n }\r\n}\r\n\r\n@media (max-width: 991.98px) {\r\n .navbar-expand-lg > .container,\r\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\r\n padding-right: 0;\r\n padding-left: 0;\r\n }\r\n}\r\n\r\n@media (min-width: 992px) {\r\n .navbar-expand-lg {\r\n -ms-flex-flow: row nowrap;\r\n flex-flow: row nowrap;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n }\r\n .navbar-expand-lg .navbar-nav {\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n }\r\n .navbar-expand-lg .navbar-nav .dropdown-menu {\r\n position: absolute;\r\n }\r\n .navbar-expand-lg .navbar-nav .nav-link {\r\n padding-right: 0.5rem;\r\n padding-left: 0.5rem;\r\n }\r\n .navbar-expand-lg > .container,\r\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\r\n -ms-flex-wrap: nowrap;\r\n flex-wrap: nowrap;\r\n }\r\n .navbar-expand-lg .navbar-nav-scroll {\r\n overflow: visible;\r\n }\r\n .navbar-expand-lg .navbar-collapse {\r\n display: -ms-flexbox !important;\r\n display: flex !important;\r\n -ms-flex-preferred-size: auto;\r\n flex-basis: auto;\r\n }\r\n .navbar-expand-lg .navbar-toggler {\r\n display: none;\r\n }\r\n}\r\n\r\n@media (max-width: 1199.98px) {\r\n .navbar-expand-xl > .container,\r\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\r\n padding-right: 0;\r\n padding-left: 0;\r\n }\r\n}\r\n\r\n@media (min-width: 1200px) {\r\n .navbar-expand-xl {\r\n -ms-flex-flow: row nowrap;\r\n flex-flow: row nowrap;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n }\r\n .navbar-expand-xl .navbar-nav {\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n }\r\n .navbar-expand-xl .navbar-nav .dropdown-menu {\r\n position: absolute;\r\n }\r\n .navbar-expand-xl .navbar-nav .nav-link {\r\n padding-right: 0.5rem;\r\n padding-left: 0.5rem;\r\n }\r\n .navbar-expand-xl > .container,\r\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\r\n -ms-flex-wrap: nowrap;\r\n flex-wrap: nowrap;\r\n }\r\n .navbar-expand-xl .navbar-nav-scroll {\r\n overflow: visible;\r\n }\r\n .navbar-expand-xl .navbar-collapse {\r\n display: -ms-flexbox !important;\r\n display: flex !important;\r\n -ms-flex-preferred-size: auto;\r\n flex-basis: auto;\r\n }\r\n .navbar-expand-xl .navbar-toggler {\r\n display: none;\r\n }\r\n}\r\n\r\n.navbar-expand {\r\n -ms-flex-flow: row nowrap;\r\n flex-flow: row nowrap;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n}\r\n\r\n.navbar-expand > .container,\r\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\r\n padding-right: 0;\r\n padding-left: 0;\r\n}\r\n\r\n.navbar-expand .navbar-nav {\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n}\r\n\r\n.navbar-expand .navbar-nav .dropdown-menu {\r\n position: absolute;\r\n}\r\n\r\n.navbar-expand .navbar-nav .nav-link {\r\n padding-right: 0.5rem;\r\n padding-left: 0.5rem;\r\n}\r\n\r\n.navbar-expand > .container,\r\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\r\n -ms-flex-wrap: nowrap;\r\n flex-wrap: nowrap;\r\n}\r\n\r\n.navbar-expand .navbar-nav-scroll {\r\n overflow: visible;\r\n}\r\n\r\n.navbar-expand .navbar-collapse {\r\n display: -ms-flexbox !important;\r\n display: flex !important;\r\n -ms-flex-preferred-size: auto;\r\n flex-basis: auto;\r\n}\r\n\r\n.navbar-expand .navbar-toggler {\r\n display: none;\r\n}\r\n\r\n.navbar-light .navbar-brand {\r\n color: ${colors.neutrals.n900};\r\n}\r\n\r\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\r\n color: ${colors.neutrals.n900};\r\n}\r\n\r\n.navbar-light .navbar-nav .nav-link {\r\n color: ${colors.neutrals.n700};\r\n}\r\n\r\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\r\n color: ${colors.neutrals.n800};\r\n}\r\n\r\n.navbar-light .navbar-nav .nav-link.disabled {\r\n color: ${colors.neutrals.n500};\r\n}\r\n\r\n.navbar-light .navbar-nav .show > .nav-link,\r\n.navbar-light .navbar-nav .active > .nav-link,\r\n.navbar-light .navbar-nav .nav-link.show,\r\n.navbar-light .navbar-nav .nav-link.active {\r\n color: ${colors.neutrals.max}\r\n}\r\n\r\n.navbar-light .navbar-toggler {\r\n color: rgba(0, 0, 0, 0.5);\r\n border-color: rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.navbar-light .navbar-toggler-icon {\r\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\r\n}\r\n\r\n.navbar-light .navbar-text {\r\n color: ${colors.neutrals.n700};\r\n}\r\n\r\n.navbar-light .navbar-text a {\r\n color: ${colors.neutrals.n900}\r\n}\r\n\r\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\r\n color: ${colors.neutrals.min}\r\n opacity: 0.9\r\n}\r\n\r\n.navbar-dark .navbar-brand {\r\n color: ${colors.neutrals.n200};\r\n}\r\n\r\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\r\n color: ${colors.neutrals.min};\r\n}\r\n\r\n.navbar-dark .navbar-nav .nav-link {\r\n color: ${colors.neutrals.n200};\r\n}\r\n\r\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\r\n color: ${colors.neutrals.min};\r\n}\r\n\r\n.navbar-dark .navbar-nav .nav-link.disabled {\r\n color: rgba(255, 255, 255, 0.25);\r\n}\r\n\r\n.navbar-dark .navbar-nav .show > .nav-link,\r\n.navbar-dark .navbar-nav .active > .nav-link,\r\n.navbar-dark .navbar-nav .nav-link.show,\r\n.navbar-dark .navbar-nav .nav-link.active {\r\n color: ${colors.neutrals.min};\r\n}\r\n\r\n.navbar-dark .navbar-toggler {\r\n color: rgba(255, 255, 255, 0.5);\r\n border-color: rgba(255, 255, 255, 0.1);\r\n}\r\n\r\n.navbar-dark .navbar-toggler-icon {\r\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\r\n}\r\n\r\n.navbar-dark .navbar-text {\r\n color: rgba(255, 255, 255, 0.5);\r\n}\r\n\r\n.navbar-dark .navbar-text a {\r\n color: ${colors.neutrals.min};\r\n}\r\n\r\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\r\n color: ${colors.neutrals.min};\r\n}\r\n\r\n.card {\r\n position: relative;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n min-width: 0;\r\n word-wrap: break-word;\r\n background-color: ${colors.neutrals.midground};\r\n background-clip: border-box;\r\n border: 1px solid rgba(0, 0, 0, 0.125);\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.card > hr {\r\n margin-right: 0;\r\n margin-left: 0;\r\n}\r\n\r\n.card > .list-group {\r\n border-top: inherit;\r\n border-bottom: inherit;\r\n}\r\n\r\n.card > .list-group:first-of-type {\r\n border-top-width: 0;\r\n border-top-left-radius: calc(0.25rem - 1px);\r\n border-top-right-radius: calc(0.25rem - 1px);\r\n}\r\n\r\n.card > .list-group:last-child {\r\n border-bottom-width: 0;\r\n border-bottom-right-radius: calc(0.25rem - 1px);\r\n border-bottom-left-radius: calc(0.25rem - 1px);\r\n}\r\n\r\n.card > .card-header + .list-group,\r\n.card > .list-group + .card-footer {\r\n border-top: 0;\r\n}\r\n\r\n.card-body {\r\n -ms-flex: 1 1 auto;\r\n flex: 1 1 auto;\r\n min-height: 1px;\r\n padding: 1.25rem;\r\n}\r\n\r\n.card-title {\r\n margin-bottom: 0.75rem;\r\n}\r\n\r\n.card-subtitle {\r\n margin-top: -0.375rem;\r\n margin-bottom: 0;\r\n}\r\n\r\n.card-text:last-child {\r\n margin-bottom: 0;\r\n}\r\n\r\n.card-link:hover {\r\n text-decoration: none;\r\n}\r\n\r\n.card-link + .card-link {\r\n margin-left: 1.25rem;\r\n}\r\n\r\n.card-header {\r\n padding: 0.75rem 1.25rem;\r\n margin-bottom: 0;\r\n background-color: ${colors.neutrals.midground};\r\n border-bottom: 1px solid ${(0, tinycolor2_1.default)(colors.neutrals.max)\r\n .setAlpha(0.125)\r\n .toHex8String()};\r\n}\r\n\r\n.card-header:first-of-type {\r\n border-radius: calc(0.25rem - 1px);\r\n}\r\n\r\n.card-footer {\r\n padding: 0.75rem 1.25rem;\r\n background-color: rgba(0, 0, 0, 0.03);\r\n border-top: 1px solid rgba(0, 0, 0, 0.125);\r\n}\r\n\r\n.card-footer:last-child {\r\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\r\n}\r\n\r\n.card-header-tabs {\r\n margin-right: -0.625rem;\r\n margin-bottom: -0.75rem;\r\n margin-left: -0.625rem;\r\n border-bottom: 0;\r\n}\r\n\r\n.card-header-pills {\r\n margin-right: -0.625rem;\r\n margin-left: -0.625rem;\r\n}\r\n\r\n.card-img-overlay {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n padding: 1.25rem;\r\n border-radius: calc(0.25rem - 1px);\r\n}\r\n\r\n.card-img,\r\n.card-img-top,\r\n.card-img-bottom {\r\n -ms-flex-negative: 0;\r\n flex-shrink: 0;\r\n width: 100%;\r\n}\r\n\r\n.card-img,\r\n.card-img-top {\r\n border-top-left-radius: calc(0.25rem - 1px);\r\n border-top-right-radius: calc(0.25rem - 1px);\r\n}\r\n\r\n.card-img,\r\n.card-img-bottom {\r\n border-bottom-right-radius: calc(0.25rem - 1px);\r\n border-bottom-left-radius: calc(0.25rem - 1px);\r\n}\r\n\r\n.card-deck .card {\r\n margin-bottom: 15px;\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .card-deck {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-flow: row wrap;\r\n flex-flow: row wrap;\r\n margin-right: -15px;\r\n margin-left: -15px;\r\n }\r\n .card-deck .card {\r\n -ms-flex: 1 0 0%;\r\n flex: 1 0 0%;\r\n margin-right: 15px;\r\n margin-bottom: 0;\r\n margin-left: 15px;\r\n }\r\n}\r\n\r\n.card-group > .card {\r\n margin-bottom: 15px;\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .card-group {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-flow: row wrap;\r\n flex-flow: row wrap;\r\n }\r\n .card-group > .card {\r\n -ms-flex: 1 0 0%;\r\n flex: 1 0 0%;\r\n margin-bottom: 0;\r\n }\r\n .card-group > .card + .card {\r\n margin-left: 0;\r\n border-left: 0;\r\n }\r\n .card-group > .card:not(:last-child) {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n }\r\n .card-group > .card:not(:last-child) .card-img-top,\r\n .card-group > .card:not(:last-child) .card-header {\r\n border-top-right-radius: 0;\r\n }\r\n .card-group > .card:not(:last-child) .card-img-bottom,\r\n .card-group > .card:not(:last-child) .card-footer {\r\n border-bottom-right-radius: 0;\r\n }\r\n .card-group > .card:not(:first-of-type) {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n .card-group > .card:not(:first-of-type) .card-img-top,\r\n .card-group > .card:not(:first-of-type) .card-header {\r\n border-top-left-radius: 0;\r\n }\r\n .card-group > .card:not(:first-of-type) .card-img-bottom,\r\n .card-group > .card:not(:first-of-type) .card-footer {\r\n border-bottom-left-radius: 0;\r\n }\r\n}\r\n\r\n.card-columns .card {\r\n margin-bottom: 0.75rem;\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .card-columns {\r\n -webkit-column-count: 3;\r\n -moz-column-count: 3;\r\n column-count: 3;\r\n -webkit-column-gap: 1.25rem;\r\n -moz-column-gap: 1.25rem;\r\n column-gap: 1.25rem;\r\n orphans: 1;\r\n widows: 1;\r\n }\r\n .card-columns .card {\r\n display: inline-block;\r\n width: 100%;\r\n }\r\n}\r\n\r\n.accordion {\r\n overflow-anchor: none;\r\n}\r\n\r\n.accordion > .card {\r\n overflow: hidden;\r\n}\r\n\r\n.accordion > .card:not(:last-of-type) {\r\n border-bottom: 0;\r\n border-bottom-right-radius: 0;\r\n border-bottom-left-radius: 0;\r\n}\r\n\r\n.accordion > .card:not(:first-of-type) {\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n}\r\n\r\n.accordion > .card > .card-header {\r\n border-radius: 0;\r\n margin-bottom: -1px;\r\n}\r\n\r\n.breadcrumb {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n padding: 0.75rem 1rem;\r\n margin-bottom: 1rem;\r\n list-style: none;\r\n background-color: ${colors.neutrals.n200};\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.breadcrumb-item + .breadcrumb-item {\r\n padding-left: 0.5rem;\r\n}\r\n\r\n.breadcrumb-item + .breadcrumb-item::before {\r\n float: left;\r\n padding-right: 0.5rem;\r\n color: ${colors.neutrals.n700};\r\n content: \"/\";\r\n}\r\n\r\n.breadcrumb-item + .breadcrumb-item:hover::before {\r\n text-decoration: underline;\r\n}\r\n\r\n.breadcrumb-item + .breadcrumb-item:hover::before {\r\n text-decoration: none;\r\n}\r\n\r\n.breadcrumb-item.active {\r\n color: ${colors.bootstrap.secondary};\r\n}\r\n\r\n.pagination {\r\n display: -ms-flexbox;\r\n display: flex;\r\n padding-left: 0;\r\n list-style: none;\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.page-link {\r\n position: relative;\r\n display: block;\r\n padding: 0.5rem 0.75rem;\r\n margin-left: -1px;\r\n line-height: 1.25;\r\n color: ${colors.bootstrap.primary};\r\n background-color: ${colors.neutrals.min};\r\n border: 1px solid ${colors.neutrals.n300};\r\n}\r\n\r\n.page-link:hover {\r\n z-index: 2;\r\n color: #0056b3;\r\n text-decoration: none;\r\n background-color: ${colors.neutrals.n200};\r\n border-color: ${colors.neutrals.n300};\r\n}\r\n\r\n.page-link:focus {\r\n z-index: 3;\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\r\n}\r\n\r\n.page-item:first-of-type .page-link {\r\n margin-left: 0;\r\n border-top-left-radius: 0.25rem;\r\n border-bottom-left-radius: 0.25rem;\r\n}\r\n\r\n.page-item:last-child .page-link {\r\n border-top-right-radius: 0.25rem;\r\n border-bottom-right-radius: 0.25rem;\r\n}\r\n\r\n.page-item.active .page-link {\r\n z-index: 3;\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.primary};\r\n border-color: ${colors.bootstrap.primary};\r\n}\r\n\r\n.page-item.disabled .page-link {\r\n color: ${colors.neutrals.n700};\r\n pointer-events: none;\r\n cursor: auto;\r\n background-color: ${colors.neutrals.min};\r\n border-color: ${colors.neutrals.n300};\r\n}\r\n\r\n.pagination-lg .page-link {\r\n padding: 0.75rem 1.5rem;\r\n font-size: 1.25rem;\r\n line-height: 1.5;\r\n}\r\n\r\n.pagination-lg .page-item:first-of-type .page-link {\r\n border-top-left-radius: 0.3rem;\r\n border-bottom-left-radius: 0.3rem;\r\n}\r\n\r\n.pagination-lg .page-item:last-child .page-link {\r\n border-top-right-radius: 0.3rem;\r\n border-bottom-right-radius: 0.3rem;\r\n}\r\n\r\n.pagination-sm .page-link {\r\n padding: 0.25rem 0.5rem;\r\n font-size: 0.875rem;\r\n line-height: 1.5;\r\n}\r\n\r\n.pagination-sm .page-item:first-of-type .page-link {\r\n border-top-left-radius: 0.2rem;\r\n border-bottom-left-radius: 0.2rem;\r\n}\r\n\r\n.pagination-sm .page-item:last-child .page-link {\r\n border-top-right-radius: 0.2rem;\r\n border-bottom-right-radius: 0.2rem;\r\n}\r\n\r\n.badge {\r\n display: inline-block;\r\n padding: 0.25em 0.4em;\r\n font-size: 75%;\r\n font-weight: 700;\r\n line-height: 1;\r\n text-align: center;\r\n white-space: nowrap;\r\n vertical-align: baseline;\r\n border-radius: 0.25rem;\r\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .badge {\r\n transition: none;\r\n }\r\n}\r\n\r\na.badge:hover, a.badge:focus {\r\n text-decoration: none;\r\n}\r\n\r\n.badge:empty {\r\n display: none;\r\n}\r\n\r\n.btn .badge {\r\n position: relative;\r\n top: -1px;\r\n}\r\n\r\n.badge-pill {\r\n padding-right: 0.6em;\r\n padding-left: 0.6em;\r\n border-radius: 10rem;\r\n}\r\n\r\n.badge-primary {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.primary};\r\n}\r\n\r\na.badge-primary:hover, a.badge-primary:focus {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.primaryHigh};\r\n}\r\n\r\na.badge-primary:focus, a.badge-primary.focus {\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\r\n}\r\n\r\n.badge-secondary {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.secondary};\r\n}\r\n\r\na.badge-secondary:hover, a.badge-secondary:focus {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.secondaryHigh};\r\n}\r\n\r\na.badge-secondary:focus, a.badge-secondary.focus {\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\r\n}\r\n\r\n.badge-success {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.success};\r\n}\r\n\r\na.badge-success:hover, a.badge-success:focus {\r\n color: ${colors.neutrals.min};\r\n background-color: #1e7e34;\r\n}\r\n\r\na.badge-success:focus, a.badge-success.focus {\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\r\n}\r\n\r\n.badge-info {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.info};\r\n}\r\n\r\na.badge-info:hover, a.badge-info:focus {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.infoHigh};\r\n}\r\n\r\na.badge-info:focus, a.badge-info.focus {\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\r\n}\r\n\r\n.badge-warning {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.bootstrap.warning};\r\n}\r\n\r\na.badge-warning:hover, a.badge-warning:focus {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.bootstrap.warningHigh};\r\n}\r\n\r\na.badge-warning:focus, a.badge-warning.focus {\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\r\n}\r\n\r\n.badge-danger {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.danger};\r\n}\r\n\r\na.badge-danger:hover, a.badge-danger:focus {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.dangerHigh};\r\n}\r\n\r\na.badge-danger:focus, a.badge-danger.focus {\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\r\n}\r\n\r\n.badge-light {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.n200};\r\n}\r\n\r\na.badge-light:hover, a.badge-light:focus {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.n400};\r\n}\r\n\r\na.badge-light:focus, a.badge-light.focus {\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\r\n}\r\n\r\n.badge-dark {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.n800};\r\n}\r\n\r\na.badge-dark:hover, a.badge-dark:focus {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.max};\r\n}\r\n\r\na.badge-dark:focus, a.badge-dark.focus {\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\r\n}\r\n\r\n.jumbotron {\r\n padding: 2rem 1rem;\r\n margin-bottom: 2rem;\r\n background-color: ${colors.neutrals.n200};\r\n border-radius: 0.3rem;\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .jumbotron {\r\n padding: 4rem 2rem;\r\n }\r\n}\r\n\r\n.jumbotron-fluid {\r\n padding-right: 0;\r\n padding-left: 0;\r\n border-radius: 0;\r\n}\r\n\r\n.alert {\r\n position: relative;\r\n padding: 0.75rem 1.25rem;\r\n margin-bottom: 1rem;\r\n border: 1px solid ${colors.transparent};\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.alert-heading {\r\n color: inherit;\r\n}\r\n\r\n.alert-link {\r\n font-weight: 700;\r\n}\r\n\r\n.alert-dismissible {\r\n padding-right: 4rem;\r\n}\r\n\r\n.alert-dismissible .close {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n z-index: 2;\r\n padding: 0.75rem 1.25rem;\r\n color: inherit;\r\n}\r\n\r\n.alert-primary {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.primary};\r\n border-color: ${colors.bootstrap.primaryHigh};\r\n}\r\n\r\n.alert-primary hr {\r\n border-top-color: #9fcdff;\r\n}\r\n\r\n.alert-primary .alert-link {\r\n color: ${colors.neutrals.min};\r\n}\r\n\r\n.alert-secondary {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.secondary};\r\n border-color: ${colors.bootstrap.secondaryHigh};\r\n}\r\n\r\n.alert-secondary hr {\r\n border-top-color: #c8cbcf;\r\n}\r\n\r\n.alert-secondary .alert-link {\r\n color: #202326;\r\n}\r\n\r\n.alert-success {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.success};\r\n border-color: ${colors.bootstrap.successHigh};\r\n}\r\n\r\n.alert-success hr {\r\n border-top-color: #b1dfbb;\r\n}\r\n\r\n.alert-success .alert-link {\r\n color: #0b2e13;\r\n}\r\n\r\n.alert-info {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.info};\r\n border-color: ${colors.bootstrap.infoHigh};\r\n}\r\n\r\n.alert-info hr {\r\n border-top-color: #abdde5;\r\n}\r\n\r\n.alert-info .alert-link {\r\n color: #062c33;\r\n}\r\n\r\n.alert-warning {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.warning};\r\n border-color: ${colors.bootstrap.warningHigh};\r\n}\r\n\r\n.alert-warning hr {\r\n border-top-color: #ffe8a1;\r\n}\r\n\r\n.alert-warning .alert-link {\r\n color: #533f03;\r\n}\r\n\r\n.alert-danger {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.danger};\r\n border-color: ${colors.bootstrap.dangerHigh};\r\n}\r\n\r\n.alert-danger hr {\r\n border-top-color: #f1b0b7;\r\n}\r\n\r\n.alert-danger .alert-link {\r\n color: #491217;\r\n}\r\n\r\n.alert-light {\r\n color: ${colors.neutrals[\"n100\"]};\r\n background-color: ${colors.neutrals[\"n600\"]};\r\n border-color: ${colors.neutrals[\"n800\"]};\r\n}\r\n\r\n.alert-light hr {\r\n border-top-color: ${colors.neutrals[\"n800\"]};\r\n}\r\n\r\n.alert-light .alert-link {\r\n color: ${colors.neutrals[\"n100\"]};\r\n}\r\n\r\n.alert-dark {\r\n color: ${colors.neutrals.min};\r\n background-color: #d6d8d9;\r\n border-color: #c6c8ca;\r\n}\r\n\r\n.alert-dark hr {\r\n border-top-color: #b9bbbe;\r\n}\r\n\r\n.alert-dark .alert-link {\r\n color: #040505;\r\n}\r\n\r\n@-webkit-keyframes progress-bar-stripes {\r\n from {\r\n background-position: 1rem 0;\r\n }\r\n to {\r\n background-position: 0 0;\r\n }\r\n}\r\n\r\n@keyframes progress-bar-stripes {\r\n from {\r\n background-position: 1rem 0;\r\n }\r\n to {\r\n background-position: 0 0;\r\n }\r\n}\r\n\r\n.progress {\r\n display: -ms-flexbox;\r\n display: flex;\r\n height: 1rem;\r\n overflow: hidden;\r\n line-height: 0;\r\n font-size: 0.75rem;\r\n background-color: ${colors.neutrals.n200};\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.progress-bar {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n overflow: hidden;\r\n color: ${colors.neutrals.min};\r\n text-align: center;\r\n white-space: nowrap;\r\n background-color: ${colors.bootstrap.primary};\r\n transition: width 0.6s ease;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .progress-bar {\r\n transition: none;\r\n }\r\n}\r\n\r\n.progress-bar-striped {\r\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\r\n background-size: 1rem 1rem;\r\n}\r\n\r\n.progress-bar-animated {\r\n -webkit-animation: 1s linear infinite progress-bar-stripes;\r\n animation: 1s linear infinite progress-bar-stripes;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .progress-bar-animated {\r\n -webkit-animation: none;\r\n animation: none;\r\n }\r\n}\r\n\r\n.media {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-align: start;\r\n align-items: flex-start;\r\n}\r\n\r\n.media-body {\r\n -ms-flex: 1;\r\n flex: 1;\r\n}\r\n\r\n.list-group {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n padding-left: 0;\r\n margin-bottom: 0;\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.list-group-item-action {\r\n width: 100%;\r\n color: ${colors.neutrals.n800};\r\n text-align: inherit;\r\n}\r\n\r\n.list-group-item-action:hover, .list-group-item-action:focus {\r\n z-index: 1;\r\n color: ${colors.neutrals.n800};\r\n text-decoration: none;\r\n background-color: ${colors.neutrals.n100};\r\n}\r\n\r\n.list-group-item-action:active {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.n200};\r\n}\r\n\r\n.list-group-item {\r\n position: relative;\r\n display: block;\r\n padding: 0.75rem 1.25rem;\r\n background-color: ${colors.neutrals.min};\r\n border: 1px solid ${colors.neutrals.n200};\r\n}\r\n\r\n.list-group-item:first-of-type {\r\n border-top-left-radius: inherit;\r\n border-top-right-radius: inherit;\r\n}\r\n\r\n.list-group-item:last-child {\r\n border-bottom-right-radius: inherit;\r\n border-bottom-left-radius: inherit;\r\n}\r\n\r\n.list-group-item.disabled, .list-group-item:disabled {\r\n color: ${colors.neutrals.n700};\r\n pointer-events: none;\r\n background-color: ${colors.neutrals.min};\r\n}\r\n\r\n.list-group-item.active {\r\n z-index: 2;\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.primary};\r\n border-color: ${colors.bootstrap.primary};\r\n}\r\n\r\n.list-group-item + .list-group-item {\r\n border-top-width: 0;\r\n}\r\n\r\n.list-group-item + .list-group-item.active {\r\n margin-top: -1px;\r\n border-top-width: 1px;\r\n}\r\n\r\n.list-group-horizontal {\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n}\r\n\r\n.list-group-horizontal > .list-group-item:first-of-type {\r\n border-bottom-left-radius: 0.25rem;\r\n border-top-right-radius: 0;\r\n}\r\n\r\n.list-group-horizontal > .list-group-item:last-child {\r\n border-top-right-radius: 0.25rem;\r\n border-bottom-left-radius: 0;\r\n}\r\n\r\n.list-group-horizontal > .list-group-item.active {\r\n margin-top: 0;\r\n}\r\n\r\n.list-group-horizontal > .list-group-item + .list-group-item {\r\n border-top-width: 1px;\r\n border-left-width: 0;\r\n}\r\n\r\n.list-group-horizontal > .list-group-item + .list-group-item.active {\r\n margin-left: -1px;\r\n border-left-width: 1px;\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .list-group-horizontal-sm {\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n }\r\n .list-group-horizontal-sm > .list-group-item:first-of-type {\r\n border-bottom-left-radius: 0.25rem;\r\n border-top-right-radius: 0;\r\n }\r\n .list-group-horizontal-sm > .list-group-item:last-child {\r\n border-top-right-radius: 0.25rem;\r\n border-bottom-left-radius: 0;\r\n }\r\n .list-group-horizontal-sm > .list-group-item.active {\r\n margin-top: 0;\r\n }\r\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\r\n border-top-width: 1px;\r\n border-left-width: 0;\r\n }\r\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\r\n margin-left: -1px;\r\n border-left-width: 1px;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .list-group-horizontal-md {\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n }\r\n .list-group-horizontal-md > .list-group-item:first-of-type {\r\n border-bottom-left-radius: 0.25rem;\r\n border-top-right-radius: 0;\r\n }\r\n .list-group-horizontal-md > .list-group-item:last-child {\r\n border-top-right-radius: 0.25rem;\r\n border-bottom-left-radius: 0;\r\n }\r\n .list-group-horizontal-md > .list-group-item.active {\r\n margin-top: 0;\r\n }\r\n .list-group-horizontal-md > .list-group-item + .list-group-item {\r\n border-top-width: 1px;\r\n border-left-width: 0;\r\n }\r\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\r\n margin-left: -1px;\r\n border-left-width: 1px;\r\n }\r\n}\r\n\r\n@media (min-width: 992px) {\r\n .list-group-horizontal-lg {\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n }\r\n .list-group-horizontal-lg > .list-group-item:first-of-type {\r\n border-bottom-left-radius: 0.25rem;\r\n border-top-right-radius: 0;\r\n }\r\n .list-group-horizontal-lg > .list-group-item:last-child {\r\n border-top-right-radius: 0.25rem;\r\n border-bottom-left-radius: 0;\r\n }\r\n .list-group-horizontal-lg > .list-group-item.active {\r\n margin-top: 0;\r\n }\r\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\r\n border-top-width: 1px;\r\n border-left-width: 0;\r\n }\r\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\r\n margin-left: -1px;\r\n border-left-width: 1px;\r\n }\r\n}\r\n\r\n@media (min-width: 1200px) {\r\n .list-group-horizontal-xl {\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n }\r\n .list-group-horizontal-xl > .list-group-item:first-of-type {\r\n border-bottom-left-radius: 0.25rem;\r\n border-top-right-radius: 0;\r\n }\r\n .list-group-horizontal-xl > .list-group-item:last-child {\r\n border-top-right-radius: 0.25rem;\r\n border-bottom-left-radius: 0;\r\n }\r\n .list-group-horizontal-xl > .list-group-item.active {\r\n margin-top: 0;\r\n }\r\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\r\n border-top-width: 1px;\r\n border-left-width: 0;\r\n }\r\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\r\n margin-left: -1px;\r\n border-left-width: 1px;\r\n }\r\n}\r\n\r\n.list-group-flush {\r\n border-radius: 0;\r\n}\r\n\r\n.list-group-flush > .list-group-item {\r\n border-width: 0 0 1px;\r\n}\r\n\r\n.list-group-flush > .list-group-item:last-child {\r\n border-bottom-width: 0;\r\n}\r\n\r\n.list-group-item-primary {\r\n color: #004085;\r\n background-color: #b8daff;\r\n}\r\n\r\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\r\n color: #004085;\r\n background-color: #9fcdff;\r\n}\r\n\r\n.list-group-item-primary.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #004085;\r\n border-color: #004085;\r\n}\r\n\r\n.list-group-item-secondary {\r\n color: #383d41;\r\n background-color: #d6d8db;\r\n}\r\n\r\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\r\n color: #383d41;\r\n background-color: #c8cbcf;\r\n}\r\n\r\n.list-group-item-secondary.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #383d41;\r\n border-color: #383d41;\r\n}\r\n\r\n.list-group-item-success {\r\n color: #155724;\r\n background-color: #c3e6cb;\r\n}\r\n\r\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\r\n color: #155724;\r\n background-color: #b1dfbb;\r\n}\r\n\r\n.list-group-item-success.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #155724;\r\n border-color: #155724;\r\n}\r\n\r\n.list-group-item-info {\r\n color: #0c5460;\r\n background-color: #bee5eb;\r\n}\r\n\r\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\r\n color: #0c5460;\r\n background-color: #abdde5;\r\n}\r\n\r\n.list-group-item-info.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #0c5460;\r\n border-color: #0c5460;\r\n}\r\n\r\n.list-group-item-warning {\r\n color: #856404;\r\n background-color: #ffeeba;\r\n}\r\n\r\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\r\n color: #856404;\r\n background-color: #ffe8a1;\r\n}\r\n\r\n.list-group-item-warning.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #856404;\r\n border-color: #856404;\r\n}\r\n\r\n.list-group-item-danger {\r\n color: #721c24;\r\n background-color: #f5c6cb;\r\n}\r\n\r\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\r\n color: #721c24;\r\n background-color: #f1b0b7;\r\n}\r\n\r\n.list-group-item-danger.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #721c24;\r\n border-color: #721c24;\r\n}\r\n\r\n.list-group-item-light {\r\n color: #818182;\r\n background-color: #fdfdfe;\r\n}\r\n\r\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\r\n color: #818182;\r\n background-color: #ececf6;\r\n}\r\n\r\n.list-group-item-light.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #818182;\r\n border-color: #818182;\r\n}\r\n\r\n.list-group-item-dark {\r\n color: #1b1e21;\r\n background-color: #c6c8ca;\r\n}\r\n\r\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\r\n color: #1b1e21;\r\n background-color: #b9bbbe;\r\n}\r\n\r\n.list-group-item-dark.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #1b1e21;\r\n border-color: #1b1e21;\r\n}\r\n\r\n.close {\r\n float: right;\r\n font-size: 1.5rem;\r\n font-weight: 700;\r\n line-height: 1;\r\n color: #000;\r\n text-shadow: 0 1px 0 ${colors.neutrals.min};\r\n opacity: .5;\r\n}\r\n\r\n.close:hover {\r\n color: ${colors.neutrals.max};\r\n text-decoration: none;\r\n}\r\n\r\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\r\n opacity: .75;\r\n}\r\n\r\nbutton.close {\r\n padding: 0;\r\n background-color: ${colors.transparent};\r\n border: 0;\r\n}\r\n\r\na.close.disabled {\r\n pointer-events: none;\r\n}\r\n\r\n.toast {\r\n -ms-flex-preferred-size: 350px;\r\n flex-basis: 350px;\r\n max-width: 350px;\r\n font-size: 0.875rem;\r\n background-color: rgba(255, 255, 255, 0.85);\r\n background-clip: padding-box;\r\n border: 1px solid rgba(0, 0, 0, 0.1);\r\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\r\n opacity: 0;\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.toast:not(:last-child) {\r\n margin-bottom: 0.75rem;\r\n}\r\n\r\n.toast.showing {\r\n opacity: 1;\r\n}\r\n\r\n.toast.show {\r\n display: block;\r\n opacity: 1;\r\n}\r\n\r\n.toast.hide {\r\n display: none;\r\n}\r\n\r\n.toast-header {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n padding: 0.25rem 0.75rem;\r\n color: ${colors.bootstrap.secondary};\r\n background-color: rgba(255, 255, 255, 0.85);\r\n background-clip: padding-box;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\r\n border-top-left-radius: calc(0.25rem - 1px);\r\n border-top-right-radius: calc(0.25rem - 1px);\r\n}\r\n\r\n.toast-body {\r\n padding: 0.75rem;\r\n}\r\n\r\n.modal-open {\r\n overflow: hidden;\r\n}\r\n\r\n.modal-open .modal {\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n}\r\n\r\n.modal {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n z-index: 1050;\r\n display: none;\r\n width: 100%;\r\n height: 100%;\r\n overflow: hidden;\r\n outline: 0;\r\n}\r\n\r\n.modal-dialog {\r\n position: relative;\r\n width: auto;\r\n margin: 0.5rem;\r\n pointer-events: none;\r\n}\r\n\r\n.modal.fade .modal-dialog {\r\n transition: -webkit-transform 0.3s ease-out;\r\n transition: transform 0.3s ease-out;\r\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\r\n -webkit-transform: translate(0, -50px);\r\n transform: translate(0, -50px);\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .modal.fade .modal-dialog {\r\n transition: none;\r\n }\r\n}\r\n\r\n.modal.show .modal-dialog {\r\n -webkit-transform: none;\r\n transform: none;\r\n}\r\n\r\n.modal.modal-static .modal-dialog {\r\n -webkit-transform: scale(1.02);\r\n transform: scale(1.02);\r\n}\r\n\r\n.modal-dialog-scrollable {\r\n display: -ms-flexbox;\r\n display: flex;\r\n max-height: calc(100% - 1rem);\r\n}\r\n\r\n.modal-dialog-scrollable .modal-content {\r\n max-height: calc(100vh - 1rem);\r\n overflow: hidden;\r\n}\r\n\r\n.modal-dialog-scrollable .modal-header,\r\n.modal-dialog-scrollable .modal-footer {\r\n -ms-flex-negative: 0;\r\n flex-shrink: 0;\r\n}\r\n\r\n.modal-dialog-scrollable .modal-body {\r\n overflow-y: auto;\r\n}\r\n\r\n.modal-dialog-centered {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n min-height: calc(100% - 1rem);\r\n}\r\n\r\n.modal-dialog-centered::before {\r\n display: block;\r\n height: calc(100vh - 1rem);\r\n height: -webkit-min-content;\r\n height: -moz-min-content;\r\n height: min-content;\r\n content: \"\";\r\n}\r\n\r\n.modal-dialog-centered.modal-dialog-scrollable {\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n height: 100%;\r\n}\r\n\r\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\r\n max-height: none;\r\n}\r\n\r\n.modal-dialog-centered.modal-dialog-scrollable::before {\r\n content: none;\r\n}\r\n\r\n.modal-content {\r\n position: relative;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n width: 100%;\r\n pointer-events: auto;\r\n background-color: ${colors.neutrals.midground};\r\n background-clip: padding-box;\r\n border: 1px solid rgba(0, 0, 0, 0.2);\r\n border-radius: 0.3rem;\r\n outline: 0;\r\n}\r\n\r\n.modal-backdrop {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n z-index: 1040;\r\n width: 100vw;\r\n height: 100vh;\r\n background-color: ${colors.neutrals.min};\r\n}\r\n\r\n.modal-backdrop.fade {\r\n opacity: 0;\r\n}\r\n\r\n.modal-backdrop.show {\r\n opacity: 0.5;\r\n}\r\n\r\n.modal-header {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-align: start;\r\n align-items: flex-start;\r\n -ms-flex-pack: justify;\r\n justify-content: space-between;\r\n padding: 1rem 1rem;\r\n border-bottom: 1px solid ${colors.neutrals.n300};\r\n border-top-left-radius: calc(0.3rem - 1px);\r\n border-top-right-radius: calc(0.3rem - 1px);\r\n}\r\n\r\n.modal-header .close {\r\n padding: 1rem 1rem;\r\n margin: -1rem -1rem -1rem auto;\r\n}\r\n\r\n.modal-title {\r\n margin-bottom: 0;\r\n line-height: 1.5;\r\n}\r\n\r\n.modal-body {\r\n position: relative;\r\n -ms-flex: 1 1 auto;\r\n flex: 1 1 auto;\r\n padding: 1rem;\r\n}\r\n\r\n.modal-footer {\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -ms-flex-pack: end;\r\n justify-content: flex-end;\r\n padding: 0.75rem;\r\n border-top: 1px solid ${colors.neutrals.n300};\r\n border-bottom-right-radius: calc(0.3rem - 1px);\r\n border-bottom-left-radius: calc(0.3rem - 1px);\r\n}\r\n\r\n.modal-footer > * {\r\n margin: 0.25rem;\r\n}\r\n\r\n.modal-scrollbar-measure {\r\n position: absolute;\r\n top: -9999px;\r\n width: 50px;\r\n height: 50px;\r\n overflow: scroll;\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .modal-dialog {\r\n max-width: 500px;\r\n margin: 1.75rem auto;\r\n }\r\n .modal-dialog-scrollable {\r\n max-height: calc(100% - 3.5rem);\r\n }\r\n .modal-dialog-scrollable .modal-content {\r\n max-height: calc(100vh - 3.5rem);\r\n }\r\n .modal-dialog-centered {\r\n min-height: calc(100% - 3.5rem);\r\n }\r\n .modal-dialog-centered::before {\r\n height: calc(100vh - 3.5rem);\r\n height: -webkit-min-content;\r\n height: -moz-min-content;\r\n height: min-content;\r\n }\r\n .modal-sm {\r\n max-width: 300px;\r\n }\r\n}\r\n\r\n@media (min-width: 992px) {\r\n .modal-lg,\r\n .modal-xl {\r\n max-width: 800px;\r\n }\r\n}\r\n\r\n@media (min-width: 1200px) {\r\n .modal-xl {\r\n max-width: 1140px;\r\n }\r\n}\r\n\r\n.tooltip {\r\n position: absolute;\r\n z-index: 1070;\r\n display: block;\r\n margin: 0;\r\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 1.5;\r\n text-align: left;\r\n text-align: start;\r\n text-decoration: none;\r\n text-shadow: none;\r\n text-transform: none;\r\n letter-spacing: normal;\r\n word-break: normal;\r\n word-spacing: normal;\r\n white-space: normal;\r\n line-break: auto;\r\n font-size: 0.875rem;\r\n word-wrap: break-word;\r\n opacity: 0;\r\n}\r\n\r\n.tooltip.show {\r\n opacity: 0.9;\r\n}\r\n\r\n.tooltip .arrow {\r\n position: absolute;\r\n display: block;\r\n width: 0.8rem;\r\n height: 0.4rem;\r\n}\r\n\r\n.tooltip .arrow::before {\r\n position: absolute;\r\n content: \"\";\r\n border-color: ${colors.transparent};\r\n border-style: solid;\r\n}\r\n\r\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\r\n padding: 0.4rem 0;\r\n}\r\n\r\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\r\n bottom: 0;\r\n}\r\n\r\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\r\n top: 0;\r\n border-width: 0.4rem 0.4rem 0;\r\n border-top-color: #000;\r\n}\r\n\r\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\r\n padding: 0 0.4rem;\r\n}\r\n\r\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\r\n left: 0;\r\n width: 0.4rem;\r\n height: 0.8rem;\r\n}\r\n\r\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\r\n right: 0;\r\n border-width: 0.4rem 0.4rem 0.4rem 0;\r\n border-right-color: #000;\r\n}\r\n\r\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\r\n padding: 0.4rem 0;\r\n}\r\n\r\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\r\n top: 0;\r\n}\r\n\r\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\r\n bottom: 0;\r\n border-width: 0 0.4rem 0.4rem;\r\n border-bottom-color: #000;\r\n}\r\n\r\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\r\n padding: 0 0.4rem;\r\n}\r\n\r\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\r\n right: 0;\r\n width: 0.4rem;\r\n height: 0.8rem;\r\n}\r\n\r\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\r\n left: 0;\r\n border-width: 0.4rem 0 0.4rem 0.4rem;\r\n border-left-color: #000;\r\n}\r\n\r\n.tooltip-inner {\r\n max-width: 200px;\r\n padding: 0.25rem 0.5rem;\r\n color: ${colors.neutrals.min};\r\n text-align: center;\r\n background-color: #000;\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.popover {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n z-index: 1060;\r\n display: block;\r\n max-width: 276px;\r\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 1.5;\r\n text-align: left;\r\n text-align: start;\r\n text-decoration: none;\r\n text-shadow: none;\r\n text-transform: none;\r\n letter-spacing: normal;\r\n word-break: normal;\r\n word-spacing: normal;\r\n white-space: normal;\r\n line-break: auto;\r\n font-size: 0.875rem;\r\n word-wrap: break-word;\r\n background-color: ${colors.neutrals.min};\r\n background-clip: padding-box;\r\n border: 1px solid rgba(0, 0, 0, 0.2);\r\n border-radius: 0.3rem;\r\n}\r\n\r\n.popover .arrow {\r\n position: absolute;\r\n display: block;\r\n width: 1rem;\r\n height: 0.5rem;\r\n margin: 0 0.3rem;\r\n}\r\n\r\n.popover .arrow::before, .popover .arrow::after {\r\n position: absolute;\r\n display: block;\r\n content: \"\";\r\n border-color: ${colors.transparent};\r\n border-style: solid;\r\n}\r\n\r\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\r\n margin-bottom: 0.5rem;\r\n}\r\n\r\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\r\n bottom: calc(-0.5rem - 1px);\r\n}\r\n\r\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\r\n bottom: 0;\r\n border-width: 0.5rem 0.5rem 0;\r\n border-top-color: rgba(0, 0, 0, 0.25);\r\n}\r\n\r\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\r\n bottom: 1px;\r\n border-width: 0.5rem 0.5rem 0;\r\n border-top-color: ${colors.neutrals.min};\r\n}\r\n\r\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\r\n margin-left: 0.5rem;\r\n}\r\n\r\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\r\n left: calc(-0.5rem - 1px);\r\n width: 0.5rem;\r\n height: 1rem;\r\n margin: 0.3rem 0;\r\n}\r\n\r\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\r\n left: 0;\r\n border-width: 0.5rem 0.5rem 0.5rem 0;\r\n border-right-color: rgba(0, 0, 0, 0.25);\r\n}\r\n\r\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\r\n left: 1px;\r\n border-width: 0.5rem 0.5rem 0.5rem 0;\r\n border-right-color: ${colors.neutrals.min};\r\n}\r\n\r\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\r\n margin-top: 0.5rem;\r\n}\r\n\r\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\r\n top: calc(-0.5rem - 1px);\r\n}\r\n\r\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\r\n top: 0;\r\n border-width: 0 0.5rem 0.5rem 0.5rem;\r\n border-bottom-color: rgba(0, 0, 0, 0.25);\r\n}\r\n\r\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\r\n top: 1px;\r\n border-width: 0 0.5rem 0.5rem 0.5rem;\r\n border-bottom-color: ${colors.neutrals.min};\r\n}\r\n\r\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\r\n position: absolute;\r\n top: 0;\r\n left: 50%;\r\n display: block;\r\n width: 1rem;\r\n margin-left: -0.5rem;\r\n content: \"\";\r\n border-bottom: 1px solid #f7f7f7;\r\n}\r\n\r\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\r\n margin-right: 0.5rem;\r\n}\r\n\r\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\r\n right: calc(-0.5rem - 1px);\r\n width: 0.5rem;\r\n height: 1rem;\r\n margin: 0.3rem 0;\r\n}\r\n\r\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\r\n right: 0;\r\n border-width: 0.5rem 0 0.5rem 0.5rem;\r\n border-left-color: rgba(0, 0, 0, 0.25);\r\n}\r\n\r\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\r\n right: 1px;\r\n border-width: 0.5rem 0 0.5rem 0.5rem;\r\n border-left-color: ${colors.neutrals.min};\r\n}\r\n\r\n.popover-header {\r\n padding: 0.5rem 0.75rem;\r\n margin-bottom: 0;\r\n font-size: 1rem;\r\n background-color: #f7f7f7;\r\n border-bottom: 1px solid #ebebeb;\r\n border-top-left-radius: calc(0.3rem - 1px);\r\n border-top-right-radius: calc(0.3rem - 1px);\r\n}\r\n\r\n.popover-header:empty {\r\n display: none;\r\n}\r\n\r\n.popover-body {\r\n padding: 0.5rem 0.75rem;\r\n color: ${colors.neutrals.n900};\r\n}\r\n\r\n@-webkit-keyframes spinner-border {\r\n to {\r\n -webkit-transform: rotate(360deg);\r\n transform: rotate(360deg);\r\n }\r\n}\r\n\r\n@keyframes spinner-border {\r\n to {\r\n -webkit-transform: rotate(360deg);\r\n transform: rotate(360deg);\r\n }\r\n}\r\n\r\n.spinner-border {\r\n display: inline-block;\r\n width: 2rem;\r\n height: 2rem;\r\n vertical-align: text-bottom;\r\n border: 0.25em solid currentColor;\r\n border-right-color: ${colors.transparent};\r\n border-radius: 50%;\r\n -webkit-animation: .75s linear infinite spinner-border;\r\n animation: .75s linear infinite spinner-border;\r\n}\r\n\r\n.spinner-border-sm {\r\n width: 1rem;\r\n height: 1rem;\r\n border-width: 0.2em;\r\n}\r\n\r\n@-webkit-keyframes spinner-grow {\r\n 0% {\r\n -webkit-transform: scale(0);\r\n transform: scale(0);\r\n }\r\n 50% {\r\n opacity: 1;\r\n -webkit-transform: none;\r\n transform: none;\r\n }\r\n}\r\n\r\n@keyframes spinner-grow {\r\n 0% {\r\n -webkit-transform: scale(0);\r\n transform: scale(0);\r\n }\r\n 50% {\r\n opacity: 1;\r\n -webkit-transform: none;\r\n transform: none;\r\n }\r\n}\r\n\r\n.spinner-grow {\r\n display: inline-block;\r\n width: 2rem;\r\n height: 2rem;\r\n vertical-align: text-bottom;\r\n background-color: ${colors.bootstrap.primary};\r\n border-radius: 50%;\r\n opacity: 0;\r\n -webkit-animation: .75s linear infinite spinner-grow;\r\n animation: .75s linear infinite spinner-grow;\r\n}\r\n\r\n.spinner-grow-sm {\r\n width: 1rem;\r\n height: 1rem;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .spinner-border,\r\n .spinner-grow {\r\n -webkit-animation-duration: 1.5s;\r\n animation-duration: 1.5s;\r\n }\r\n}\r\n\r\n.align-baseline {\r\n vertical-align: baseline !important;\r\n}\r\n\r\n.align-top {\r\n vertical-align: top !important;\r\n}\r\n\r\n.align-middle {\r\n vertical-align: middle !important;\r\n}\r\n\r\n.align-bottom {\r\n vertical-align: bottom !important;\r\n}\r\n\r\n.align-text-bottom {\r\n vertical-align: text-bottom !important;\r\n}\r\n\r\n.align-text-top {\r\n vertical-align: text-top !important;\r\n}\r\n\r\n.bg-primary {\r\n background-color: ${colors.bootstrap.primary} !important;\r\n}\r\n\r\na.bg-primary:hover, a.bg-primary:focus,\r\nbutton.bg-primary:hover,\r\nbutton.bg-primary:focus {\r\n background-color: #0062cc !important;\r\n}\r\n\r\n.bg-secondary {\r\n background-color: ${colors.bootstrap.secondary} !important;\r\n}\r\n\r\na.bg-secondary:hover, a.bg-secondary:focus,\r\nbutton.bg-secondary:hover,\r\nbutton.bg-secondary:focus {\r\n background-color: #545b62 !important;\r\n}\r\n\r\n.bg-success {\r\n background-color: ${colors.bootstrap.success} !important;\r\n}\r\n\r\na.bg-success:hover, a.bg-success:focus,\r\nbutton.bg-success:hover,\r\nbutton.bg-success:focus {\r\n background-color: #1e7e34 !important;\r\n}\r\n\r\n.bg-info {\r\n background-color: #17a2b8 !important;\r\n}\r\n\r\na.bg-info:hover, a.bg-info:focus,\r\nbutton.bg-info:hover,\r\nbutton.bg-info:focus {\r\n background-color: #117a8b !important;\r\n}\r\n\r\n.bg-warning {\r\n background-color: ${colors.bootstrap.warning} !important;\r\n}\r\n\r\na.bg-warning:hover, a.bg-warning:focus,\r\nbutton.bg-warning:hover,\r\nbutton.bg-warning:focus {\r\n background-color: #d39e00 !important;\r\n}\r\n\r\n.bg-danger {\r\n background-color: ${colors.bootstrap.danger} !important;\r\n}\r\n\r\na.bg-danger:hover, a.bg-danger:focus,\r\nbutton.bg-danger:hover,\r\nbutton.bg-danger:focus {\r\n background-color: #bd2130 !important;\r\n}\r\n\r\n.bg-light {\r\n background-color: ${colors.neutrals.n100} !important;\r\n}\r\n\r\na.bg-light:hover, a.bg-light:focus,\r\nbutton.bg-light:hover,\r\nbutton.bg-light:focus {\r\n background-color: #dae0e5 !important;\r\n}\r\n\r\n.bg-dark {\r\n background-color: ${colors.neutrals.n800} !important;\r\n}\r\n\r\na.bg-dark:hover, a.bg-dark:focus,\r\nbutton.bg-dark:hover,\r\nbutton.bg-dark:focus {\r\n background-color: #1d2124 !important;\r\n}\r\n\r\n.bg-white {\r\n background-color: ${colors.neutrals.min} !important;\r\n}\r\n\r\n.bg-transparent {\r\n background-color: transparent !important;\r\n}\r\n\r\n.border {\r\n border: 1px solid ${colors.neutrals.n300};\r\n}\r\n\r\n.border-top {\r\n border-top: 1px solid ${colors.neutrals.n300};\r\n}\r\n\r\n.border-right {\r\n border-right: 1px solid ${colors.neutrals.n300};\r\n}\r\n\r\n.border-bottom {\r\n border-bottom: 1px solid ${colors.neutrals.n300};\r\n}\r\n\r\n.border-left {\r\n border-left: 1px solid ${colors.neutrals.n300};\r\n}\r\n\r\n.border-0 {\r\n border: 0 !important;\r\n}\r\n\r\n.border-top-0 {\r\n border-top: 0 !important;\r\n}\r\n\r\n.border-right-0 {\r\n border-right: 0 !important;\r\n}\r\n\r\n.border-bottom-0 {\r\n border-bottom: 0 !important;\r\n}\r\n\r\n.border-left-0 {\r\n border-left: 0 !important;\r\n}\r\n\r\n.border-primary {\r\n border-color: ${colors.bootstrap.primary} !important;\r\n}\r\n\r\n.border-secondary {\r\n border-color: ${colors.bootstrap.secondary} !important;\r\n}\r\n\r\n.border-success {\r\n border-color: ${colors.bootstrap.success} !important;\r\n}\r\n\r\n.border-info {\r\n border-color: #17a2b8 !important;\r\n}\r\n\r\n.border-warning {\r\n border-color: ${colors.bootstrap.warning} !important;\r\n}\r\n\r\n.border-danger {\r\n border-color: #dc3545 !important;\r\n}\r\n\r\n.border-light {\r\n border-color: ${colors.neutrals.n100} !important;\r\n}\r\n\r\n.border-dark {\r\n border-color: ${colors.neutrals.n800} !important;\r\n}\r\n\r\n.border-white {\r\n border-color: ${colors.neutrals.min} !important;\r\n}\r\n\r\n.rounded-sm {\r\n border-radius: 0.2rem !important;\r\n}\r\n\r\n.rounded {\r\n border-radius: 0.25rem !important;\r\n}\r\n\r\n.rounded-top {\r\n border-top-left-radius: 0.25rem !important;\r\n border-top-right-radius: 0.25rem !important;\r\n}\r\n\r\n.rounded-right {\r\n border-top-right-radius: 0.25rem !important;\r\n border-bottom-right-radius: 0.25rem !important;\r\n}\r\n\r\n.rounded-bottom {\r\n border-bottom-right-radius: 0.25rem !important;\r\n border-bottom-left-radius: 0.25rem !important;\r\n}\r\n\r\n.rounded-left {\r\n border-top-left-radius: 0.25rem !important;\r\n border-bottom-left-radius: 0.25rem !important;\r\n}\r\n\r\n.rounded-lg {\r\n border-radius: 0.3rem !important;\r\n}\r\n\r\n.rounded-circle {\r\n border-radius: 50% !important;\r\n}\r\n\r\n.rounded-pill {\r\n border-radius: 50rem !important;\r\n}\r\n\r\n.rounded-0 {\r\n border-radius: 0 !important;\r\n}\r\n\r\n.clearfix::after {\r\n display: block;\r\n clear: both;\r\n content: \"\";\r\n}\r\n\r\n.d-none {\r\n display: none !important;\r\n}\r\n\r\n.d-inline {\r\n display: inline !important;\r\n}\r\n\r\n.d-inline-block {\r\n display: inline-block !important;\r\n}\r\n\r\n.d-block {\r\n display: block !important;\r\n}\r\n\r\n.d-table {\r\n display: table !important;\r\n}\r\n\r\n.d-table-row {\r\n display: table-row !important;\r\n}\r\n\r\n.d-table-cell {\r\n display: table-cell !important;\r\n}\r\n\r\n.d-flex {\r\n display: -ms-flexbox !important;\r\n display: flex !important;\r\n}\r\n\r\n.d-inline-flex {\r\n display: -ms-inline-flexbox !important;\r\n display: inline-flex !important;\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .d-sm-none {\r\n display: none !important;\r\n }\r\n .d-sm-inline {\r\n display: inline !important;\r\n }\r\n .d-sm-inline-block {\r\n display: inline-block !important;\r\n }\r\n .d-sm-block {\r\n display: block !important;\r\n }\r\n .d-sm-table {\r\n display: table !important;\r\n }\r\n .d-sm-table-row {\r\n display: table-row !important;\r\n }\r\n .d-sm-table-cell {\r\n display: table-cell !important;\r\n }\r\n .d-sm-flex {\r\n display: -ms-flexbox !important;\r\n display: flex !important;\r\n }\r\n .d-sm-inline-flex {\r\n display: -ms-inline-flexbox !important;\r\n display: inline-flex !important;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .d-md-none {\r\n display: none !important;\r\n }\r\n .d-md-inline {\r\n display: inline !important;\r\n }\r\n .d-md-inline-block {\r\n display: inline-block !important;\r\n }\r\n .d-md-block {\r\n display: block !important;\r\n }\r\n .d-md-table {\r\n display: table !important;\r\n }\r\n .d-md-table-row {\r\n display: table-row !important;\r\n }\r\n .d-md-table-cell {\r\n display: table-cell !important;\r\n }\r\n .d-md-flex {\r\n display: -ms-flexbox !important;\r\n display: flex !important;\r\n }\r\n .d-md-inline-flex {\r\n display: -ms-inline-flexbox !important;\r\n display: inline-flex !important;\r\n }\r\n}\r\n\r\n@media (min-width: 992px) {\r\n .d-lg-none {\r\n display: none !important;\r\n }\r\n .d-lg-inline {\r\n display: inline !important;\r\n }\r\n .d-lg-inline-block {\r\n display: inline-block !important;\r\n }\r\n .d-lg-block {\r\n display: block !important;\r\n }\r\n .d-lg-table {\r\n display: table !important;\r\n }\r\n .d-lg-table-row {\r\n display: table-row !important;\r\n }\r\n .d-lg-table-cell {\r\n display: table-cell !important;\r\n }\r\n .d-lg-flex {\r\n display: -ms-flexbox !important;\r\n display: flex !important;\r\n }\r\n .d-lg-inline-flex {\r\n display: -ms-inline-flexbox !important;\r\n display: inline-flex !important;\r\n }\r\n}\r\n\r\n@media (min-width: 1200px) {\r\n .d-xl-none {\r\n display: none !important;\r\n }\r\n .d-xl-inline {\r\n display: inline !important;\r\n }\r\n .d-xl-inline-block {\r\n display: inline-block !important;\r\n }\r\n .d-xl-block {\r\n display: block !important;\r\n }\r\n .d-xl-table {\r\n display: table !important;\r\n }\r\n .d-xl-table-row {\r\n display: table-row !important;\r\n }\r\n .d-xl-table-cell {\r\n display: table-cell !important;\r\n }\r\n .d-xl-flex {\r\n display: -ms-flexbox !important;\r\n display: flex !important;\r\n }\r\n .d-xl-inline-flex {\r\n display: -ms-inline-flexbox !important;\r\n display: inline-flex !important;\r\n }\r\n}\r\n\r\n@media print {\r\n .d-print-none {\r\n display: none !important;\r\n }\r\n .d-print-inline {\r\n display: inline !important;\r\n }\r\n .d-print-inline-block {\r\n display: inline-block !important;\r\n }\r\n .d-print-block {\r\n display: block !important;\r\n }\r\n .d-print-table {\r\n display: table !important;\r\n }\r\n .d-print-table-row {\r\n display: table-row !important;\r\n }\r\n .d-print-table-cell {\r\n display: table-cell !important;\r\n }\r\n .d-print-flex {\r\n display: -ms-flexbox !important;\r\n display: flex !important;\r\n }\r\n .d-print-inline-flex {\r\n display: -ms-inline-flexbox !important;\r\n display: inline-flex !important;\r\n }\r\n}\r\n\r\n.embed-responsive {\r\n position: relative;\r\n display: block;\r\n width: 100%;\r\n padding: 0;\r\n overflow: hidden;\r\n}\r\n\r\n.embed-responsive::before {\r\n display: block;\r\n content: \"\";\r\n}\r\n\r\n.embed-responsive .embed-responsive-item,\r\n.embed-responsive iframe,\r\n.embed-responsive embed,\r\n.embed-responsive object,\r\n.embed-responsive video {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n border: 0;\r\n}\r\n\r\n.embed-responsive-21by9::before {\r\n padding-top: 42.857143%;\r\n}\r\n\r\n.embed-responsive-16by9::before {\r\n padding-top: 56.25%;\r\n}\r\n\r\n.embed-responsive-4by3::before {\r\n padding-top: 75%;\r\n}\r\n\r\n.embed-responsive-1by1::before {\r\n padding-top: 100%;\r\n}\r\n\r\n.flex-row {\r\n -ms-flex-direction: row !important;\r\n flex-direction: row !important;\r\n}\r\n\r\n.flex-column {\r\n -ms-flex-direction: column !important;\r\n flex-direction: column !important;\r\n}\r\n\r\n.flex-row-reverse {\r\n -ms-flex-direction: row-reverse !important;\r\n flex-direction: row-reverse !important;\r\n}\r\n\r\n.flex-column-reverse {\r\n -ms-flex-direction: column-reverse !important;\r\n flex-direction: column-reverse !important;\r\n}\r\n\r\n.flex-wrap {\r\n -ms-flex-wrap: wrap !important;\r\n flex-wrap: wrap !important;\r\n}\r\n\r\n.flex-nowrap {\r\n -ms-flex-wrap: nowrap !important;\r\n flex-wrap: nowrap !important;\r\n}\r\n\r\n.flex-wrap-reverse {\r\n -ms-flex-wrap: wrap-reverse !important;\r\n flex-wrap: wrap-reverse !important;\r\n}\r\n\r\n.flex-fill {\r\n -ms-flex: 1 1 auto !important;\r\n flex: 1 1 auto !important;\r\n}\r\n\r\n.flex-grow-0 {\r\n -ms-flex-positive: 0 !important;\r\n flex-grow: 0 !important;\r\n}\r\n\r\n.flex-grow-1 {\r\n -ms-flex-positive: 1 !important;\r\n flex-grow: 1 !important;\r\n}\r\n\r\n.flex-shrink-0 {\r\n -ms-flex-negative: 0 !important;\r\n flex-shrink: 0 !important;\r\n}\r\n\r\n.flex-shrink-1 {\r\n -ms-flex-negative: 1 !important;\r\n flex-shrink: 1 !important;\r\n}\r\n\r\n.justify-content-start {\r\n -ms-flex-pack: start !important;\r\n justify-content: flex-start !important;\r\n}\r\n\r\n.justify-content-end {\r\n -ms-flex-pack: end !important;\r\n justify-content: flex-end !important;\r\n}\r\n\r\n.justify-content-center {\r\n -ms-flex-pack: center !important;\r\n justify-content: center !important;\r\n}\r\n\r\n.justify-content-between {\r\n -ms-flex-pack: justify !important;\r\n justify-content: space-between !important;\r\n}\r\n\r\n.justify-content-around {\r\n -ms-flex-pack: distribute !important;\r\n justify-content: space-around !important;\r\n}\r\n\r\n.align-items-start {\r\n -ms-flex-align: start !important;\r\n align-items: flex-start !important;\r\n}\r\n\r\n.align-items-end {\r\n -ms-flex-align: end !important;\r\n align-items: flex-end !important;\r\n}\r\n\r\n.align-items-center {\r\n -ms-flex-align: center !important;\r\n align-items: center !important;\r\n}\r\n\r\n.align-items-baseline {\r\n -ms-flex-align: baseline !important;\r\n align-items: baseline !important;\r\n}\r\n\r\n.align-items-stretch {\r\n -ms-flex-align: stretch !important;\r\n align-items: stretch !important;\r\n}\r\n\r\n.align-content-start {\r\n -ms-flex-line-pack: start !important;\r\n align-content: flex-start !important;\r\n}\r\n\r\n.align-content-end {\r\n -ms-flex-line-pack: end !important;\r\n align-content: flex-end !important;\r\n}\r\n\r\n.align-content-center {\r\n -ms-flex-line-pack: center !important;\r\n align-content: center !important;\r\n}\r\n\r\n.align-content-between {\r\n -ms-flex-line-pack: justify !important;\r\n align-content: space-between !important;\r\n}\r\n\r\n.align-content-around {\r\n -ms-flex-line-pack: distribute !important;\r\n align-content: space-around !important;\r\n}\r\n\r\n.align-content-stretch {\r\n -ms-flex-line-pack: stretch !important;\r\n align-content: stretch !important;\r\n}\r\n\r\n.align-self-auto {\r\n -ms-flex-item-align: auto !important;\r\n align-self: auto !important;\r\n}\r\n\r\n.align-self-start {\r\n -ms-flex-item-align: start !important;\r\n align-self: flex-start !important;\r\n}\r\n\r\n.align-self-end {\r\n -ms-flex-item-align: end !important;\r\n align-self: flex-end !important;\r\n}\r\n\r\n.align-self-center {\r\n -ms-flex-item-align: center !important;\r\n align-self: center !important;\r\n}\r\n\r\n.align-self-baseline {\r\n -ms-flex-item-align: baseline !important;\r\n align-self: baseline !important;\r\n}\r\n\r\n.align-self-stretch {\r\n -ms-flex-item-align: stretch !important;\r\n align-self: stretch !important;\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .flex-sm-row {\r\n -ms-flex-direction: row !important;\r\n flex-direction: row !important;\r\n }\r\n .flex-sm-column {\r\n -ms-flex-direction: column !important;\r\n flex-direction: column !important;\r\n }\r\n .flex-sm-row-reverse {\r\n -ms-flex-direction: row-reverse !important;\r\n flex-direction: row-reverse !important;\r\n }\r\n .flex-sm-column-reverse {\r\n -ms-flex-direction: column-reverse !important;\r\n flex-direction: column-reverse !important;\r\n }\r\n .flex-sm-wrap {\r\n -ms-flex-wrap: wrap !important;\r\n flex-wrap: wrap !important;\r\n }\r\n .flex-sm-nowrap {\r\n -ms-flex-wrap: nowrap !important;\r\n flex-wrap: nowrap !important;\r\n }\r\n .flex-sm-wrap-reverse {\r\n -ms-flex-wrap: wrap-reverse !important;\r\n flex-wrap: wrap-reverse !important;\r\n }\r\n .flex-sm-fill {\r\n -ms-flex: 1 1 auto !important;\r\n flex: 1 1 auto !important;\r\n }\r\n .flex-sm-grow-0 {\r\n -ms-flex-positive: 0 !important;\r\n flex-grow: 0 !important;\r\n }\r\n .flex-sm-grow-1 {\r\n -ms-flex-positive: 1 !important;\r\n flex-grow: 1 !important;\r\n }\r\n .flex-sm-shrink-0 {\r\n -ms-flex-negative: 0 !important;\r\n flex-shrink: 0 !important;\r\n }\r\n .flex-sm-shrink-1 {\r\n -ms-flex-negative: 1 !important;\r\n flex-shrink: 1 !important;\r\n }\r\n .justify-content-sm-start {\r\n -ms-flex-pack: start !important;\r\n justify-content: flex-start !important;\r\n }\r\n .justify-content-sm-end {\r\n -ms-flex-pack: end !important;\r\n justify-content: flex-end !important;\r\n }\r\n .justify-content-sm-center {\r\n -ms-flex-pack: center !important;\r\n justify-content: center !important;\r\n }\r\n .justify-content-sm-between {\r\n -ms-flex-pack: justify !important;\r\n justify-content: space-between !important;\r\n }\r\n .justify-content-sm-around {\r\n -ms-flex-pack: distribute !important;\r\n justify-content: space-around !important;\r\n }\r\n .align-items-sm-start {\r\n -ms-flex-align: start !important;\r\n align-items: flex-start !important;\r\n }\r\n .align-items-sm-end {\r\n -ms-flex-align: end !important;\r\n align-items: flex-end !important;\r\n }\r\n .align-items-sm-center {\r\n -ms-flex-align: center !important;\r\n align-items: center !important;\r\n }\r\n .align-items-sm-baseline {\r\n -ms-flex-align: baseline !important;\r\n align-items: baseline !important;\r\n }\r\n .align-items-sm-stretch {\r\n -ms-flex-align: stretch !important;\r\n align-items: stretch !important;\r\n }\r\n .align-content-sm-start {\r\n -ms-flex-line-pack: start !important;\r\n align-content: flex-start !important;\r\n }\r\n .align-content-sm-end {\r\n -ms-flex-line-pack: end !important;\r\n align-content: flex-end !important;\r\n }\r\n .align-content-sm-center {\r\n -ms-flex-line-pack: center !important;\r\n align-content: center !important;\r\n }\r\n .align-content-sm-between {\r\n -ms-flex-line-pack: justify !important;\r\n align-content: space-between !important;\r\n }\r\n .align-content-sm-around {\r\n -ms-flex-line-pack: distribute !important;\r\n align-content: space-around !important;\r\n }\r\n .align-content-sm-stretch {\r\n -ms-flex-line-pack: stretch !important;\r\n align-content: stretch !important;\r\n }\r\n .align-self-sm-auto {\r\n -ms-flex-item-align: auto !important;\r\n align-self: auto !important;\r\n }\r\n .align-self-sm-start {\r\n -ms-flex-item-align: start !important;\r\n align-self: flex-start !important;\r\n }\r\n .align-self-sm-end {\r\n -ms-flex-item-align: end !important;\r\n align-self: flex-end !important;\r\n }\r\n .align-self-sm-center {\r\n -ms-flex-item-align: center !important;\r\n align-self: center !important;\r\n }\r\n .align-self-sm-baseline {\r\n -ms-flex-item-align: baseline !important;\r\n align-self: baseline !important;\r\n }\r\n .align-self-sm-stretch {\r\n -ms-flex-item-align: stretch !important;\r\n align-self: stretch !important;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .flex-md-row {\r\n -ms-flex-direction: row !important;\r\n flex-direction: row !important;\r\n }\r\n .flex-md-column {\r\n -ms-flex-direction: column !important;\r\n flex-direction: column !important;\r\n }\r\n .flex-md-row-reverse {\r\n -ms-flex-direction: row-reverse !important;\r\n flex-direction: row-reverse !important;\r\n }\r\n .flex-md-column-reverse {\r\n -ms-flex-direction: column-reverse !important;\r\n flex-direction: column-reverse !important;\r\n }\r\n .flex-md-wrap {\r\n -ms-flex-wrap: wrap !important;\r\n flex-wrap: wrap !important;\r\n }\r\n .flex-md-nowrap {\r\n -ms-flex-wrap: nowrap !important;\r\n flex-wrap: nowrap !important;\r\n }\r\n .flex-md-wrap-reverse {\r\n -ms-flex-wrap: wrap-reverse !important;\r\n flex-wrap: wrap-reverse !important;\r\n }\r\n .flex-md-fill {\r\n -ms-flex: 1 1 auto !important;\r\n flex: 1 1 auto !important;\r\n }\r\n .flex-md-grow-0 {\r\n -ms-flex-positive: 0 !important;\r\n flex-grow: 0 !important;\r\n }\r\n .flex-md-grow-1 {\r\n -ms-flex-positive: 1 !important;\r\n flex-grow: 1 !important;\r\n }\r\n .flex-md-shrink-0 {\r\n -ms-flex-negative: 0 !important;\r\n flex-shrink: 0 !important;\r\n }\r\n .flex-md-shrink-1 {\r\n -ms-flex-negative: 1 !important;\r\n flex-shrink: 1 !important;\r\n }\r\n .justify-content-md-start {\r\n -ms-flex-pack: start !important;\r\n justify-content: flex-start !important;\r\n }\r\n .justify-content-md-end {\r\n -ms-flex-pack: end !important;\r\n justify-content: flex-end !important;\r\n }\r\n .justify-content-md-center {\r\n -ms-flex-pack: center !important;\r\n justify-content: center !important;\r\n }\r\n .justify-content-md-between {\r\n -ms-flex-pack: justify !important;\r\n justify-content: space-between !important;\r\n }\r\n .justify-content-md-around {\r\n -ms-flex-pack: distribute !important;\r\n justify-content: space-around !important;\r\n }\r\n .align-items-md-start {\r\n -ms-flex-align: start !important;\r\n align-items: flex-start !important;\r\n }\r\n .align-items-md-end {\r\n -ms-flex-align: end !important;\r\n align-items: flex-end !important;\r\n }\r\n .align-items-md-center {\r\n -ms-flex-align: center !important;\r\n align-items: center !important;\r\n }\r\n .align-items-md-baseline {\r\n -ms-flex-align: baseline !important;\r\n align-items: baseline !important;\r\n }\r\n .align-items-md-stretch {\r\n -ms-flex-align: stretch !important;\r\n align-items: stretch !important;\r\n }\r\n .align-content-md-start {\r\n -ms-flex-line-pack: start !important;\r\n align-content: flex-start !important;\r\n }\r\n .align-content-md-end {\r\n -ms-flex-line-pack: end !important;\r\n align-content: flex-end !important;\r\n }\r\n .align-content-md-center {\r\n -ms-flex-line-pack: center !important;\r\n align-content: center !important;\r\n }\r\n .align-content-md-between {\r\n -ms-flex-line-pack: justify !important;\r\n align-content: space-between !important;\r\n }\r\n .align-content-md-around {\r\n -ms-flex-line-pack: distribute !important;\r\n align-content: space-around !important;\r\n }\r\n .align-content-md-stretch {\r\n -ms-flex-line-pack: stretch !important;\r\n align-content: stretch !important;\r\n }\r\n .align-self-md-auto {\r\n -ms-flex-item-align: auto !important;\r\n align-self: auto !important;\r\n }\r\n .align-self-md-start {\r\n -ms-flex-item-align: start !important;\r\n align-self: flex-start !important;\r\n }\r\n .align-self-md-end {\r\n -ms-flex-item-align: end !important;\r\n align-self: flex-end !important;\r\n }\r\n .align-self-md-center {\r\n -ms-flex-item-align: center !important;\r\n align-self: center !important;\r\n }\r\n .align-self-md-baseline {\r\n -ms-flex-item-align: baseline !important;\r\n align-self: baseline !important;\r\n }\r\n .align-self-md-stretch {\r\n -ms-flex-item-align: stretch !important;\r\n align-self: stretch !important;\r\n }\r\n}\r\n\r\n@media (min-width: 992px) {\r\n .flex-lg-row {\r\n -ms-flex-direction: row !important;\r\n flex-direction: row !important;\r\n }\r\n .flex-lg-column {\r\n -ms-flex-direction: column !important;\r\n flex-direction: column !important;\r\n }\r\n .flex-lg-row-reverse {\r\n -ms-flex-direction: row-reverse !important;\r\n flex-direction: row-reverse !important;\r\n }\r\n .flex-lg-column-reverse {\r\n -ms-flex-direction: column-reverse !important;\r\n flex-direction: column-reverse !important;\r\n }\r\n .flex-lg-wrap {\r\n -ms-flex-wrap: wrap !important;\r\n flex-wrap: wrap !important;\r\n }\r\n .flex-lg-nowrap {\r\n -ms-flex-wrap: nowrap !important;\r\n flex-wrap: nowrap !important;\r\n }\r\n .flex-lg-wrap-reverse {\r\n -ms-flex-wrap: wrap-reverse !important;\r\n flex-wrap: wrap-reverse !important;\r\n }\r\n .flex-lg-fill {\r\n -ms-flex: 1 1 auto !important;\r\n flex: 1 1 auto !important;\r\n }\r\n .flex-lg-grow-0 {\r\n -ms-flex-positive: 0 !important;\r\n flex-grow: 0 !important;\r\n }\r\n .flex-lg-grow-1 {\r\n -ms-flex-positive: 1 !important;\r\n flex-grow: 1 !important;\r\n }\r\n .flex-lg-shrink-0 {\r\n -ms-flex-negative: 0 !important;\r\n flex-shrink: 0 !important;\r\n }\r\n .flex-lg-shrink-1 {\r\n -ms-flex-negative: 1 !important;\r\n flex-shrink: 1 !important;\r\n }\r\n .justify-content-lg-start {\r\n -ms-flex-pack: start !important;\r\n justify-content: flex-start !important;\r\n }\r\n .justify-content-lg-end {\r\n -ms-flex-pack: end !important;\r\n justify-content: flex-end !important;\r\n }\r\n .justify-content-lg-center {\r\n -ms-flex-pack: center !important;\r\n justify-content: center !important;\r\n }\r\n .justify-content-lg-between {\r\n -ms-flex-pack: justify !important;\r\n justify-content: space-between !important;\r\n }\r\n .justify-content-lg-around {\r\n -ms-flex-pack: distribute !important;\r\n justify-content: space-around !important;\r\n }\r\n .align-items-lg-start {\r\n -ms-flex-align: start !important;\r\n align-items: flex-start !important;\r\n }\r\n .align-items-lg-end {\r\n -ms-flex-align: end !important;\r\n align-items: flex-end !important;\r\n }\r\n .align-items-lg-center {\r\n -ms-flex-align: center !important;\r\n align-items: center !important;\r\n }\r\n .align-items-lg-baseline {\r\n -ms-flex-align: baseline !important;\r\n align-items: baseline !important;\r\n }\r\n .align-items-lg-stretch {\r\n -ms-flex-align: stretch !important;\r\n align-items: stretch !important;\r\n }\r\n .align-content-lg-start {\r\n -ms-flex-line-pack: start !important;\r\n align-content: flex-start !important;\r\n }\r\n .align-content-lg-end {\r\n -ms-flex-line-pack: end !important;\r\n align-content: flex-end !important;\r\n }\r\n .align-content-lg-center {\r\n -ms-flex-line-pack: center !important;\r\n align-content: center !important;\r\n }\r\n .align-content-lg-between {\r\n -ms-flex-line-pack: justify !important;\r\n align-content: space-between !important;\r\n }\r\n .align-content-lg-around {\r\n -ms-flex-line-pack: distribute !important;\r\n align-content: space-around !important;\r\n }\r\n .align-content-lg-stretch {\r\n -ms-flex-line-pack: stretch !important;\r\n align-content: stretch !important;\r\n }\r\n .align-self-lg-auto {\r\n -ms-flex-item-align: auto !important;\r\n align-self: auto !important;\r\n }\r\n .align-self-lg-start {\r\n -ms-flex-item-align: start !important;\r\n align-self: flex-start !important;\r\n }\r\n .align-self-lg-end {\r\n -ms-flex-item-align: end !important;\r\n align-self: flex-end !important;\r\n }\r\n .align-self-lg-center {\r\n -ms-flex-item-align: center !important;\r\n align-self: center !important;\r\n }\r\n .align-self-lg-baseline {\r\n -ms-flex-item-align: baseline !important;\r\n align-self: baseline !important;\r\n }\r\n .align-self-lg-stretch {\r\n -ms-flex-item-align: stretch !important;\r\n align-self: stretch !important;\r\n }\r\n}\r\n\r\n@media (min-width: 1200px) {\r\n .flex-xl-row {\r\n -ms-flex-direction: row !important;\r\n flex-direction: row !important;\r\n }\r\n .flex-xl-column {\r\n -ms-flex-direction: column !important;\r\n flex-direction: column !important;\r\n }\r\n .flex-xl-row-reverse {\r\n -ms-flex-direction: row-reverse !important;\r\n flex-direction: row-reverse !important;\r\n }\r\n .flex-xl-column-reverse {\r\n -ms-flex-direction: column-reverse !important;\r\n flex-direction: column-reverse !important;\r\n }\r\n .flex-xl-wrap {\r\n -ms-flex-wrap: wrap !important;\r\n flex-wrap: wrap !important;\r\n }\r\n .flex-xl-nowrap {\r\n -ms-flex-wrap: nowrap !important;\r\n flex-wrap: nowrap !important;\r\n }\r\n .flex-xl-wrap-reverse {\r\n -ms-flex-wrap: wrap-reverse !important;\r\n flex-wrap: wrap-reverse !important;\r\n }\r\n .flex-xl-fill {\r\n -ms-flex: 1 1 auto !important;\r\n flex: 1 1 auto !important;\r\n }\r\n .flex-xl-grow-0 {\r\n -ms-flex-positive: 0 !important;\r\n flex-grow: 0 !important;\r\n }\r\n .flex-xl-grow-1 {\r\n -ms-flex-positive: 1 !important;\r\n flex-grow: 1 !important;\r\n }\r\n .flex-xl-shrink-0 {\r\n -ms-flex-negative: 0 !important;\r\n flex-shrink: 0 !important;\r\n }\r\n .flex-xl-shrink-1 {\r\n -ms-flex-negative: 1 !important;\r\n flex-shrink: 1 !important;\r\n }\r\n .justify-content-xl-start {\r\n -ms-flex-pack: start !important;\r\n justify-content: flex-start !important;\r\n }\r\n .justify-content-xl-end {\r\n -ms-flex-pack: end !important;\r\n justify-content: flex-end !important;\r\n }\r\n .justify-content-xl-center {\r\n -ms-flex-pack: center !important;\r\n justify-content: center !important;\r\n }\r\n .justify-content-xl-between {\r\n -ms-flex-pack: justify !important;\r\n justify-content: space-between !important;\r\n }\r\n .justify-content-xl-around {\r\n -ms-flex-pack: distribute !important;\r\n justify-content: space-around !important;\r\n }\r\n .align-items-xl-start {\r\n -ms-flex-align: start !important;\r\n align-items: flex-start !important;\r\n }\r\n .align-items-xl-end {\r\n -ms-flex-align: end !important;\r\n align-items: flex-end !important;\r\n }\r\n .align-items-xl-center {\r\n -ms-flex-align: center !important;\r\n align-items: center !important;\r\n }\r\n .align-items-xl-baseline {\r\n -ms-flex-align: baseline !important;\r\n align-items: baseline !important;\r\n }\r\n .align-items-xl-stretch {\r\n -ms-flex-align: stretch !important;\r\n align-items: stretch !important;\r\n }\r\n .align-content-xl-start {\r\n -ms-flex-line-pack: start !important;\r\n align-content: flex-start !important;\r\n }\r\n .align-content-xl-end {\r\n -ms-flex-line-pack: end !important;\r\n align-content: flex-end !important;\r\n }\r\n .align-content-xl-center {\r\n -ms-flex-line-pack: center !important;\r\n align-content: center !important;\r\n }\r\n .align-content-xl-between {\r\n -ms-flex-line-pack: justify !important;\r\n align-content: space-between !important;\r\n }\r\n .align-content-xl-around {\r\n -ms-flex-line-pack: distribute !important;\r\n align-content: space-around !important;\r\n }\r\n .align-content-xl-stretch {\r\n -ms-flex-line-pack: stretch !important;\r\n align-content: stretch !important;\r\n }\r\n .align-self-xl-auto {\r\n -ms-flex-item-align: auto !important;\r\n align-self: auto !important;\r\n }\r\n .align-self-xl-start {\r\n -ms-flex-item-align: start !important;\r\n align-self: flex-start !important;\r\n }\r\n .align-self-xl-end {\r\n -ms-flex-item-align: end !important;\r\n align-self: flex-end !important;\r\n }\r\n .align-self-xl-center {\r\n -ms-flex-item-align: center !important;\r\n align-self: center !important;\r\n }\r\n .align-self-xl-baseline {\r\n -ms-flex-item-align: baseline !important;\r\n align-self: baseline !important;\r\n }\r\n .align-self-xl-stretch {\r\n -ms-flex-item-align: stretch !important;\r\n align-self: stretch !important;\r\n }\r\n}\r\n\r\n.float-left {\r\n float: left !important;\r\n}\r\n\r\n.float-right {\r\n float: right !important;\r\n}\r\n\r\n.float-none {\r\n float: none !important;\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .float-sm-left {\r\n float: left !important;\r\n }\r\n .float-sm-right {\r\n float: right !important;\r\n }\r\n .float-sm-none {\r\n float: none !important;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .float-md-left {\r\n float: left !important;\r\n }\r\n .float-md-right {\r\n float: right !important;\r\n }\r\n .float-md-none {\r\n float: none !important;\r\n }\r\n}\r\n\r\n@media (min-width: 992px) {\r\n .float-lg-left {\r\n float: left !important;\r\n }\r\n .float-lg-right {\r\n float: right !important;\r\n }\r\n .float-lg-none {\r\n float: none !important;\r\n }\r\n}\r\n\r\n@media (min-width: 1200px) {\r\n .float-xl-left {\r\n float: left !important;\r\n }\r\n .float-xl-right {\r\n float: right !important;\r\n }\r\n .float-xl-none {\r\n float: none !important;\r\n }\r\n}\r\n\r\n.user-select-all {\r\n -webkit-user-select: all !important;\r\n -moz-user-select: all !important;\r\n user-select: all !important;\r\n}\r\n\r\n.user-select-auto {\r\n -webkit-user-select: auto !important;\r\n -moz-user-select: auto !important;\r\n -ms-user-select: auto !important;\r\n user-select: auto !important;\r\n}\r\n\r\n.user-select-none {\r\n -webkit-user-select: none !important;\r\n -moz-user-select: none !important;\r\n -ms-user-select: none !important;\r\n user-select: none !important;\r\n}\r\n\r\n.overflow-auto {\r\n overflow: auto !important;\r\n}\r\n\r\n.overflow-hidden {\r\n overflow: hidden !important;\r\n}\r\n\r\n.position-static {\r\n position: static !important;\r\n}\r\n\r\n.position-relative {\r\n position: relative !important;\r\n}\r\n\r\n.position-absolute {\r\n position: absolute !important;\r\n}\r\n\r\n.position-fixed {\r\n position: fixed !important;\r\n}\r\n\r\n.position-sticky {\r\n position: -webkit-sticky !important;\r\n position: sticky !important;\r\n}\r\n\r\n.fixed-top {\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n left: 0;\r\n z-index: 1030;\r\n}\r\n\r\n.fixed-bottom {\r\n position: fixed;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1030;\r\n}\r\n\r\n@supports ((position: -webkit-sticky) or (position: sticky)) {\r\n .sticky-top {\r\n position: -webkit-sticky;\r\n position: sticky;\r\n top: 0;\r\n z-index: 1020;\r\n }\r\n}\r\n\r\n.sr-only {\r\n position: absolute;\r\n width: 1px;\r\n height: 1px;\r\n padding: 0;\r\n margin: -1px;\r\n overflow: hidden;\r\n clip: rect(0, 0, 0, 0);\r\n white-space: nowrap;\r\n border: 0;\r\n}\r\n\r\n.sr-only-focusable:active, .sr-only-focusable:focus {\r\n position: static;\r\n width: auto;\r\n height: auto;\r\n overflow: visible;\r\n clip: auto;\r\n white-space: normal;\r\n}\r\n\r\n.shadow-sm {\r\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\r\n}\r\n\r\n.shadow {\r\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\r\n}\r\n\r\n.shadow-lg {\r\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\r\n}\r\n\r\n.shadow-none {\r\n box-shadow: none !important;\r\n}\r\n\r\n.w-25 {\r\n width: 25% !important;\r\n}\r\n\r\n.w-50 {\r\n width: 50% !important;\r\n}\r\n\r\n.w-75 {\r\n width: 75% !important;\r\n}\r\n\r\n.w-100 {\r\n width: 100% !important;\r\n}\r\n\r\n.w-auto {\r\n width: auto !important;\r\n}\r\n\r\n.h-25 {\r\n height: 25% !important;\r\n}\r\n\r\n.h-50 {\r\n height: 50% !important;\r\n}\r\n\r\n.h-75 {\r\n height: 75% !important;\r\n}\r\n\r\n.h-100 {\r\n height: 100% !important;\r\n}\r\n\r\n.h-auto {\r\n height: auto !important;\r\n}\r\n\r\n.mw-100 {\r\n max-width: 100% !important;\r\n}\r\n\r\n.mh-100 {\r\n max-height: 100% !important;\r\n}\r\n\r\n.min-vw-100 {\r\n min-width: 100vw !important;\r\n}\r\n\r\n.min-vh-100 {\r\n min-height: 100vh !important;\r\n}\r\n\r\n.vw-100 {\r\n width: 100vw !important;\r\n}\r\n\r\n.vh-100 {\r\n height: 100vh !important;\r\n}\r\n\r\n.m-0 {\r\n margin: 0 !important;\r\n}\r\n\r\n.mt-0,\r\n.my-0 {\r\n margin-top: 0 !important;\r\n}\r\n\r\n.mr-0,\r\n.mx-0 {\r\n margin-right: 0 !important;\r\n}\r\n\r\n.mb-0,\r\n.my-0 {\r\n margin-bottom: 0 !important;\r\n}\r\n\r\n.ml-0,\r\n.mx-0 {\r\n margin-left: 0 !important;\r\n}\r\n\r\n.m-1 {\r\n margin: 0.25rem !important;\r\n}\r\n\r\n.mt-1,\r\n.my-1 {\r\n margin-top: 0.25rem !important;\r\n}\r\n\r\n.mr-1,\r\n.mx-1 {\r\n margin-right: 0.25rem !important;\r\n}\r\n\r\n.mb-1,\r\n.my-1 {\r\n margin-bottom: 0.25rem !important;\r\n}\r\n\r\n.ml-1,\r\n.mx-1 {\r\n margin-left: 0.25rem !important;\r\n}\r\n\r\n.m-2 {\r\n margin: 0.5rem !important;\r\n}\r\n\r\n.mt-2,\r\n.my-2 {\r\n margin-top: 0.5rem !important;\r\n}\r\n\r\n.mr-2,\r\n.mx-2 {\r\n margin-right: 0.5rem !important;\r\n}\r\n\r\n.mb-2,\r\n.my-2 {\r\n margin-bottom: 0.5rem !important;\r\n}\r\n\r\n.ml-2,\r\n.mx-2 {\r\n margin-left: 0.5rem !important;\r\n}\r\n\r\n.m-3 {\r\n margin: 1rem !important;\r\n}\r\n\r\n.mt-3,\r\n.my-3 {\r\n margin-top: 1rem !important;\r\n}\r\n\r\n.mr-3,\r\n.mx-3 {\r\n margin-right: 1rem !important;\r\n}\r\n\r\n.mb-3,\r\n.my-3 {\r\n margin-bottom: 1rem !important;\r\n}\r\n\r\n.ml-3,\r\n.mx-3 {\r\n margin-left: 1rem !important;\r\n}\r\n\r\n.m-4 {\r\n margin: 1.5rem !important;\r\n}\r\n\r\n.mt-4,\r\n.my-4 {\r\n margin-top: 1.5rem !important;\r\n}\r\n\r\n.mr-4,\r\n.mx-4 {\r\n margin-right: 1.5rem !important;\r\n}\r\n\r\n.mb-4,\r\n.my-4 {\r\n margin-bottom: 1.5rem !important;\r\n}\r\n\r\n.ml-4,\r\n.mx-4 {\r\n margin-left: 1.5rem !important;\r\n}\r\n\r\n.m-5 {\r\n margin: 3rem !important;\r\n}\r\n\r\n.mt-5,\r\n.my-5 {\r\n margin-top: 3rem !important;\r\n}\r\n\r\n.mr-5,\r\n.mx-5 {\r\n margin-right: 3rem !important;\r\n}\r\n\r\n.mb-5,\r\n.my-5 {\r\n margin-bottom: 3rem !important;\r\n}\r\n\r\n.ml-5,\r\n.mx-5 {\r\n margin-left: 3rem !important;\r\n}\r\n\r\n.p-0 {\r\n padding: 0 !important;\r\n}\r\n\r\n.pt-0,\r\n.py-0 {\r\n padding-top: 0 !important;\r\n}\r\n\r\n.pr-0,\r\n.px-0 {\r\n padding-right: 0 !important;\r\n}\r\n\r\n.pb-0,\r\n.py-0 {\r\n padding-bottom: 0 !important;\r\n}\r\n\r\n.pl-0,\r\n.px-0 {\r\n padding-left: 0 !important;\r\n}\r\n\r\n.p-1 {\r\n padding: 0.25rem !important;\r\n}\r\n\r\n.pt-1,\r\n.py-1 {\r\n padding-top: 0.25rem !important;\r\n}\r\n\r\n.pr-1,\r\n.px-1 {\r\n padding-right: 0.25rem !important;\r\n}\r\n\r\n.pb-1,\r\n.py-1 {\r\n padding-bottom: 0.25rem !important;\r\n}\r\n\r\n.pl-1,\r\n.px-1 {\r\n padding-left: 0.25rem !important;\r\n}\r\n\r\n.p-2 {\r\n padding: 0.5rem !important;\r\n}\r\n\r\n.pt-2,\r\n.py-2 {\r\n padding-top: 0.5rem !important;\r\n}\r\n\r\n.pr-2,\r\n.px-2 {\r\n padding-right: 0.5rem !important;\r\n}\r\n\r\n.pb-2,\r\n.py-2 {\r\n padding-bottom: 0.5rem !important;\r\n}\r\n\r\n.pl-2,\r\n.px-2 {\r\n padding-left: 0.5rem !important;\r\n}\r\n\r\n.p-3 {\r\n padding: 1rem !important;\r\n}\r\n\r\n.pt-3,\r\n.py-3 {\r\n padding-top: 1rem !important;\r\n}\r\n\r\n.pr-3,\r\n.px-3 {\r\n padding-right: 1rem !important;\r\n}\r\n\r\n.pb-3,\r\n.py-3 {\r\n padding-bottom: 1rem !important;\r\n}\r\n\r\n.pl-3,\r\n.px-3 {\r\n padding-left: 1rem !important;\r\n}\r\n\r\n.p-4 {\r\n padding: 1.5rem !important;\r\n}\r\n\r\n.pt-4,\r\n.py-4 {\r\n padding-top: 1.5rem !important;\r\n}\r\n\r\n.pr-4,\r\n.px-4 {\r\n padding-right: 1.5rem !important;\r\n}\r\n\r\n.pb-4,\r\n.py-4 {\r\n padding-bottom: 1.5rem !important;\r\n}\r\n\r\n.pl-4,\r\n.px-4 {\r\n padding-left: 1.5rem !important;\r\n}\r\n\r\n.p-5 {\r\n padding: 3rem !important;\r\n}\r\n\r\n.pt-5,\r\n.py-5 {\r\n padding-top: 3rem !important;\r\n}\r\n\r\n.pr-5,\r\n.px-5 {\r\n padding-right: 3rem !important;\r\n}\r\n\r\n.pb-5,\r\n.py-5 {\r\n padding-bottom: 3rem !important;\r\n}\r\n\r\n.pl-5,\r\n.px-5 {\r\n padding-left: 3rem !important;\r\n}\r\n\r\n.m-n1 {\r\n margin: -0.25rem !important;\r\n}\r\n\r\n.mt-n1,\r\n.my-n1 {\r\n margin-top: -0.25rem !important;\r\n}\r\n\r\n.mr-n1,\r\n.mx-n1 {\r\n margin-right: -0.25rem !important;\r\n}\r\n\r\n.mb-n1,\r\n.my-n1 {\r\n margin-bottom: -0.25rem !important;\r\n}\r\n\r\n.ml-n1,\r\n.mx-n1 {\r\n margin-left: -0.25rem !important;\r\n}\r\n\r\n.m-n2 {\r\n margin: -0.5rem !important;\r\n}\r\n\r\n.mt-n2,\r\n.my-n2 {\r\n margin-top: -0.5rem !important;\r\n}\r\n\r\n.mr-n2,\r\n.mx-n2 {\r\n margin-right: -0.5rem !important;\r\n}\r\n\r\n.mb-n2,\r\n.my-n2 {\r\n margin-bottom: -0.5rem !important;\r\n}\r\n\r\n.ml-n2,\r\n.mx-n2 {\r\n margin-left: -0.5rem !important;\r\n}\r\n\r\n.m-n3 {\r\n margin: -1rem !important;\r\n}\r\n\r\n.mt-n3,\r\n.my-n3 {\r\n margin-top: -1rem !important;\r\n}\r\n\r\n.mr-n3,\r\n.mx-n3 {\r\n margin-right: -1rem !important;\r\n}\r\n\r\n.mb-n3,\r\n.my-n3 {\r\n margin-bottom: -1rem !important;\r\n}\r\n\r\n.ml-n3,\r\n.mx-n3 {\r\n margin-left: -1rem !important;\r\n}\r\n\r\n.m-n4 {\r\n margin: -1.5rem !important;\r\n}\r\n\r\n.mt-n4,\r\n.my-n4 {\r\n margin-top: -1.5rem !important;\r\n}\r\n\r\n.mr-n4,\r\n.mx-n4 {\r\n margin-right: -1.5rem !important;\r\n}\r\n\r\n.mb-n4,\r\n.my-n4 {\r\n margin-bottom: -1.5rem !important;\r\n}\r\n\r\n.ml-n4,\r\n.mx-n4 {\r\n margin-left: -1.5rem !important;\r\n}\r\n\r\n.m-n5 {\r\n margin: -3rem !important;\r\n}\r\n\r\n.mt-n5,\r\n.my-n5 {\r\n margin-top: -3rem !important;\r\n}\r\n\r\n.mr-n5,\r\n.mx-n5 {\r\n margin-right: -3rem !important;\r\n}\r\n\r\n.mb-n5,\r\n.my-n5 {\r\n margin-bottom: -3rem !important;\r\n}\r\n\r\n.ml-n5,\r\n.mx-n5 {\r\n margin-left: -3rem !important;\r\n}\r\n\r\n.m-auto {\r\n margin: auto !important;\r\n}\r\n\r\n.mt-auto,\r\n.my-auto {\r\n margin-top: auto !important;\r\n}\r\n\r\n.mr-auto,\r\n.mx-auto {\r\n margin-right: auto !important;\r\n}\r\n\r\n.mb-auto,\r\n.my-auto {\r\n margin-bottom: auto !important;\r\n}\r\n\r\n.ml-auto,\r\n.mx-auto {\r\n margin-left: auto !important;\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .m-sm-0 {\r\n margin: 0 !important;\r\n }\r\n .mt-sm-0,\r\n .my-sm-0 {\r\n margin-top: 0 !important;\r\n }\r\n .mr-sm-0,\r\n .mx-sm-0 {\r\n margin-right: 0 !important;\r\n }\r\n .mb-sm-0,\r\n .my-sm-0 {\r\n margin-bottom: 0 !important;\r\n }\r\n .ml-sm-0,\r\n .mx-sm-0 {\r\n margin-left: 0 !important;\r\n }\r\n .m-sm-1 {\r\n margin: 0.25rem !important;\r\n }\r\n .mt-sm-1,\r\n .my-sm-1 {\r\n margin-top: 0.25rem !important;\r\n }\r\n .mr-sm-1,\r\n .mx-sm-1 {\r\n margin-right: 0.25rem !important;\r\n }\r\n .mb-sm-1,\r\n .my-sm-1 {\r\n margin-bottom: 0.25rem !important;\r\n }\r\n .ml-sm-1,\r\n .mx-sm-1 {\r\n margin-left: 0.25rem !important;\r\n }\r\n .m-sm-2 {\r\n margin: 0.5rem !important;\r\n }\r\n .mt-sm-2,\r\n .my-sm-2 {\r\n margin-top: 0.5rem !important;\r\n }\r\n .mr-sm-2,\r\n .mx-sm-2 {\r\n margin-right: 0.5rem !important;\r\n }\r\n .mb-sm-2,\r\n .my-sm-2 {\r\n margin-bottom: 0.5rem !important;\r\n }\r\n .ml-sm-2,\r\n .mx-sm-2 {\r\n margin-left: 0.5rem !important;\r\n }\r\n .m-sm-3 {\r\n margin: 1rem !important;\r\n }\r\n .mt-sm-3,\r\n .my-sm-3 {\r\n margin-top: 1rem !important;\r\n }\r\n .mr-sm-3,\r\n .mx-sm-3 {\r\n margin-right: 1rem !important;\r\n }\r\n .mb-sm-3,\r\n .my-sm-3 {\r\n margin-bottom: 1rem !important;\r\n }\r\n .ml-sm-3,\r\n .mx-sm-3 {\r\n margin-left: 1rem !important;\r\n }\r\n .m-sm-4 {\r\n margin: 1.5rem !important;\r\n }\r\n .mt-sm-4,\r\n .my-sm-4 {\r\n margin-top: 1.5rem !important;\r\n }\r\n .mr-sm-4,\r\n .mx-sm-4 {\r\n margin-right: 1.5rem !important;\r\n }\r\n .mb-sm-4,\r\n .my-sm-4 {\r\n margin-bottom: 1.5rem !important;\r\n }\r\n .ml-sm-4,\r\n .mx-sm-4 {\r\n margin-left: 1.5rem !important;\r\n }\r\n .m-sm-5 {\r\n margin: 3rem !important;\r\n }\r\n .mt-sm-5,\r\n .my-sm-5 {\r\n margin-top: 3rem !important;\r\n }\r\n .mr-sm-5,\r\n .mx-sm-5 {\r\n margin-right: 3rem !important;\r\n }\r\n .mb-sm-5,\r\n .my-sm-5 {\r\n margin-bottom: 3rem !important;\r\n }\r\n .ml-sm-5,\r\n .mx-sm-5 {\r\n margin-left: 3rem !important;\r\n }\r\n .p-sm-0 {\r\n padding: 0 !important;\r\n }\r\n .pt-sm-0,\r\n .py-sm-0 {\r\n padding-top: 0 !important;\r\n }\r\n .pr-sm-0,\r\n .px-sm-0 {\r\n padding-right: 0 !important;\r\n }\r\n .pb-sm-0,\r\n .py-sm-0 {\r\n padding-bottom: 0 !important;\r\n }\r\n .pl-sm-0,\r\n .px-sm-0 {\r\n padding-left: 0 !important;\r\n }\r\n .p-sm-1 {\r\n padding: 0.25rem !important;\r\n }\r\n .pt-sm-1,\r\n .py-sm-1 {\r\n padding-top: 0.25rem !important;\r\n }\r\n .pr-sm-1,\r\n .px-sm-1 {\r\n padding-right: 0.25rem !important;\r\n }\r\n .pb-sm-1,\r\n .py-sm-1 {\r\n padding-bottom: 0.25rem !important;\r\n }\r\n .pl-sm-1,\r\n .px-sm-1 {\r\n padding-left: 0.25rem !important;\r\n }\r\n .p-sm-2 {\r\n padding: 0.5rem !important;\r\n }\r\n .pt-sm-2,\r\n .py-sm-2 {\r\n padding-top: 0.5rem !important;\r\n }\r\n .pr-sm-2,\r\n .px-sm-2 {\r\n padding-right: 0.5rem !important;\r\n }\r\n .pb-sm-2,\r\n .py-sm-2 {\r\n padding-bottom: 0.5rem !important;\r\n }\r\n .pl-sm-2,\r\n .px-sm-2 {\r\n padding-left: 0.5rem !important;\r\n }\r\n .p-sm-3 {\r\n padding: 1rem !important;\r\n }\r\n .pt-sm-3,\r\n .py-sm-3 {\r\n padding-top: 1rem !important;\r\n }\r\n .pr-sm-3,\r\n .px-sm-3 {\r\n padding-right: 1rem !important;\r\n }\r\n .pb-sm-3,\r\n .py-sm-3 {\r\n padding-bottom: 1rem !important;\r\n }\r\n .pl-sm-3,\r\n .px-sm-3 {\r\n padding-left: 1rem !important;\r\n }\r\n .p-sm-4 {\r\n padding: 1.5rem !important;\r\n }\r\n .pt-sm-4,\r\n .py-sm-4 {\r\n padding-top: 1.5rem !important;\r\n }\r\n .pr-sm-4,\r\n .px-sm-4 {\r\n padding-right: 1.5rem !important;\r\n }\r\n .pb-sm-4,\r\n .py-sm-4 {\r\n padding-bottom: 1.5rem !important;\r\n }\r\n .pl-sm-4,\r\n .px-sm-4 {\r\n padding-left: 1.5rem !important;\r\n }\r\n .p-sm-5 {\r\n padding: 3rem !important;\r\n }\r\n .pt-sm-5,\r\n .py-sm-5 {\r\n padding-top: 3rem !important;\r\n }\r\n .pr-sm-5,\r\n .px-sm-5 {\r\n padding-right: 3rem !important;\r\n }\r\n .pb-sm-5,\r\n .py-sm-5 {\r\n padding-bottom: 3rem !important;\r\n }\r\n .pl-sm-5,\r\n .px-sm-5 {\r\n padding-left: 3rem !important;\r\n }\r\n .m-sm-n1 {\r\n margin: -0.25rem !important;\r\n }\r\n .mt-sm-n1,\r\n .my-sm-n1 {\r\n margin-top: -0.25rem !important;\r\n }\r\n .mr-sm-n1,\r\n .mx-sm-n1 {\r\n margin-right: -0.25rem !important;\r\n }\r\n .mb-sm-n1,\r\n .my-sm-n1 {\r\n margin-bottom: -0.25rem !important;\r\n }\r\n .ml-sm-n1,\r\n .mx-sm-n1 {\r\n margin-left: -0.25rem !important;\r\n }\r\n .m-sm-n2 {\r\n margin: -0.5rem !important;\r\n }\r\n .mt-sm-n2,\r\n .my-sm-n2 {\r\n margin-top: -0.5rem !important;\r\n }\r\n .mr-sm-n2,\r\n .mx-sm-n2 {\r\n margin-right: -0.5rem !important;\r\n }\r\n .mb-sm-n2,\r\n .my-sm-n2 {\r\n margin-bottom: -0.5rem !important;\r\n }\r\n .ml-sm-n2,\r\n .mx-sm-n2 {\r\n margin-left: -0.5rem !important;\r\n }\r\n .m-sm-n3 {\r\n margin: -1rem !important;\r\n }\r\n .mt-sm-n3,\r\n .my-sm-n3 {\r\n margin-top: -1rem !important;\r\n }\r\n .mr-sm-n3,\r\n .mx-sm-n3 {\r\n margin-right: -1rem !important;\r\n }\r\n .mb-sm-n3,\r\n .my-sm-n3 {\r\n margin-bottom: -1rem !important;\r\n }\r\n .ml-sm-n3,\r\n .mx-sm-n3 {\r\n margin-left: -1rem !important;\r\n }\r\n .m-sm-n4 {\r\n margin: -1.5rem !important;\r\n }\r\n .mt-sm-n4,\r\n .my-sm-n4 {\r\n margin-top: -1.5rem !important;\r\n }\r\n .mr-sm-n4,\r\n .mx-sm-n4 {\r\n margin-right: -1.5rem !important;\r\n }\r\n .mb-sm-n4,\r\n .my-sm-n4 {\r\n margin-bottom: -1.5rem !important;\r\n }\r\n .ml-sm-n4,\r\n .mx-sm-n4 {\r\n margin-left: -1.5rem !important;\r\n }\r\n .m-sm-n5 {\r\n margin: -3rem !important;\r\n }\r\n .mt-sm-n5,\r\n .my-sm-n5 {\r\n margin-top: -3rem !important;\r\n }\r\n .mr-sm-n5,\r\n .mx-sm-n5 {\r\n margin-right: -3rem !important;\r\n }\r\n .mb-sm-n5,\r\n .my-sm-n5 {\r\n margin-bottom: -3rem !important;\r\n }\r\n .ml-sm-n5,\r\n .mx-sm-n5 {\r\n margin-left: -3rem !important;\r\n }\r\n .m-sm-auto {\r\n margin: auto !important;\r\n }\r\n .mt-sm-auto,\r\n .my-sm-auto {\r\n margin-top: auto !important;\r\n }\r\n .mr-sm-auto,\r\n .mx-sm-auto {\r\n margin-right: auto !important;\r\n }\r\n .mb-sm-auto,\r\n .my-sm-auto {\r\n margin-bottom: auto !important;\r\n }\r\n .ml-sm-auto,\r\n .mx-sm-auto {\r\n margin-left: auto !important;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .m-md-0 {\r\n margin: 0 !important;\r\n }\r\n .mt-md-0,\r\n .my-md-0 {\r\n margin-top: 0 !important;\r\n }\r\n .mr-md-0,\r\n .mx-md-0 {\r\n margin-right: 0 !important;\r\n }\r\n .mb-md-0,\r\n .my-md-0 {\r\n margin-bottom: 0 !important;\r\n }\r\n .ml-md-0,\r\n .mx-md-0 {\r\n margin-left: 0 !important;\r\n }\r\n .m-md-1 {\r\n margin: 0.25rem !important;\r\n }\r\n .mt-md-1,\r\n .my-md-1 {\r\n margin-top: 0.25rem !important;\r\n }\r\n .mr-md-1,\r\n .mx-md-1 {\r\n margin-right: 0.25rem !important;\r\n }\r\n .mb-md-1,\r\n .my-md-1 {\r\n margin-bottom: 0.25rem !important;\r\n }\r\n .ml-md-1,\r\n .mx-md-1 {\r\n margin-left: 0.25rem !important;\r\n }\r\n .m-md-2 {\r\n margin: 0.5rem !important;\r\n }\r\n .mt-md-2,\r\n .my-md-2 {\r\n margin-top: 0.5rem !important;\r\n }\r\n .mr-md-2,\r\n .mx-md-2 {\r\n margin-right: 0.5rem !important;\r\n }\r\n .mb-md-2,\r\n .my-md-2 {\r\n margin-bottom: 0.5rem !important;\r\n }\r\n .ml-md-2,\r\n .mx-md-2 {\r\n margin-left: 0.5rem !important;\r\n }\r\n .m-md-3 {\r\n margin: 1rem !important;\r\n }\r\n .mt-md-3,\r\n .my-md-3 {\r\n margin-top: 1rem !important;\r\n }\r\n .mr-md-3,\r\n .mx-md-3 {\r\n margin-right: 1rem !important;\r\n }\r\n .mb-md-3,\r\n .my-md-3 {\r\n margin-bottom: 1rem !important;\r\n }\r\n .ml-md-3,\r\n .mx-md-3 {\r\n margin-left: 1rem !important;\r\n }\r\n .m-md-4 {\r\n margin: 1.5rem !important;\r\n }\r\n .mt-md-4,\r\n .my-md-4 {\r\n margin-top: 1.5rem !important;\r\n }\r\n .mr-md-4,\r\n .mx-md-4 {\r\n margin-right: 1.5rem !important;\r\n }\r\n .mb-md-4,\r\n .my-md-4 {\r\n margin-bottom: 1.5rem !important;\r\n }\r\n .ml-md-4,\r\n .mx-md-4 {\r\n margin-left: 1.5rem !important;\r\n }\r\n .m-md-5 {\r\n margin: 3rem !important;\r\n }\r\n .mt-md-5,\r\n .my-md-5 {\r\n margin-top: 3rem !important;\r\n }\r\n .mr-md-5,\r\n .mx-md-5 {\r\n margin-right: 3rem !important;\r\n }\r\n .mb-md-5,\r\n .my-md-5 {\r\n margin-bottom: 3rem !important;\r\n }\r\n .ml-md-5,\r\n .mx-md-5 {\r\n margin-left: 3rem !important;\r\n }\r\n .p-md-0 {\r\n padding: 0 !important;\r\n }\r\n .pt-md-0,\r\n .py-md-0 {\r\n padding-top: 0 !important;\r\n }\r\n .pr-md-0,\r\n .px-md-0 {\r\n padding-right: 0 !important;\r\n }\r\n .pb-md-0,\r\n .py-md-0 {\r\n padding-bottom: 0 !important;\r\n }\r\n .pl-md-0,\r\n .px-md-0 {\r\n padding-left: 0 !important;\r\n }\r\n .p-md-1 {\r\n padding: 0.25rem !important;\r\n }\r\n .pt-md-1,\r\n .py-md-1 {\r\n padding-top: 0.25rem !important;\r\n }\r\n .pr-md-1,\r\n .px-md-1 {\r\n padding-right: 0.25rem !important;\r\n }\r\n .pb-md-1,\r\n .py-md-1 {\r\n padding-bottom: 0.25rem !important;\r\n }\r\n .pl-md-1,\r\n .px-md-1 {\r\n padding-left: 0.25rem !important;\r\n }\r\n .p-md-2 {\r\n padding: 0.5rem !important;\r\n }\r\n .pt-md-2,\r\n .py-md-2 {\r\n padding-top: 0.5rem !important;\r\n }\r\n .pr-md-2,\r\n .px-md-2 {\r\n padding-right: 0.5rem !important;\r\n }\r\n .pb-md-2,\r\n .py-md-2 {\r\n padding-bottom: 0.5rem !important;\r\n }\r\n .pl-md-2,\r\n .px-md-2 {\r\n padding-left: 0.5rem !important;\r\n }\r\n .p-md-3 {\r\n padding: 1rem !important;\r\n }\r\n .pt-md-3,\r\n .py-md-3 {\r\n padding-top: 1rem !important;\r\n }\r\n .pr-md-3,\r\n .px-md-3 {\r\n padding-right: 1rem !important;\r\n }\r\n .pb-md-3,\r\n .py-md-3 {\r\n padding-bottom: 1rem !important;\r\n }\r\n .pl-md-3,\r\n .px-md-3 {\r\n padding-left: 1rem !important;\r\n }\r\n .p-md-4 {\r\n padding: 1.5rem !important;\r\n }\r\n .pt-md-4,\r\n .py-md-4 {\r\n padding-top: 1.5rem !important;\r\n }\r\n .pr-md-4,\r\n .px-md-4 {\r\n padding-right: 1.5rem !important;\r\n }\r\n .pb-md-4,\r\n .py-md-4 {\r\n padding-bottom: 1.5rem !important;\r\n }\r\n .pl-md-4,\r\n .px-md-4 {\r\n padding-left: 1.5rem !important;\r\n }\r\n .p-md-5 {\r\n padding: 3rem !important;\r\n }\r\n .pt-md-5,\r\n .py-md-5 {\r\n padding-top: 3rem !important;\r\n }\r\n .pr-md-5,\r\n .px-md-5 {\r\n padding-right: 3rem !important;\r\n }\r\n .pb-md-5,\r\n .py-md-5 {\r\n padding-bottom: 3rem !important;\r\n }\r\n .pl-md-5,\r\n .px-md-5 {\r\n padding-left: 3rem !important;\r\n }\r\n .m-md-n1 {\r\n margin: -0.25rem !important;\r\n }\r\n .mt-md-n1,\r\n .my-md-n1 {\r\n margin-top: -0.25rem !important;\r\n }\r\n .mr-md-n1,\r\n .mx-md-n1 {\r\n margin-right: -0.25rem !important;\r\n }\r\n .mb-md-n1,\r\n .my-md-n1 {\r\n margin-bottom: -0.25rem !important;\r\n }\r\n .ml-md-n1,\r\n .mx-md-n1 {\r\n margin-left: -0.25rem !important;\r\n }\r\n .m-md-n2 {\r\n margin: -0.5rem !important;\r\n }\r\n .mt-md-n2,\r\n .my-md-n2 {\r\n margin-top: -0.5rem !important;\r\n }\r\n .mr-md-n2,\r\n .mx-md-n2 {\r\n margin-right: -0.5rem !important;\r\n }\r\n .mb-md-n2,\r\n .my-md-n2 {\r\n margin-bottom: -0.5rem !important;\r\n }\r\n .ml-md-n2,\r\n .mx-md-n2 {\r\n margin-left: -0.5rem !important;\r\n }\r\n .m-md-n3 {\r\n margin: -1rem !important;\r\n }\r\n .mt-md-n3,\r\n .my-md-n3 {\r\n margin-top: -1rem !important;\r\n }\r\n .mr-md-n3,\r\n .mx-md-n3 {\r\n margin-right: -1rem !important;\r\n }\r\n .mb-md-n3,\r\n .my-md-n3 {\r\n margin-bottom: -1rem !important;\r\n }\r\n .ml-md-n3,\r\n .mx-md-n3 {\r\n margin-left: -1rem !important;\r\n }\r\n .m-md-n4 {\r\n margin: -1.5rem !important;\r\n }\r\n .mt-md-n4,\r\n .my-md-n4 {\r\n margin-top: -1.5rem !important;\r\n }\r\n .mr-md-n4,\r\n .mx-md-n4 {\r\n margin-right: -1.5rem !important;\r\n }\r\n .mb-md-n4,\r\n .my-md-n4 {\r\n margin-bottom: -1.5rem !important;\r\n }\r\n .ml-md-n4,\r\n .mx-md-n4 {\r\n margin-left: -1.5rem !important;\r\n }\r\n .m-md-n5 {\r\n margin: -3rem !important;\r\n }\r\n .mt-md-n5,\r\n .my-md-n5 {\r\n margin-top: -3rem !important;\r\n }\r\n .mr-md-n5,\r\n .mx-md-n5 {\r\n margin-right: -3rem !important;\r\n }\r\n .mb-md-n5,\r\n .my-md-n5 {\r\n margin-bottom: -3rem !important;\r\n }\r\n .ml-md-n5,\r\n .mx-md-n5 {\r\n margin-left: -3rem !important;\r\n }\r\n .m-md-auto {\r\n margin: auto !important;\r\n }\r\n .mt-md-auto,\r\n .my-md-auto {\r\n margin-top: auto !important;\r\n }\r\n .mr-md-auto,\r\n .mx-md-auto {\r\n margin-right: auto !important;\r\n }\r\n .mb-md-auto,\r\n .my-md-auto {\r\n margin-bottom: auto !important;\r\n }\r\n .ml-md-auto,\r\n .mx-md-auto {\r\n margin-left: auto !important;\r\n }\r\n}\r\n\r\n@media (min-width: 992px) {\r\n .m-lg-0 {\r\n margin: 0 !important;\r\n }\r\n .mt-lg-0,\r\n .my-lg-0 {\r\n margin-top: 0 !important;\r\n }\r\n .mr-lg-0,\r\n .mx-lg-0 {\r\n margin-right: 0 !important;\r\n }\r\n .mb-lg-0,\r\n .my-lg-0 {\r\n margin-bottom: 0 !important;\r\n }\r\n .ml-lg-0,\r\n .mx-lg-0 {\r\n margin-left: 0 !important;\r\n }\r\n .m-lg-1 {\r\n margin: 0.25rem !important;\r\n }\r\n .mt-lg-1,\r\n .my-lg-1 {\r\n margin-top: 0.25rem !important;\r\n }\r\n .mr-lg-1,\r\n .mx-lg-1 {\r\n margin-right: 0.25rem !important;\r\n }\r\n .mb-lg-1,\r\n .my-lg-1 {\r\n margin-bottom: 0.25rem !important;\r\n }\r\n .ml-lg-1,\r\n .mx-lg-1 {\r\n margin-left: 0.25rem !important;\r\n }\r\n .m-lg-2 {\r\n margin: 0.5rem !important;\r\n }\r\n .mt-lg-2,\r\n .my-lg-2 {\r\n margin-top: 0.5rem !important;\r\n }\r\n .mr-lg-2,\r\n .mx-lg-2 {\r\n margin-right: 0.5rem !important;\r\n }\r\n .mb-lg-2,\r\n .my-lg-2 {\r\n margin-bottom: 0.5rem !important;\r\n }\r\n .ml-lg-2,\r\n .mx-lg-2 {\r\n margin-left: 0.5rem !important;\r\n }\r\n .m-lg-3 {\r\n margin: 1rem !important;\r\n }\r\n .mt-lg-3,\r\n .my-lg-3 {\r\n margin-top: 1rem !important;\r\n }\r\n .mr-lg-3,\r\n .mx-lg-3 {\r\n margin-right: 1rem !important;\r\n }\r\n .mb-lg-3,\r\n .my-lg-3 {\r\n margin-bottom: 1rem !important;\r\n }\r\n .ml-lg-3,\r\n .mx-lg-3 {\r\n margin-left: 1rem !important;\r\n }\r\n .m-lg-4 {\r\n margin: 1.5rem !important;\r\n }\r\n .mt-lg-4,\r\n .my-lg-4 {\r\n margin-top: 1.5rem !important;\r\n }\r\n .mr-lg-4,\r\n .mx-lg-4 {\r\n margin-right: 1.5rem !important;\r\n }\r\n .mb-lg-4,\r\n .my-lg-4 {\r\n margin-bottom: 1.5rem !important;\r\n }\r\n .ml-lg-4,\r\n .mx-lg-4 {\r\n margin-left: 1.5rem !important;\r\n }\r\n .m-lg-5 {\r\n margin: 3rem !important;\r\n }\r\n .mt-lg-5,\r\n .my-lg-5 {\r\n margin-top: 3rem !important;\r\n }\r\n .mr-lg-5,\r\n .mx-lg-5 {\r\n margin-right: 3rem !important;\r\n }\r\n .mb-lg-5,\r\n .my-lg-5 {\r\n margin-bottom: 3rem !important;\r\n }\r\n .ml-lg-5,\r\n .mx-lg-5 {\r\n margin-left: 3rem !important;\r\n }\r\n .p-lg-0 {\r\n padding: 0 !important;\r\n }\r\n .pt-lg-0,\r\n .py-lg-0 {\r\n padding-top: 0 !important;\r\n }\r\n .pr-lg-0,\r\n .px-lg-0 {\r\n padding-right: 0 !important;\r\n }\r\n .pb-lg-0,\r\n .py-lg-0 {\r\n padding-bottom: 0 !important;\r\n }\r\n .pl-lg-0,\r\n .px-lg-0 {\r\n padding-left: 0 !important;\r\n }\r\n .p-lg-1 {\r\n padding: 0.25rem !important;\r\n }\r\n .pt-lg-1,\r\n .py-lg-1 {\r\n padding-top: 0.25rem !important;\r\n }\r\n .pr-lg-1,\r\n .px-lg-1 {\r\n padding-right: 0.25rem !important;\r\n }\r\n .pb-lg-1,\r\n .py-lg-1 {\r\n padding-bottom: 0.25rem !important;\r\n }\r\n .pl-lg-1,\r\n .px-lg-1 {\r\n padding-left: 0.25rem !important;\r\n }\r\n .p-lg-2 {\r\n padding: 0.5rem !important;\r\n }\r\n .pt-lg-2,\r\n .py-lg-2 {\r\n padding-top: 0.5rem !important;\r\n }\r\n .pr-lg-2,\r\n .px-lg-2 {\r\n padding-right: 0.5rem !important;\r\n }\r\n .pb-lg-2,\r\n .py-lg-2 {\r\n padding-bottom: 0.5rem !important;\r\n }\r\n .pl-lg-2,\r\n .px-lg-2 {\r\n padding-left: 0.5rem !important;\r\n }\r\n .p-lg-3 {\r\n padding: 1rem !important;\r\n }\r\n .pt-lg-3,\r\n .py-lg-3 {\r\n padding-top: 1rem !important;\r\n }\r\n .pr-lg-3,\r\n .px-lg-3 {\r\n padding-right: 1rem !important;\r\n }\r\n .pb-lg-3,\r\n .py-lg-3 {\r\n padding-bottom: 1rem !important;\r\n }\r\n .pl-lg-3,\r\n .px-lg-3 {\r\n padding-left: 1rem !important;\r\n }\r\n .p-lg-4 {\r\n padding: 1.5rem !important;\r\n }\r\n .pt-lg-4,\r\n .py-lg-4 {\r\n padding-top: 1.5rem !important;\r\n }\r\n .pr-lg-4,\r\n .px-lg-4 {\r\n padding-right: 1.5rem !important;\r\n }\r\n .pb-lg-4,\r\n .py-lg-4 {\r\n padding-bottom: 1.5rem !important;\r\n }\r\n .pl-lg-4,\r\n .px-lg-4 {\r\n padding-left: 1.5rem !important;\r\n }\r\n .p-lg-5 {\r\n padding: 3rem !important;\r\n }\r\n .pt-lg-5,\r\n .py-lg-5 {\r\n padding-top: 3rem !important;\r\n }\r\n .pr-lg-5,\r\n .px-lg-5 {\r\n padding-right: 3rem !important;\r\n }\r\n .pb-lg-5,\r\n .py-lg-5 {\r\n padding-bottom: 3rem !important;\r\n }\r\n .pl-lg-5,\r\n .px-lg-5 {\r\n padding-left: 3rem !important;\r\n }\r\n .m-lg-n1 {\r\n margin: -0.25rem !important;\r\n }\r\n .mt-lg-n1,\r\n .my-lg-n1 {\r\n margin-top: -0.25rem !important;\r\n }\r\n .mr-lg-n1,\r\n .mx-lg-n1 {\r\n margin-right: -0.25rem !important;\r\n }\r\n .mb-lg-n1,\r\n .my-lg-n1 {\r\n margin-bottom: -0.25rem !important;\r\n }\r\n .ml-lg-n1,\r\n .mx-lg-n1 {\r\n margin-left: -0.25rem !important;\r\n }\r\n .m-lg-n2 {\r\n margin: -0.5rem !important;\r\n }\r\n .mt-lg-n2,\r\n .my-lg-n2 {\r\n margin-top: -0.5rem !important;\r\n }\r\n .mr-lg-n2,\r\n .mx-lg-n2 {\r\n margin-right: -0.5rem !important;\r\n }\r\n .mb-lg-n2,\r\n .my-lg-n2 {\r\n margin-bottom: -0.5rem !important;\r\n }\r\n .ml-lg-n2,\r\n .mx-lg-n2 {\r\n margin-left: -0.5rem !important;\r\n }\r\n .m-lg-n3 {\r\n margin: -1rem !important;\r\n }\r\n .mt-lg-n3,\r\n .my-lg-n3 {\r\n margin-top: -1rem !important;\r\n }\r\n .mr-lg-n3,\r\n .mx-lg-n3 {\r\n margin-right: -1rem !important;\r\n }\r\n .mb-lg-n3,\r\n .my-lg-n3 {\r\n margin-bottom: -1rem !important;\r\n }\r\n .ml-lg-n3,\r\n .mx-lg-n3 {\r\n margin-left: -1rem !important;\r\n }\r\n .m-lg-n4 {\r\n margin: -1.5rem !important;\r\n }\r\n .mt-lg-n4,\r\n .my-lg-n4 {\r\n margin-top: -1.5rem !important;\r\n }\r\n .mr-lg-n4,\r\n .mx-lg-n4 {\r\n margin-right: -1.5rem !important;\r\n }\r\n .mb-lg-n4,\r\n .my-lg-n4 {\r\n margin-bottom: -1.5rem !important;\r\n }\r\n .ml-lg-n4,\r\n .mx-lg-n4 {\r\n margin-left: -1.5rem !important;\r\n }\r\n .m-lg-n5 {\r\n margin: -3rem !important;\r\n }\r\n .mt-lg-n5,\r\n .my-lg-n5 {\r\n margin-top: -3rem !important;\r\n }\r\n .mr-lg-n5,\r\n .mx-lg-n5 {\r\n margin-right: -3rem !important;\r\n }\r\n .mb-lg-n5,\r\n .my-lg-n5 {\r\n margin-bottom: -3rem !important;\r\n }\r\n .ml-lg-n5,\r\n .mx-lg-n5 {\r\n margin-left: -3rem !important;\r\n }\r\n .m-lg-auto {\r\n margin: auto !important;\r\n }\r\n .mt-lg-auto,\r\n .my-lg-auto {\r\n margin-top: auto !important;\r\n }\r\n .mr-lg-auto,\r\n .mx-lg-auto {\r\n margin-right: auto !important;\r\n }\r\n .mb-lg-auto,\r\n .my-lg-auto {\r\n margin-bottom: auto !important;\r\n }\r\n .ml-lg-auto,\r\n .mx-lg-auto {\r\n margin-left: auto !important;\r\n }\r\n}\r\n\r\n@media (min-width: 1200px) {\r\n .m-xl-0 {\r\n margin: 0 !important;\r\n }\r\n .mt-xl-0,\r\n .my-xl-0 {\r\n margin-top: 0 !important;\r\n }\r\n .mr-xl-0,\r\n .mx-xl-0 {\r\n margin-right: 0 !important;\r\n }\r\n .mb-xl-0,\r\n .my-xl-0 {\r\n margin-bottom: 0 !important;\r\n }\r\n .ml-xl-0,\r\n .mx-xl-0 {\r\n margin-left: 0 !important;\r\n }\r\n .m-xl-1 {\r\n margin: 0.25rem !important;\r\n }\r\n .mt-xl-1,\r\n .my-xl-1 {\r\n margin-top: 0.25rem !important;\r\n }\r\n .mr-xl-1,\r\n .mx-xl-1 {\r\n margin-right: 0.25rem !important;\r\n }\r\n .mb-xl-1,\r\n .my-xl-1 {\r\n margin-bottom: 0.25rem !important;\r\n }\r\n .ml-xl-1,\r\n .mx-xl-1 {\r\n margin-left: 0.25rem !important;\r\n }\r\n .m-xl-2 {\r\n margin: 0.5rem !important;\r\n }\r\n .mt-xl-2,\r\n .my-xl-2 {\r\n margin-top: 0.5rem !important;\r\n }\r\n .mr-xl-2,\r\n .mx-xl-2 {\r\n margin-right: 0.5rem !important;\r\n }\r\n .mb-xl-2,\r\n .my-xl-2 {\r\n margin-bottom: 0.5rem !important;\r\n }\r\n .ml-xl-2,\r\n .mx-xl-2 {\r\n margin-left: 0.5rem !important;\r\n }\r\n .m-xl-3 {\r\n margin: 1rem !important;\r\n }\r\n .mt-xl-3,\r\n .my-xl-3 {\r\n margin-top: 1rem !important;\r\n }\r\n .mr-xl-3,\r\n .mx-xl-3 {\r\n margin-right: 1rem !important;\r\n }\r\n .mb-xl-3,\r\n .my-xl-3 {\r\n margin-bottom: 1rem !important;\r\n }\r\n .ml-xl-3,\r\n .mx-xl-3 {\r\n margin-left: 1rem !important;\r\n }\r\n .m-xl-4 {\r\n margin: 1.5rem !important;\r\n }\r\n .mt-xl-4,\r\n .my-xl-4 {\r\n margin-top: 1.5rem !important;\r\n }\r\n .mr-xl-4,\r\n .mx-xl-4 {\r\n margin-right: 1.5rem !important;\r\n }\r\n .mb-xl-4,\r\n .my-xl-4 {\r\n margin-bottom: 1.5rem !important;\r\n }\r\n .ml-xl-4,\r\n .mx-xl-4 {\r\n margin-left: 1.5rem !important;\r\n }\r\n .m-xl-5 {\r\n margin: 3rem !important;\r\n }\r\n .mt-xl-5,\r\n .my-xl-5 {\r\n margin-top: 3rem !important;\r\n }\r\n .mr-xl-5,\r\n .mx-xl-5 {\r\n margin-right: 3rem !important;\r\n }\r\n .mb-xl-5,\r\n .my-xl-5 {\r\n margin-bottom: 3rem !important;\r\n }\r\n .ml-xl-5,\r\n .mx-xl-5 {\r\n margin-left: 3rem !important;\r\n }\r\n .p-xl-0 {\r\n padding: 0 !important;\r\n }\r\n .pt-xl-0,\r\n .py-xl-0 {\r\n padding-top: 0 !important;\r\n }\r\n .pr-xl-0,\r\n .px-xl-0 {\r\n padding-right: 0 !important;\r\n }\r\n .pb-xl-0,\r\n .py-xl-0 {\r\n padding-bottom: 0 !important;\r\n }\r\n .pl-xl-0,\r\n .px-xl-0 {\r\n padding-left: 0 !important;\r\n }\r\n .p-xl-1 {\r\n padding: 0.25rem !important;\r\n }\r\n .pt-xl-1,\r\n .py-xl-1 {\r\n padding-top: 0.25rem !important;\r\n }\r\n .pr-xl-1,\r\n .px-xl-1 {\r\n padding-right: 0.25rem !important;\r\n }\r\n .pb-xl-1,\r\n .py-xl-1 {\r\n padding-bottom: 0.25rem !important;\r\n }\r\n .pl-xl-1,\r\n .px-xl-1 {\r\n padding-left: 0.25rem !important;\r\n }\r\n .p-xl-2 {\r\n padding: 0.5rem !important;\r\n }\r\n .pt-xl-2,\r\n .py-xl-2 {\r\n padding-top: 0.5rem !important;\r\n }\r\n .pr-xl-2,\r\n .px-xl-2 {\r\n padding-right: 0.5rem !important;\r\n }\r\n .pb-xl-2,\r\n .py-xl-2 {\r\n padding-bottom: 0.5rem !important;\r\n }\r\n .pl-xl-2,\r\n .px-xl-2 {\r\n padding-left: 0.5rem !important;\r\n }\r\n .p-xl-3 {\r\n padding: 1rem !important;\r\n }\r\n .pt-xl-3,\r\n .py-xl-3 {\r\n padding-top: 1rem !important;\r\n }\r\n .pr-xl-3,\r\n .px-xl-3 {\r\n padding-right: 1rem !important;\r\n }\r\n .pb-xl-3,\r\n .py-xl-3 {\r\n padding-bottom: 1rem !important;\r\n }\r\n .pl-xl-3,\r\n .px-xl-3 {\r\n padding-left: 1rem !important;\r\n }\r\n .p-xl-4 {\r\n padding: 1.5rem !important;\r\n }\r\n .pt-xl-4,\r\n .py-xl-4 {\r\n padding-top: 1.5rem !important;\r\n }\r\n .pr-xl-4,\r\n .px-xl-4 {\r\n padding-right: 1.5rem !important;\r\n }\r\n .pb-xl-4,\r\n .py-xl-4 {\r\n padding-bottom: 1.5rem !important;\r\n }\r\n .pl-xl-4,\r\n .px-xl-4 {\r\n padding-left: 1.5rem !important;\r\n }\r\n .p-xl-5 {\r\n padding: 3rem !important;\r\n }\r\n .pt-xl-5,\r\n .py-xl-5 {\r\n padding-top: 3rem !important;\r\n }\r\n .pr-xl-5,\r\n .px-xl-5 {\r\n padding-right: 3rem !important;\r\n }\r\n .pb-xl-5,\r\n .py-xl-5 {\r\n padding-bottom: 3rem !important;\r\n }\r\n .pl-xl-5,\r\n .px-xl-5 {\r\n padding-left: 3rem !important;\r\n }\r\n .m-xl-n1 {\r\n margin: -0.25rem !important;\r\n }\r\n .mt-xl-n1,\r\n .my-xl-n1 {\r\n margin-top: -0.25rem !important;\r\n }\r\n .mr-xl-n1,\r\n .mx-xl-n1 {\r\n margin-right: -0.25rem !important;\r\n }\r\n .mb-xl-n1,\r\n .my-xl-n1 {\r\n margin-bottom: -0.25rem !important;\r\n }\r\n .ml-xl-n1,\r\n .mx-xl-n1 {\r\n margin-left: -0.25rem !important;\r\n }\r\n .m-xl-n2 {\r\n margin: -0.5rem !important;\r\n }\r\n .mt-xl-n2,\r\n .my-xl-n2 {\r\n margin-top: -0.5rem !important;\r\n }\r\n .mr-xl-n2,\r\n .mx-xl-n2 {\r\n margin-right: -0.5rem !important;\r\n }\r\n .mb-xl-n2,\r\n .my-xl-n2 {\r\n margin-bottom: -0.5rem !important;\r\n }\r\n .ml-xl-n2,\r\n .mx-xl-n2 {\r\n margin-left: -0.5rem !important;\r\n }\r\n .m-xl-n3 {\r\n margin: -1rem !important;\r\n }\r\n .mt-xl-n3,\r\n .my-xl-n3 {\r\n margin-top: -1rem !important;\r\n }\r\n .mr-xl-n3,\r\n .mx-xl-n3 {\r\n margin-right: -1rem !important;\r\n }\r\n .mb-xl-n3,\r\n .my-xl-n3 {\r\n margin-bottom: -1rem !important;\r\n }\r\n .ml-xl-n3,\r\n .mx-xl-n3 {\r\n margin-left: -1rem !important;\r\n }\r\n .m-xl-n4 {\r\n margin: -1.5rem !important;\r\n }\r\n .mt-xl-n4,\r\n .my-xl-n4 {\r\n margin-top: -1.5rem !important;\r\n }\r\n .mr-xl-n4,\r\n .mx-xl-n4 {\r\n margin-right: -1.5rem !important;\r\n }\r\n .mb-xl-n4,\r\n .my-xl-n4 {\r\n margin-bottom: -1.5rem !important;\r\n }\r\n .ml-xl-n4,\r\n .mx-xl-n4 {\r\n margin-left: -1.5rem !important;\r\n }\r\n .m-xl-n5 {\r\n margin: -3rem !important;\r\n }\r\n .mt-xl-n5,\r\n .my-xl-n5 {\r\n margin-top: -3rem !important;\r\n }\r\n .mr-xl-n5,\r\n .mx-xl-n5 {\r\n margin-right: -3rem !important;\r\n }\r\n .mb-xl-n5,\r\n .my-xl-n5 {\r\n margin-bottom: -3rem !important;\r\n }\r\n .ml-xl-n5,\r\n .mx-xl-n5 {\r\n margin-left: -3rem !important;\r\n }\r\n .m-xl-auto {\r\n margin: auto !important;\r\n }\r\n .mt-xl-auto,\r\n .my-xl-auto {\r\n margin-top: auto !important;\r\n }\r\n .mr-xl-auto,\r\n .mx-xl-auto {\r\n margin-right: auto !important;\r\n }\r\n .mb-xl-auto,\r\n .my-xl-auto {\r\n margin-bottom: auto !important;\r\n }\r\n .ml-xl-auto,\r\n .mx-xl-auto {\r\n margin-left: auto !important;\r\n }\r\n}\r\n\r\n.stretched-link::after {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1;\r\n pointer-events: auto;\r\n content: \"\";\r\n background-color: rgba(0, 0, 0, 0);\r\n}\r\n\r\n.text-monospace {\r\n font-family: ${GlobalTheme_1.GlobalTheme.current.fonts.fontFamilyMono};\r\n}\r\n\r\n.text-justify {\r\n text-align: justify !important;\r\n}\r\n\r\n.text-wrap {\r\n white-space: normal !important;\r\n}\r\n\r\n.text-nowrap {\r\n white-space: nowrap !important;\r\n}\r\n\r\n.text-truncate {\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n.text-left {\r\n text-align: left !important;\r\n}\r\n\r\n.text-right {\r\n text-align: right !important;\r\n}\r\n\r\n.text-center {\r\n text-align: center !important;\r\n}\r\n\r\n@media (min-width: 576px) {\r\n .text-sm-left {\r\n text-align: left !important;\r\n }\r\n .text-sm-right {\r\n text-align: right !important;\r\n }\r\n .text-sm-center {\r\n text-align: center !important;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .text-md-left {\r\n text-align: left !important;\r\n }\r\n .text-md-right {\r\n text-align: right !important;\r\n }\r\n .text-md-center {\r\n text-align: center !important;\r\n }\r\n}\r\n\r\n@media (min-width: 992px) {\r\n .text-lg-left {\r\n text-align: left !important;\r\n }\r\n .text-lg-right {\r\n text-align: right !important;\r\n }\r\n .text-lg-center {\r\n text-align: center !important;\r\n }\r\n}\r\n\r\n@media (min-width: 1200px) {\r\n .text-xl-left {\r\n text-align: left !important;\r\n }\r\n .text-xl-right {\r\n text-align: right !important;\r\n }\r\n .text-xl-center {\r\n text-align: center !important;\r\n }\r\n}\r\n\r\n.text-lowercase {\r\n text-transform: lowercase !important;\r\n}\r\n\r\n.text-uppercase {\r\n text-transform: uppercase !important;\r\n}\r\n\r\n.text-capitalize {\r\n text-transform: capitalize !important;\r\n}\r\n\r\n.font-weight-light {\r\n font-weight: 300 !important;\r\n}\r\n\r\n.font-weight-lighter {\r\n font-weight: lighter !important;\r\n}\r\n\r\n.font-weight-normal {\r\n font-weight: 400 !important;\r\n}\r\n\r\n.font-weight-bold {\r\n font-weight: 700 !important;\r\n}\r\n\r\n.font-weight-bolder {\r\n font-weight: bolder !important;\r\n}\r\n\r\n.font-italic {\r\n font-style: italic !important;\r\n}\r\n\r\n.text-white {\r\n color: ${colors.neutrals.min} !important;\r\n}\r\n\r\na.text-white:hover,\r\na.text-white:focus {\r\n color: ${colors.neutrals.n400} !important;\r\n}\r\n\r\n.text-primary {\r\n color: ${colors.bootstrap.primary} !important;\r\n}\r\n\r\na.text-primary:hover, a.text-primary:focus {\r\n color: #0056b3 !important;\r\n}\r\n\r\n.text-secondary {\r\n color: ${colors.bootstrap.secondary} !important;\r\n}\r\n\r\na.text-secondary:hover, a.text-secondary:focus {\r\n color: #494f54 !important;\r\n}\r\n\r\n.text-success {\r\n color: ${colors.bootstrap.success} !important;\r\n}\r\n\r\na.text-success:hover, a.text-success:focus {\r\n color: #19692c !important;\r\n}\r\n\r\n.text-info {\r\n color: ${colors.bootstrap.info} !important;\r\n}\r\n\r\na.text-info:hover, a.text-info:focus {\r\n color: #0f6674 !important;\r\n}\r\n\r\n.text-warning {\r\n color: ${colors.bootstrap.warning} !important;\r\n}\r\n\r\na.text-warning:hover, a.text-warning:focus {\r\n color: #ba8b00 !important;\r\n}\r\n\r\n.text-danger {\r\n color: ${colors.bootstrap.danger} !important;\r\n}\r\n\r\na.text-danger:hover, a.text-danger:focus {\r\n color: #a71d2a !important;\r\n}\r\n\r\n.text-light {\r\n color: ${colors.neutrals.n200} !important;\r\n}\r\n\r\na.text-light:hover, a.text-light:focus {\r\n color: ${colors.neutrals.n400} !important;\r\n}\r\n\r\n.text-dark {\r\n color: ${colors.neutrals.n600} !important;\r\n}\r\n\r\na.text-dark:hover, a.text-dark:focus {\r\n color: ${colors.neutrals.n800} !important;\r\n}\r\n\r\n.text-body {\r\n color: ${colors.neutrals.n700} !important;\r\n}\r\n\r\n.text-muted {\r\n color: ${colors.neutrals.n600} !important;\r\n}\r\n\r\n.text-black-50 {\r\n color: ${colors.neutrals.max} !important;\r\n opacity: 0.5\r\n}\r\n\r\n.text-white-50 {\r\n color: ${colors.neutrals.min} !important;\r\n opacity: 0.5\r\n}\r\n\r\n.text-hide {\r\n font: 0/0 a;\r\n color: ${colors.transparent};\r\n text-shadow: none;\r\n background-color: ${colors.transparent};\r\n border: 0;\r\n}\r\n\r\n.text-decoration-none {\r\n text-decoration: none !important;\r\n}\r\n\r\n.text-break {\r\n word-break: break-word !important;\r\n word-wrap: break-word !important;\r\n}\r\n\r\n.text-reset {\r\n color: inherit !important;\r\n}\r\n\r\n.visible {\r\n visibility: visible !important;\r\n}\r\n\r\n.invisible {\r\n visibility: hidden !important;\r\n}\r\n\r\n@media print {\r\n *,\r\n *::before,\r\n *::after {\r\n text-shadow: none !important;\r\n box-shadow: none !important;\r\n }\r\n a:not(.btn) {\r\n text-decoration: underline;\r\n }\r\n abbr[title]::after {\r\n content: \" (\" attr(title) \")\";\r\n }\r\n pre {\r\n white-space: pre-wrap !important;\r\n }\r\n pre,\r\n blockquote {\r\n border: 1px solid ${colors.neutrals.n500};\r\n page-break-inside: avoid;\r\n }\r\n thead {\r\n display: table-header-group;\r\n }\r\n tr,\r\n img {\r\n page-break-inside: avoid;\r\n }\r\n p,\r\n h2,\r\n h3 {\r\n orphans: 3;\r\n widows: 3;\r\n }\r\n h2,\r\n h3 {\r\n page-break-after: avoid;\r\n }\r\n @page {\r\n size: a3;\r\n }\r\n body {\r\n min-width: 992px !important;\r\n }\r\n .container {\r\n min-width: 992px !important;\r\n }\r\n .navbar {\r\n display: none;\r\n }\r\n .badge {\r\n border: 1px solid ${colors.neutrals.max};\r\n }\r\n .table {\r\n border-collapse: collapse !important;\r\n }\r\n .table td,\r\n .table th {\r\n background-color: ${colors.neutrals.min} !important;\r\n }\r\n .table-bordered th,\r\n .table-bordered td {\r\n border: 1px solid ${colors.neutrals.n300} !important;\r\n }\r\n .table-dark {\r\n color: inherit;\r\n }\r\n .table-dark th,\r\n .table-dark td,\r\n .table-dark thead th,\r\n .table-dark tbody + tbody {\r\n border-color: ${colors.neutrals.n300};\r\n }\r\n .table .thead-dark th {\r\n color: inherit;\r\n border-color: ${colors.neutrals.n300};\r\n }\r\n}\r\n`;\r\n return bootstrapCss;\r\n};\r\n/**\r\n * Brings in the Bootstrap 4 default stylesheet\r\n * https://getbootstrap.com/docs/4.0/getting-started/introduction/\r\n * */\r\nclass SbBootstrapStyles extends react_2.Component {\r\n constructor(props) {\r\n super(props);\r\n if (!props.disableRepeatWarning &&\r\n SbBootstrapStyles.instance !== undefined) {\r\n console.warn(\"More than one instance of SbBootstrap detected; for performance reasons, it's best to include only one instance\");\r\n }\r\n SbBootstrapStyles.instance = this;\r\n }\r\n render() {\r\n if (!this.props.disableRepeatWarning && SbBootstrapStyles.hasRendered) {\r\n console.warn(\"More than one render of SbBootstrap detected; for performance reasons, it's best to place this at the highest level of the DOM such that it is never re-rendered\");\r\n }\r\n SbBootstrapStyles.hasRendered = true;\r\n // If this is the live instance, render\r\n if (this === SbBootstrapStyles.instance) {\r\n const styles = getStyles();\r\n return (0, react_1.jsx)(react_1.Global, { styles: styles });\r\n }\r\n else\r\n return (0, react_1.jsx)(react_2.default.Fragment, null);\r\n }\r\n}\r\nexports.SbBootstrapStyles = SbBootstrapStyles;\r\nSbBootstrapStyles.hasRendered = false;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SbDashboardStyles = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = __importStar(require(\"react\"));\r\nconst GlobalTheme_1 = require(\"./GlobalTheme\");\r\n/*!\r\n\r\n=========================================================\r\n* Argon Dashboard - v1.1.2\r\n=========================================================\r\n\r\n* Product Page: https://www.creative-tim.com/product/argon-dashboard\r\n* Copyright 2018 Creative Tim (https://www.creative-tim.com)\r\n* Licensed under MIT (https://github.com/creativetimofficial/argon-dashboard/blob/master/LICENSE.md)\r\n\r\n* Coded by Creative Tim\r\n\r\n=========================================================\r\n\r\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\n*/\r\nconst getStyles = () => {\r\n const colors = GlobalTheme_1.GlobalTheme.current.colors;\r\n const argonStyles = (0, react_1.css) `\r\n :root {\r\n --blue: ${colors.hues.blue};\r\n --indigo: ${colors.hues.indigo};\r\n --purple: ${colors.hues.violet};\r\n --pink: ${colors.hues.pink};\r\n --red: ${colors.hues.red};\r\n --orange: ${colors.hues.orange};\r\n --yellow: ${colors.hues.yellow};\r\n --green: ${colors.hues.green};\r\n --teal: ${colors.bootstrap.info};\r\n --cyan: ${colors.hues.cyan};\r\n --white: ${colors.neutrals.min};\r\n --gray: ${colors.neutrals.n700};\r\n --gray-dark: ${colors.neutrals.n800};\r\n --light: ${colors.neutrals.n100};\r\n --lighter: ${colors.neutrals.n200};\r\n --dark: ${colors.neutrals.n900};\r\n --darker: ${colors.neutrals.max};\r\n --primary: ${colors.bootstrap.primary};\r\n --secondary: ${colors.bootstrap.secondary};\r\n --success: ${colors.bootstrap.success};\r\n --info: ${colors.bootstrap.info};\r\n --warning: ${colors.bootstrap.warning};\r\n --danger: ${colors.bootstrap.danger};\r\n --default: ${colors.bootstrap.default};\r\n --breakpoint-xs: 0;\r\n --breakpoint-sm: 576px;\r\n --breakpoint-md: 768px;\r\n --breakpoint-lg: 992px;\r\n --breakpoint-xl: 1200px;\r\n --font-family-sans-serif: ${GlobalTheme_1.GlobalTheme.current.fonts.fontFamily};\r\n --font-family-monospace: ${GlobalTheme_1.GlobalTheme.current.fonts.fontFamilyMono};\r\n }\r\n\r\n *,\r\n *::before,\r\n *::after {\r\n box-sizing: border-box;\r\n }\r\n\r\n html {\r\n font-family: sans-serif;\r\n line-height: 1.15;\r\n -webkit-text-size-adjust: 100%;\r\n -ms-text-size-adjust: 100%;\r\n -ms-overflow-style: scrollbar;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n }\r\n\r\n @-ms-viewport {\r\n width: device-width;\r\n }\r\n\r\n article,\r\n aside,\r\n figcaption,\r\n figure,\r\n footer,\r\n header,\r\n hgroup,\r\n main,\r\n nav,\r\n section {\r\n display: block;\r\n }\r\n\r\n ol,\r\n ul,\r\n dl {\r\n margin-top: 0;\r\n margin-bottom: 1rem;\r\n }\r\n\r\n ol ol,\r\n ul ul,\r\n ol ul,\r\n ul ol {\r\n margin-bottom: 0;\r\n }\r\n\r\n dt {\r\n font-weight: 600;\r\n }\r\n\r\n dd {\r\n margin-bottom: 0.5rem;\r\n margin-left: 0;\r\n }\r\n\r\n blockquote {\r\n margin: 0 0 1rem;\r\n }\r\n\r\n dfn {\r\n font-style: italic;\r\n }\r\n\r\n b,\r\n strong {\r\n font-weight: bolder;\r\n }\r\n\r\n small {\r\n font-size: 80%;\r\n }\r\n\r\n sub,\r\n sup {\r\n position: relative;\r\n font-size: 75%;\r\n line-height: 0;\r\n vertical-align: baseline;\r\n }\r\n\r\n sub {\r\n bottom: -0.25em;\r\n }\r\n\r\n sup {\r\n top: -0.5em;\r\n }\r\n\r\n a {\r\n color: ${colors.bootstrap.primary};\r\n text-decoration: none;\r\n background-color: ${colors.transparent};\r\n -webkit-text-decoration-skip: objects;\r\n transition: color 0.15s;\r\n }\r\n\r\n a:hover {\r\n color: #233dd2;\r\n text-decoration: none;\r\n }\r\n\r\n a:not([href]):not([tabindex]) {\r\n color: inherit;\r\n text-decoration: none;\r\n }\r\n\r\n a:not([href]):not([tabindex]):hover,\r\n a:not([href]):not([tabindex]):focus {\r\n color: inherit;\r\n text-decoration: none;\r\n }\r\n\r\n a:not([href]):not([tabindex]):focus {\r\n outline: 0;\r\n }\r\n\r\n pre,\r\n code,\r\n kbd,\r\n samp {\r\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\r\n \"Courier New\", monospace;\r\n font-size: 1em;\r\n }\r\n\r\n pre {\r\n margin-top: 0;\r\n margin-bottom: 1rem;\r\n overflow: auto;\r\n -ms-overflow-style: scrollbar;\r\n }\r\n\r\n figure {\r\n margin: 0 0 1rem;\r\n }\r\n\r\n img {\r\n vertical-align: middle;\r\n border-style: none;\r\n }\r\n\r\n svg {\r\n overflow: hidden;\r\n vertical-align: middle;\r\n }\r\n\r\n table {\r\n border-collapse: collapse;\r\n }\r\n\r\n caption {\r\n padding-top: 1rem;\r\n padding-bottom: 1rem;\r\n color: ${colors.neutrals.n600};\r\n text-align: left;\r\n caption-side: bottom;\r\n }\r\n\r\n th {\r\n text-align: inherit;\r\n }\r\n\r\n label {\r\n display: inline-block;\r\n margin-bottom: 0.5rem;\r\n }\r\n\r\n button {\r\n border-radius: 0;\r\n }\r\n\r\n button:focus {\r\n outline: 1px dotted;\r\n outline: 5px auto -webkit-focus-ring-color;\r\n }\r\n\r\n input,\r\n button,\r\n select,\r\n optgroup,\r\n textarea {\r\n margin: 0;\r\n font-family: inherit;\r\n font-size: inherit;\r\n line-height: inherit;\r\n }\r\n\r\n button,\r\n input {\r\n overflow: visible;\r\n }\r\n\r\n button,\r\n select {\r\n text-transform: none;\r\n }\r\n\r\n button,\r\n html [type=\"button\"],\r\n [type=\"reset\"],\r\n [type=\"submit\"] {\r\n -webkit-appearance: button;\r\n }\r\n\r\n button::-moz-focus-inner,\r\n [type=\"button\"]::-moz-focus-inner,\r\n [type=\"reset\"]::-moz-focus-inner,\r\n [type=\"submit\"]::-moz-focus-inner {\r\n padding: 0;\r\n border-style: none;\r\n }\r\n\r\n input[type=\"radio\"],\r\n input[type=\"checkbox\"] {\r\n box-sizing: border-box;\r\n padding: 0;\r\n }\r\n\r\n input[type=\"date\"],\r\n input[type=\"time\"],\r\n input[type=\"datetime-local\"],\r\n input[type=\"month\"] {\r\n -webkit-appearance: listbox;\r\n }\r\n\r\n textarea {\r\n overflow: auto;\r\n resize: vertical;\r\n }\r\n\r\n fieldset {\r\n min-width: 0;\r\n padding: 0;\r\n margin: 0;\r\n border: 0;\r\n }\r\n\r\n legend {\r\n display: block;\r\n width: 100%;\r\n max-width: 100%;\r\n padding: 0;\r\n margin-bottom: 0.5rem;\r\n font-size: 1.5rem;\r\n line-height: inherit;\r\n color: inherit;\r\n white-space: normal;\r\n }\r\n\r\n progress {\r\n vertical-align: baseline;\r\n }\r\n\r\n [type=\"number\"]::-webkit-inner-spin-button,\r\n [type=\"number\"]::-webkit-outer-spin-button {\r\n height: auto;\r\n }\r\n\r\n [type=\"search\"] {\r\n outline-offset: -2px;\r\n -webkit-appearance: none;\r\n }\r\n\r\n [type=\"search\"]::-webkit-search-cancel-button,\r\n [type=\"search\"]::-webkit-search-decoration {\r\n -webkit-appearance: none;\r\n }\r\n\r\n ::-webkit-file-upload-button {\r\n font: inherit;\r\n -webkit-appearance: button;\r\n }\r\n\r\n output {\r\n display: inline-block;\r\n }\r\n\r\n summary {\r\n display: list-item;\r\n cursor: pointer;\r\n }\r\n\r\n template {\r\n display: none;\r\n }\r\n\r\n [hidden] {\r\n display: none !important;\r\n }\r\n\r\n h1,\r\n h2,\r\n h3,\r\n h4,\r\n h5,\r\n h6,\r\n .h1,\r\n .h2,\r\n .h3,\r\n .h4,\r\n .h5,\r\n .h6 {\r\n margin-bottom: 0.5rem;\r\n font-family: inherit;\r\n font-weight: 600;\r\n line-height: 1.5;\r\n color: ${colors.neutrals.n800};\r\n }\r\n\r\n h1,\r\n .h1 {\r\n font-size: 1.625rem;\r\n }\r\n\r\n h2,\r\n .h2 {\r\n font-size: 1.25rem;\r\n }\r\n\r\n h3,\r\n .h3 {\r\n font-size: 1.0625rem;\r\n }\r\n\r\n h4,\r\n .h4 {\r\n font-size: 0.9375rem;\r\n }\r\n\r\n h5,\r\n .h5 {\r\n font-size: 0.8125rem;\r\n }\r\n\r\n h6,\r\n .h6 {\r\n font-size: 0.625rem;\r\n }\r\n\r\n .lead {\r\n font-size: 1.25rem;\r\n font-weight: 300;\r\n }\r\n\r\n .display-1 {\r\n font-size: 3.3rem;\r\n font-weight: 600;\r\n line-height: 1.5;\r\n }\r\n\r\n .display-2 {\r\n font-size: 2.75rem;\r\n font-weight: 600;\r\n line-height: 1.5;\r\n }\r\n\r\n .display-3 {\r\n font-size: 2.1875rem;\r\n font-weight: 600;\r\n line-height: 1.5;\r\n }\r\n\r\n .display-4 {\r\n font-size: 1.6275rem;\r\n font-weight: 600;\r\n line-height: 1.5;\r\n }\r\n\r\n hr {\r\n margin-top: 2rem;\r\n margin-bottom: 2rem;\r\n border: 0;\r\n border-top: 1px solid rgba(0, 0, 0, 0.1);\r\n }\r\n\r\n small,\r\n .small {\r\n font-size: 80%;\r\n font-weight: 400;\r\n }\r\n\r\n mark,\r\n .mark {\r\n padding: 0.2em;\r\n background-color: #fcf8e3;\r\n }\r\n\r\n .list-unstyled {\r\n padding-left: 0;\r\n list-style: none;\r\n }\r\n\r\n .list-inline {\r\n padding-left: 0;\r\n list-style: none;\r\n }\r\n\r\n .list-inline-item {\r\n display: inline-block;\r\n }\r\n\r\n .list-inline-item:not(:last-child) {\r\n margin-right: 0.5rem;\r\n }\r\n\r\n .initialism {\r\n font-size: 90%;\r\n text-transform: uppercase;\r\n }\r\n\r\n .blockquote {\r\n margin-bottom: 1rem;\r\n font-size: 1.25rem;\r\n }\r\n\r\n .blockquote-footer {\r\n display: block;\r\n font-size: 80%;\r\n color: ${colors.neutrals.n600};\r\n }\r\n\r\n .blockquote-footer::before {\r\n content: \"\\\\2014 \\\\00A0\";\r\n }\r\n\r\n .img-fluid {\r\n max-width: 100%;\r\n height: auto;\r\n }\r\n\r\n .img-thumbnail {\r\n padding: 0.25rem;\r\n background-color: ${colors.neutrals.background};\r\n border: 1px solid #dee2e6;\r\n border-radius: 0.375rem;\r\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\r\n max-width: 100%;\r\n height: auto;\r\n }\r\n\r\n .figure {\r\n display: inline-block;\r\n }\r\n\r\n .figure-img {\r\n margin-bottom: 0.5rem;\r\n line-height: 1;\r\n }\r\n\r\n .figure-caption {\r\n font-size: 90%;\r\n color: ${colors.neutrals.n600};\r\n }\r\n\r\n code {\r\n font-size: 87.5%;\r\n color: ${colors.hues.pink};\r\n word-break: break-word;\r\n }\r\n\r\n a > code {\r\n color: inherit;\r\n }\r\n\r\n kbd {\r\n padding: 0.2rem 0.4rem;\r\n font-size: 87.5%;\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.n900};\r\n border-radius: 0.25rem;\r\n box-shadow: inset 0 -0.1rem 0 rgba(0, 0, 0, 0.25);\r\n }\r\n\r\n kbd kbd {\r\n padding: 0;\r\n font-size: 100%;\r\n font-weight: 600;\r\n box-shadow: none;\r\n }\r\n\r\n pre {\r\n display: block;\r\n font-size: 87.5%;\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n pre code {\r\n font-size: inherit;\r\n color: inherit;\r\n word-break: normal;\r\n }\r\n\r\n .pre-scrollable {\r\n max-height: 340px;\r\n overflow-y: scroll;\r\n }\r\n\r\n .container {\r\n width: 100%;\r\n padding-right: 15px;\r\n padding-left: 15px;\r\n margin-right: auto;\r\n margin-left: auto;\r\n }\r\n\r\n @media (min-width: 576px) {\r\n .container {\r\n max-width: 540px;\r\n }\r\n }\r\n\r\n @media (min-width: 768px) {\r\n .container {\r\n max-width: 720px;\r\n }\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .container {\r\n max-width: 960px;\r\n }\r\n }\r\n\r\n @media (min-width: 1200px) {\r\n .container {\r\n max-width: 1140px;\r\n }\r\n }\r\n\r\n .container-fluid {\r\n width: 100%;\r\n padding-right: 15px;\r\n padding-left: 15px;\r\n margin-right: auto;\r\n margin-left: auto;\r\n }\r\n\r\n .form-control {\r\n height: calc(2.75rem + 2px);\r\n padding: 0.625rem 0.75rem;\r\n border-radius: 0.375rem;\r\n box-shadow: none;\r\n transition: all 0.2s cubic-bezier(0.68, -0.55, 0.265, 1.55);\r\n }\r\n\r\n @media screen and (prefers-reduced-motion: reduce) {\r\n .form-control {\r\n transition: none;\r\n }\r\n }\r\n\r\n .form-control::-ms-expand {\r\n background-color: ${colors.transparent};\r\n border: 0;\r\n }\r\n\r\n .form-control:focus {\r\n box-shadow: none;\r\n }\r\n\r\n .col-form-label {\r\n padding-top: calc(0.625rem + 1px);\r\n padding-bottom: calc(0.625rem + 1px);\r\n }\r\n\r\n .col-form-label-lg {\r\n padding-top: calc(0.875rem + 1px);\r\n padding-bottom: calc(0.875rem + 1px);\r\n }\r\n\r\n .col-form-label-sm {\r\n padding-top: calc(0.25rem + 1px);\r\n padding-bottom: calc(0.25rem + 1px);\r\n }\r\n\r\n .form-control-plaintext {\r\n padding-top: 0.625rem;\r\n padding-bottom: 0.625rem;\r\n }\r\n\r\n .form-control-plaintext.form-control-sm,\r\n .form-control-plaintext.form-control-lg {\r\n padding-right: 0;\r\n padding-left: 0;\r\n }\r\n\r\n .form-control-sm {\r\n height: calc(1.8125rem + 2px);\r\n border-radius: 0.25rem;\r\n }\r\n\r\n .form-control-lg {\r\n height: calc(3.625rem + 2px);\r\n padding: 0.875rem 1rem;\r\n border-radius: 0.4375rem;\r\n }\r\n\r\n .form-text {\r\n display: block;\r\n margin-top: 0.25rem;\r\n }\r\n\r\n .form-row {\r\n display: flex;\r\n flex-wrap: wrap;\r\n margin-right: -5px;\r\n margin-left: -5px;\r\n }\r\n\r\n .form-row > .col,\r\n .form-row > [class*=\"col-\"] {\r\n padding-right: 5px;\r\n padding-left: 5px;\r\n }\r\n\r\n .form-check {\r\n position: relative;\r\n display: block;\r\n padding-left: 1.25rem;\r\n }\r\n\r\n .form-check-input {\r\n position: absolute;\r\n margin-top: 0.3rem;\r\n margin-left: -1.25rem;\r\n }\r\n\r\n .form-check-input:disabled ~ .form-check-label {\r\n color: ${colors.neutrals.n600};\r\n }\r\n\r\n .form-check-label {\r\n margin-bottom: 0;\r\n }\r\n\r\n .form-check-inline {\r\n display: inline-flex;\r\n align-items: center;\r\n padding-left: 0;\r\n margin-right: 0.75rem;\r\n }\r\n\r\n .form-check-inline .form-check-input {\r\n position: static;\r\n margin-top: 0;\r\n margin-right: 0.3125rem;\r\n margin-left: 0;\r\n }\r\n\r\n .valid-feedback {\r\n display: none;\r\n width: 100%;\r\n margin-top: 0.25rem;\r\n font-size: 80%;\r\n color: #2dce89;\r\n }\r\n\r\n .valid-tooltip {\r\n position: absolute;\r\n top: 100%;\r\n z-index: 5;\r\n display: none;\r\n max-width: 100%;\r\n padding: 0.5rem;\r\n margin-top: 0.1rem;\r\n font-size: 0.875rem;\r\n line-height: 1;\r\n color: ${colors.neutrals.min};\r\n background-color: rgba(45, 206, 137, 0.8);\r\n border-radius: 0.2rem;\r\n }\r\n\r\n .was-validated .form-control:valid,\r\n .form-control.is-valid,\r\n .was-validated .custom-select:valid,\r\n .custom-select.is-valid {\r\n border-color: #2dce89;\r\n }\r\n\r\n .was-validated .form-control:valid:focus,\r\n .form-control.is-valid:focus,\r\n .was-validated .custom-select:valid:focus,\r\n .custom-select.is-valid:focus {\r\n border-color: #2dce89;\r\n }\r\n\r\n .was-validated .form-control:valid ~ .valid-feedback,\r\n .was-validated .form-control:valid ~ .valid-tooltip,\r\n .form-control.is-valid ~ .valid-feedback,\r\n .form-control.is-valid ~ .valid-tooltip,\r\n .was-validated .custom-select:valid ~ .valid-feedback,\r\n .was-validated .custom-select:valid ~ .valid-tooltip,\r\n .custom-select.is-valid ~ .valid-feedback,\r\n .custom-select.is-valid ~ .valid-tooltip {\r\n display: block;\r\n }\r\n\r\n .was-validated .form-check-input:valid ~ .form-check-label,\r\n .form-check-input.is-valid ~ .form-check-label {\r\n color: #2dce89;\r\n }\r\n\r\n .was-validated .form-check-input:valid ~ .valid-feedback,\r\n .was-validated .form-check-input:valid ~ .valid-tooltip,\r\n .form-check-input.is-valid ~ .valid-feedback,\r\n .form-check-input.is-valid ~ .valid-tooltip {\r\n display: block;\r\n }\r\n\r\n .was-validated .custom-control-input:valid ~ .custom-control-label,\r\n .custom-control-input.is-valid ~ .custom-control-label {\r\n color: #2dce89;\r\n }\r\n\r\n .was-validated .custom-control-input:valid ~ .custom-control-label::before,\r\n .custom-control-input.is-valid ~ .custom-control-label::before {\r\n background-color: #93e7c3;\r\n border-color: #93e7c3;\r\n }\r\n\r\n .was-validated .custom-control-input:valid ~ .valid-feedback,\r\n .was-validated .custom-control-input:valid ~ .valid-tooltip,\r\n .custom-control-input.is-valid ~ .valid-feedback,\r\n .custom-control-input.is-valid ~ .valid-tooltip {\r\n display: block;\r\n }\r\n\r\n .was-validated\r\n .custom-control-input:valid:checked\r\n ~ .custom-control-label::before,\r\n .custom-control-input.is-valid:checked ~ .custom-control-label::before {\r\n background-color: #54daa1;\r\n border-color: #93e7c3;\r\n }\r\n\r\n .was-validated\r\n .custom-control-input:valid:focus\r\n ~ .custom-control-label::before,\r\n .custom-control-input.is-valid:focus ~ .custom-control-label::before {\r\n box-shadow: 0 0 0 1px ${colors.neutrals.background},\r\n 0 0 0 0 rgba(45, 206, 137, 0.25);\r\n }\r\n\r\n .was-validated .custom-file-input:valid ~ .custom-file-label,\r\n .custom-file-input.is-valid ~ .custom-file-label {\r\n border-color: #2dce89;\r\n }\r\n\r\n .was-validated .custom-file-input:valid ~ .custom-file-label::before,\r\n .custom-file-input.is-valid ~ .custom-file-label::before {\r\n border-color: inherit;\r\n }\r\n\r\n .was-validated .custom-file-input:valid ~ .valid-feedback,\r\n .was-validated .custom-file-input:valid ~ .valid-tooltip,\r\n .custom-file-input.is-valid ~ .valid-feedback,\r\n .custom-file-input.is-valid ~ .valid-tooltip {\r\n display: block;\r\n }\r\n\r\n .was-validated .custom-file-input:valid:focus ~ .custom-file-label,\r\n .custom-file-input.is-valid:focus ~ .custom-file-label {\r\n box-shadow: 0 0 0 0 rgba(45, 206, 137, 0.25);\r\n }\r\n\r\n .invalid-feedback {\r\n display: none;\r\n width: 100%;\r\n margin-top: 0.25rem;\r\n font-size: 80%;\r\n color: ${colors.bootstrap.warning};\r\n }\r\n\r\n .invalid-tooltip {\r\n position: absolute;\r\n top: 100%;\r\n z-index: 5;\r\n display: none;\r\n max-width: 100%;\r\n padding: 0.5rem;\r\n margin-top: 0.1rem;\r\n font-size: 0.875rem;\r\n line-height: 1;\r\n color: ${colors.neutrals.min};\r\n background-color: rgba(251, 99, 64, 0.8);\r\n border-radius: 0.2rem;\r\n }\r\n\r\n .was-validated .form-control:invalid,\r\n .form-control.is-invalid,\r\n .was-validated .custom-select:invalid,\r\n .custom-select.is-invalid {\r\n border-color: ${colors.bootstrap.warning};\r\n }\r\n\r\n .was-validated .form-control:invalid:focus,\r\n .form-control.is-invalid:focus,\r\n .was-validated .custom-select:invalid:focus,\r\n .custom-select.is-invalid:focus {\r\n border-color: ${colors.bootstrap.warning};\r\n }\r\n\r\n .was-validated .form-control:invalid ~ .invalid-feedback,\r\n .was-validated .form-control:invalid ~ .invalid-tooltip,\r\n .form-control.is-invalid ~ .invalid-feedback,\r\n .form-control.is-invalid ~ .invalid-tooltip,\r\n .was-validated .custom-select:invalid ~ .invalid-feedback,\r\n .was-validated .custom-select:invalid ~ .invalid-tooltip,\r\n .custom-select.is-invalid ~ .invalid-feedback,\r\n .custom-select.is-invalid ~ .invalid-tooltip {\r\n display: block;\r\n }\r\n\r\n .was-validated .form-check-input:invalid ~ .form-check-label,\r\n .form-check-input.is-invalid ~ .form-check-label {\r\n color: ${colors.bootstrap.warning};\r\n }\r\n\r\n .was-validated .form-check-input:invalid ~ .invalid-feedback,\r\n .was-validated .form-check-input:invalid ~ .invalid-tooltip,\r\n .form-check-input.is-invalid ~ .invalid-feedback,\r\n .form-check-input.is-invalid ~ .invalid-tooltip {\r\n display: block;\r\n }\r\n\r\n .was-validated .custom-control-input:invalid ~ .custom-control-label,\r\n .custom-control-input.is-invalid ~ .custom-control-label {\r\n color: ${colors.bootstrap.warning};\r\n }\r\n\r\n .was-validated\r\n .custom-control-input:invalid\r\n ~ .custom-control-label::before,\r\n .custom-control-input.is-invalid ~ .custom-control-label::before {\r\n background-color: #fec9bd;\r\n border-color: #fec9bd;\r\n }\r\n\r\n .was-validated .custom-control-input:invalid ~ .invalid-feedback,\r\n .was-validated .custom-control-input:invalid ~ .invalid-tooltip,\r\n .custom-control-input.is-invalid ~ .invalid-feedback,\r\n .custom-control-input.is-invalid ~ .invalid-tooltip {\r\n display: block;\r\n }\r\n\r\n .was-validated\r\n .custom-control-input:invalid:checked\r\n ~ .custom-control-label::before,\r\n .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\r\n background-color: #fc8c72;\r\n border-color: #fec9bd;\r\n }\r\n\r\n .was-validated\r\n .custom-control-input:invalid:focus\r\n ~ .custom-control-label::before,\r\n .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\r\n box-shadow: 0 0 0 1px ${colors.neutrals.background},\r\n 0 0 0 0 rgba(251, 99, 64, 0.25);\r\n }\r\n\r\n .was-validated .custom-file-input:invalid ~ .custom-file-label,\r\n .custom-file-input.is-invalid ~ .custom-file-label {\r\n border-color: ${colors.bootstrap.warning};\r\n }\r\n\r\n .was-validated .custom-file-input:invalid ~ .custom-file-label::before,\r\n .custom-file-input.is-invalid ~ .custom-file-label::before {\r\n border-color: inherit;\r\n }\r\n\r\n .was-validated .custom-file-input:invalid ~ .invalid-feedback,\r\n .was-validated .custom-file-input:invalid ~ .invalid-tooltip,\r\n .custom-file-input.is-invalid ~ .invalid-feedback,\r\n .custom-file-input.is-invalid ~ .invalid-tooltip {\r\n display: block;\r\n }\r\n\r\n .was-validated .custom-file-input:invalid:focus ~ .custom-file-label,\r\n .custom-file-input.is-invalid:focus ~ .custom-file-label {\r\n box-shadow: 0 0 0 0 rgba(251, 99, 64, 0.25);\r\n }\r\n\r\n .form-inline {\r\n display: flex;\r\n flex-flow: row wrap;\r\n align-items: center;\r\n }\r\n\r\n .form-inline .form-check {\r\n width: 100%;\r\n }\r\n\r\n @media (min-width: 576px) {\r\n .form-inline label {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-bottom: 0;\r\n }\r\n\r\n .form-inline .form-group {\r\n display: flex;\r\n flex: 0 0 auto;\r\n flex-flow: row wrap;\r\n align-items: center;\r\n margin-bottom: 0;\r\n }\r\n\r\n .form-inline .form-control {\r\n display: inline-block;\r\n width: auto;\r\n vertical-align: middle;\r\n }\r\n\r\n .form-inline .form-control-plaintext {\r\n display: inline-block;\r\n }\r\n\r\n .form-inline .input-group,\r\n .form-inline .custom-select {\r\n width: auto;\r\n }\r\n\r\n .form-inline .form-check {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: auto;\r\n padding-left: 0;\r\n }\r\n\r\n .form-inline .form-check-input {\r\n position: relative;\r\n margin-top: 0;\r\n margin-right: 0.25rem;\r\n margin-left: 0;\r\n }\r\n\r\n .form-inline .custom-control {\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n .form-inline .custom-control-label {\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n .btn {\r\n font-weight: 600;\r\n white-space: nowrap;\r\n user-select: none;\r\n padding: 0.625rem 1.25rem;\r\n border-radius: 0.375rem;\r\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out,\r\n border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n }\r\n\r\n @media screen and (prefers-reduced-motion: reduce) {\r\n .btn {\r\n transition: none;\r\n }\r\n }\r\n\r\n .btn:hover,\r\n .btn:focus {\r\n text-decoration: none;\r\n }\r\n\r\n .btn:focus,\r\n .btn.focus {\r\n outline: 0;\r\n box-shadow: 0 7px 14px rgba(50, 50, 93, 0.1),\r\n 0 3px 6px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .btn.disabled,\r\n .btn:disabled {\r\n opacity: 0.65;\r\n box-shadow: none;\r\n }\r\n\r\n .btn:not(:disabled):not(.disabled):active,\r\n .btn:not(:disabled):not(.disabled).active {\r\n box-shadow: none;\r\n }\r\n\r\n .btn:not(:disabled):not(.disabled):active:focus,\r\n .btn:not(:disabled):not(.disabled).active:focus {\r\n box-shadow: 0 7px 14px rgba(50, 50, 93, 0.1),\r\n 0 3px 6px rgba(0, 0, 0, 0.08), none;\r\n }\r\n\r\n a.btn.disabled,\r\n fieldset:disabled a.btn {\r\n pointer-events: none;\r\n }\r\n\r\n .btn-light {\r\n color: ${colors.neutrals.min};\r\n background-color: #adb5bd;\r\n border-color: #adb5bd;\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .btn-light:not(:disabled):hover {\r\n color: ${colors.neutrals.min};\r\n background-color: #adb5bd;\r\n border-color: #adb5bd;\r\n }\r\n\r\n .btn-light:focus,\r\n .btn-light.focus {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 0 rgba(173, 181, 189, 0.5);\r\n }\r\n\r\n .btn-light.disabled,\r\n .btn-light:disabled {\r\n color: ${colors.neutrals.n200};\r\n background-color: #adb5bd;\r\n border-color: #adb5bd;\r\n }\r\n\r\n .btn-light:not(:disabled):not(.disabled):active,\r\n .btn-light:not(:disabled):not(.disabled).active,\r\n .show > .btn-light.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: #919ca6;\r\n border-color: #adb5bd;\r\n }\r\n\r\n .btn-light:not(:disabled):not(.disabled):active:focus,\r\n .btn-light:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-light.dropdown-toggle:focus {\r\n box-shadow: none, 0 0 0 0 rgba(173, 181, 189, 0.5);\r\n }\r\n\r\n .btn-dark {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.n900};\r\n border-color: ${colors.neutrals.n900};\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .btn-dark:not(:disabled):hover {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.n900};\r\n border-color: ${colors.neutrals.n900};\r\n }\r\n\r\n .btn-dark:focus,\r\n .btn-dark.focus {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 0 rgba(33, 37, 41, 0.5);\r\n }\r\n\r\n .btn-dark.disabled,\r\n .btn-dark:disabled {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.n900};\r\n border-color: ${colors.neutrals.n900};\r\n }\r\n\r\n .btn-dark:not(:disabled):not(.disabled):active,\r\n .btn-dark:not(:disabled):not(.disabled).active,\r\n .show > .btn-dark.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: #0a0c0d;\r\n border-color: ${colors.neutrals.n900};\r\n }\r\n\r\n .btn-dark:not(:disabled):not(.disabled):active:focus,\r\n .btn-dark:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-dark.dropdown-toggle:focus {\r\n box-shadow: none, 0 0 0 0 rgba(33, 37, 41, 0.5);\r\n }\r\n\r\n .btn-white {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.min};\r\n border-color: ${colors.neutrals.min};\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .btn-white:not(:disabled):hover {\r\n color: ${colors.neutrals.n900};\r\n background-color: white;\r\n border-color: white;\r\n }\r\n\r\n .btn-white:focus,\r\n .btn-white.focus {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 0 rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n .btn-white.disabled,\r\n .btn-white:disabled {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.min};\r\n border-color: ${colors.neutrals.min};\r\n }\r\n\r\n .btn-white:not(:disabled):not(.disabled):active,\r\n .btn-white:not(:disabled):not(.disabled).active,\r\n .show > .btn-white.dropdown-toggle {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.n400};\r\n border-color: white;\r\n }\r\n\r\n .btn-white:not(:disabled):not(.disabled):active:focus,\r\n .btn-white:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-white.dropdown-toggle:focus {\r\n box-shadow: none, 0 0 0 0 rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n .btn-neutral {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.min};\r\n border-color: ${colors.neutrals.min};\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .btn-neutral:not(:disabled):hover {\r\n color: ${colors.neutrals.n900};\r\n background-color: white;\r\n border-color: white;\r\n }\r\n\r\n .btn-neutral:focus,\r\n .btn-neutral.focus {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 0 rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n .btn-neutral.disabled,\r\n .btn-neutral:disabled {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.min};\r\n border-color: ${colors.neutrals.min};\r\n }\r\n\r\n .btn-neutral:not(:disabled):not(.disabled):active,\r\n .btn-neutral:not(:disabled):not(.disabled).active,\r\n .show > .btn-neutral.dropdown-toggle {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.n400};\r\n border-color: white;\r\n }\r\n\r\n .btn-neutral:not(:disabled):not(.disabled):active:focus,\r\n .btn-neutral:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-neutral.dropdown-toggle:focus {\r\n box-shadow: none, 0 0 0 0 rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n .btn-darker {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.max};\r\n border-color: ${colors.neutrals.max};\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .btn-darker:not(:disabled):hover {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.max};\r\n border-color: ${colors.neutrals.max};\r\n }\r\n\r\n .btn-darker:focus,\r\n .btn-darker.focus {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 0 rgba(0, 0, 0, 0.5);\r\n }\r\n\r\n .btn-darker.disabled,\r\n .btn-darker:disabled {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.max};\r\n border-color: ${colors.neutrals.max};\r\n }\r\n\r\n .btn-darker:not(:disabled):not(.disabled):active,\r\n .btn-darker:not(:disabled):not(.disabled).active,\r\n .show > .btn-darker.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.max};\r\n border-color: ${colors.neutrals.max};\r\n }\r\n\r\n .btn-darker:not(:disabled):not(.disabled):active:focus,\r\n .btn-darker:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-darker.dropdown-toggle:focus {\r\n box-shadow: none, 0 0 0 0 rgba(0, 0, 0, 0.5);\r\n }\r\n\r\n .btn-outline-light {\r\n color: #adb5bd;\r\n background-color: ${colors.transparent};\r\n background-image: none;\r\n border-color: #adb5bd;\r\n }\r\n\r\n .btn-outline-light:not(:disabled):hover {\r\n color: ${colors.neutrals.min};\r\n background-color: #adb5bd;\r\n border-color: #adb5bd;\r\n }\r\n\r\n .btn-outline-light:focus,\r\n .btn-outline-light.focus {\r\n box-shadow: 0 0 0 0 rgba(173, 181, 189, 0.5);\r\n }\r\n\r\n .btn-outline-light.disabled,\r\n .btn-outline-light:disabled {\r\n color: #adb5bd;\r\n background-color: ${colors.transparent};\r\n }\r\n\r\n .btn-outline-light:not(:disabled):not(.disabled):active,\r\n .btn-outline-light:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-light.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: #adb5bd;\r\n border-color: #adb5bd;\r\n }\r\n\r\n .btn-outline-light:not(:disabled):not(.disabled):active:focus,\r\n .btn-outline-light:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-light.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0 rgba(173, 181, 189, 0.5);\r\n }\r\n\r\n .btn-outline-dark {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.transparent};\r\n background-image: none;\r\n border-color: ${colors.neutrals.n900};\r\n }\r\n\r\n .btn-outline-dark:not(:disabled):hover {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.n900};\r\n border-color: ${colors.neutrals.n900};\r\n }\r\n\r\n .btn-outline-dark:focus,\r\n .btn-outline-dark.focus {\r\n box-shadow: 0 0 0 0 rgba(33, 37, 41, 0.5);\r\n }\r\n\r\n .btn-outline-dark.disabled,\r\n .btn-outline-dark:disabled {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.transparent};\r\n }\r\n\r\n .btn-outline-dark:not(:disabled):not(.disabled):active,\r\n .btn-outline-dark:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-dark.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.n900};\r\n border-color: ${colors.neutrals.n900};\r\n }\r\n\r\n .btn-outline-dark:not(:disabled):not(.disabled):active:focus,\r\n .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-dark.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0 rgba(33, 37, 41, 0.5);\r\n }\r\n\r\n .btn-outline-white {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.transparent};\r\n background-image: none;\r\n border-color: ${colors.neutrals.min};\r\n }\r\n\r\n .btn-outline-white:hover {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.min};\r\n border-color: ${colors.neutrals.min};\r\n }\r\n\r\n .btn-outline-white:focus,\r\n .btn-outline-white.focus {\r\n box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n .btn-outline-white.disabled,\r\n .btn-outline-white:disabled {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.transparent};\r\n }\r\n\r\n .btn-outline-white:not(:disabled):not(.disabled):active,\r\n .btn-outline-white:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-white.dropdown-toggle {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.min};\r\n border-color: ${colors.neutrals.min};\r\n }\r\n\r\n .btn-outline-white:not(:disabled):not(.disabled):active:focus,\r\n .btn-outline-white:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-white.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n .btn-outline-neutral {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.transparent};\r\n background-image: none;\r\n border-color: ${colors.neutrals.min};\r\n }\r\n\r\n .btn-outline-neutral:hover {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.min};\r\n border-color: ${colors.neutrals.min};\r\n }\r\n\r\n .btn-outline-neutral:focus,\r\n .btn-outline-neutral.focus {\r\n box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n .btn-outline-neutral.disabled,\r\n .btn-outline-neutral:disabled {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.transparent};\r\n }\r\n\r\n .btn-outline-neutral:not(:disabled):not(.disabled):active,\r\n .btn-outline-neutral:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-neutral.dropdown-toggle {\r\n color: ${colors.neutrals.n900};\r\n background-color: ${colors.neutrals.min};\r\n border-color: ${colors.neutrals.min};\r\n }\r\n\r\n .btn-outline-neutral:not(:disabled):not(.disabled):active:focus,\r\n .btn-outline-neutral:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-neutral.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n .btn-outline-darker {\r\n color: ${colors.neutrals.max};\r\n background-color: ${colors.transparent};\r\n background-image: none;\r\n border-color: ${colors.neutrals.max};\r\n }\r\n\r\n .btn-outline-darker:hover {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.max};\r\n border-color: ${colors.neutrals.max};\r\n }\r\n\r\n .btn-outline-darker:focus,\r\n .btn-outline-darker.focus {\r\n box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.5);\r\n }\r\n\r\n .btn-outline-darker.disabled,\r\n .btn-outline-darker:disabled {\r\n color: ${colors.neutrals.max};\r\n background-color: ${colors.transparent};\r\n }\r\n\r\n .btn-outline-darker:not(:disabled):not(.disabled):active,\r\n .btn-outline-darker:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-darker.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.max};\r\n border-color: ${colors.neutrals.max};\r\n }\r\n\r\n .btn-outline-darker:not(:disabled):not(.disabled):active:focus,\r\n .btn-outline-darker:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-darker.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.5);\r\n }\r\n\r\n .btn-link {\r\n font-weight: 400;\r\n color: ${colors.bootstrap.primary};\r\n background-color: ${colors.transparent};\r\n }\r\n\r\n .btn-link:hover {\r\n color: #233dd2;\r\n text-decoration: none;\r\n background-color: ${colors.transparent};\r\n border-color: ${colors.transparent};\r\n }\r\n\r\n .btn-link:focus,\r\n .btn-link.focus {\r\n text-decoration: none;\r\n border-color: ${colors.transparent};\r\n box-shadow: none;\r\n }\r\n\r\n .btn-link:disabled,\r\n .btn-link.disabled {\r\n color: ${colors.neutrals.n600};\r\n pointer-events: none;\r\n }\r\n\r\n .btn-lg,\r\n .btn-group-lg > .btn {\r\n padding: 0.875rem 1rem;\r\n font-size: 1.25rem;\r\n line-height: 1.5;\r\n border-radius: 0.4375rem;\r\n }\r\n\r\n .btn-sm,\r\n .btn-group-sm > .btn {\r\n padding: 0.25rem 0.5rem;\r\n font-size: 0.875rem;\r\n line-height: 1.5;\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .btn-block {\r\n display: block;\r\n width: 100%;\r\n }\r\n\r\n .btn-block + .btn-block {\r\n margin-top: 0.5rem;\r\n }\r\n\r\n input[type=\"submit\"].btn-block,\r\n input[type=\"reset\"].btn-block,\r\n input[type=\"button\"].btn-block {\r\n width: 100%;\r\n }\r\n\r\n .fade {\r\n transition: opacity 0.15s linear;\r\n }\r\n\r\n @media screen and (prefers-reduced-motion: reduce) {\r\n .fade {\r\n transition: none;\r\n }\r\n }\r\n\r\n .fade:not(.show) {\r\n opacity: 0;\r\n }\r\n\r\n .collapse:not(.show) {\r\n display: none;\r\n }\r\n\r\n .collapsing {\r\n position: relative;\r\n height: 0;\r\n overflow: hidden;\r\n transition: height 0.35s ease;\r\n }\r\n\r\n @media screen and (prefers-reduced-motion: reduce) {\r\n .collapsing {\r\n transition: none;\r\n }\r\n }\r\n\r\n .dropup,\r\n .dropright,\r\n .dropdown,\r\n .dropleft {\r\n position: relative;\r\n }\r\n\r\n .dropdown-toggle::after {\r\n display: inline-block;\r\n width: 0;\r\n height: 0;\r\n margin-left: 0.255em;\r\n vertical-align: 0.255em;\r\n content: \"\";\r\n border-top: 0.3em solid;\r\n border-right: 0.3em solid ${colors.transparent};\r\n border-bottom: 0;\r\n border-left: 0.3em solid ${colors.transparent};\r\n }\r\n\r\n .dropdown-toggle:empty::after {\r\n margin-left: 0;\r\n }\r\n\r\n .dropdown-menu {\r\n position: absolute;\r\n top: 100%;\r\n left: 0;\r\n z-index: 1000;\r\n display: none;\r\n float: left;\r\n min-width: 10rem;\r\n padding: 0.5rem 0;\r\n margin: 0.125rem 0 0;\r\n font-size: 1rem;\r\n color: ${colors.neutrals.n700};\r\n text-align: left;\r\n list-style: none;\r\n background-color: ${colors.neutrals.min};\r\n background-clip: padding-box;\r\n border: 0 solid rgba(0, 0, 0, 0.15);\r\n border-radius: 0.4375rem;\r\n box-shadow: 0 50px 100px rgba(50, 50, 93, 0.1),\r\n 0 15px 35px rgba(50, 50, 93, 0.15), 0 5px 15px rgba(0, 0, 0, 0.1);\r\n }\r\n\r\n .dropdown-menu-right {\r\n right: 0;\r\n left: auto;\r\n }\r\n\r\n .dropup .dropdown-menu {\r\n top: auto;\r\n bottom: 100%;\r\n margin-top: 0;\r\n margin-bottom: 0.125rem;\r\n }\r\n\r\n .dropup .dropdown-toggle::after {\r\n display: inline-block;\r\n width: 0;\r\n height: 0;\r\n margin-left: 0.255em;\r\n vertical-align: 0.255em;\r\n content: \"\";\r\n border-top: 0;\r\n border-right: 0.3em solid ${colors.transparent};\r\n border-bottom: 0.3em solid;\r\n border-left: 0.3em solid ${colors.transparent};\r\n }\r\n\r\n .dropup .dropdown-toggle:empty::after {\r\n margin-left: 0;\r\n }\r\n\r\n .dropright .dropdown-menu {\r\n top: 0;\r\n right: auto;\r\n left: 100%;\r\n margin-top: 0;\r\n margin-left: 0.125rem;\r\n }\r\n\r\n .dropright .dropdown-toggle::after {\r\n display: inline-block;\r\n width: 0;\r\n height: 0;\r\n margin-left: 0.255em;\r\n vertical-align: 0.255em;\r\n content: \"\";\r\n border-top: 0.3em solid ${colors.transparent};\r\n border-right: 0;\r\n border-bottom: 0.3em solid ${colors.transparent};\r\n border-left: 0.3em solid;\r\n }\r\n\r\n .dropright .dropdown-toggle:empty::after {\r\n margin-left: 0;\r\n }\r\n\r\n .dropright .dropdown-toggle::after {\r\n vertical-align: 0;\r\n }\r\n\r\n .dropleft .dropdown-menu {\r\n top: 0;\r\n right: 100%;\r\n left: auto;\r\n margin-top: 0;\r\n margin-right: 0.125rem;\r\n }\r\n\r\n .dropleft .dropdown-toggle::after {\r\n display: inline-block;\r\n width: 0;\r\n height: 0;\r\n margin-left: 0.255em;\r\n vertical-align: 0.255em;\r\n content: \"\";\r\n }\r\n\r\n .dropleft .dropdown-toggle::after {\r\n display: none;\r\n }\r\n\r\n .dropleft .dropdown-toggle::before {\r\n display: inline-block;\r\n width: 0;\r\n height: 0;\r\n margin-right: 0.255em;\r\n vertical-align: 0.255em;\r\n content: \"\";\r\n border-top: 0.3em solid ${colors.transparent};\r\n border-right: 0.3em solid;\r\n border-bottom: 0.3em solid ${colors.transparent};\r\n }\r\n\r\n .dropleft .dropdown-toggle:empty::after {\r\n margin-left: 0;\r\n }\r\n\r\n .dropleft .dropdown-toggle::before {\r\n vertical-align: 0;\r\n }\r\n\r\n .dropdown-menu[x-placement^=\"top\"],\r\n .dropdown-menu[x-placement^=\"right\"],\r\n .dropdown-menu[x-placement^=\"bottom\"],\r\n .dropdown-menu[x-placement^=\"left\"] {\r\n right: auto;\r\n bottom: auto;\r\n }\r\n\r\n .btn-group,\r\n .btn-group-vertical {\r\n position: relative;\r\n display: inline-flex;\r\n vertical-align: middle;\r\n }\r\n\r\n .btn-group > .btn,\r\n .btn-group-vertical > .btn {\r\n position: relative;\r\n flex: 0 1 auto;\r\n }\r\n\r\n .btn-group > .btn:focus,\r\n .btn-group > .btn:active,\r\n .btn-group > .btn.active,\r\n .btn-group-vertical > .btn:focus,\r\n .btn-group-vertical > .btn:active,\r\n .btn-group-vertical > .btn.active {\r\n z-index: 1;\r\n }\r\n\r\n .btn-group .btn + .btn,\r\n .btn-group .btn + .btn-group,\r\n .btn-group .btn-group + .btn,\r\n .btn-group .btn-group + .btn-group,\r\n .btn-group-vertical .btn + .btn,\r\n .btn-group-vertical .btn + .btn-group,\r\n .btn-group-vertical .btn-group + .btn,\r\n .btn-group-vertical .btn-group + .btn-group {\r\n margin-left: -1px;\r\n }\r\n\r\n .btn-toolbar {\r\n display: flex;\r\n flex-wrap: wrap;\r\n justify-content: flex-start;\r\n }\r\n\r\n .btn-toolbar .input-group {\r\n width: auto;\r\n }\r\n\r\n .btn-group > .btn:first-of-type {\r\n margin-left: 0;\r\n }\r\n\r\n .btn-group > .btn:not(:last-child):not(.dropdown-toggle),\r\n .btn-group > .btn-group:not(:last-child) > .btn {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n }\r\n\r\n .btn-group > .btn:not(:first-of-type),\r\n .btn-group > .btn-group:not(:first-of-type) > .btn {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n\r\n .dropdown-toggle-split {\r\n padding-right: 0.9375rem;\r\n padding-left: 0.9375rem;\r\n }\r\n\r\n .dropdown-toggle-split::after,\r\n .dropup .dropdown-toggle-split::after,\r\n .dropright .dropdown-toggle-split::after {\r\n margin-left: 0;\r\n }\r\n\r\n .dropleft .dropdown-toggle-split::before {\r\n margin-right: 0;\r\n }\r\n\r\n .btn-sm + .dropdown-toggle-split,\r\n .btn-group-sm > .btn + .dropdown-toggle-split {\r\n padding-right: 0.375rem;\r\n padding-left: 0.375rem;\r\n }\r\n\r\n .btn-lg + .dropdown-toggle-split,\r\n .btn-group-lg > .btn + .dropdown-toggle-split {\r\n padding-right: 0.75rem;\r\n padding-left: 0.75rem;\r\n }\r\n\r\n .btn-group.show .dropdown-toggle {\r\n box-shadow: none;\r\n }\r\n\r\n .btn-group.show .dropdown-toggle.btn-link {\r\n box-shadow: none;\r\n }\r\n\r\n .btn-group-vertical {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: center;\r\n }\r\n\r\n .btn-group-vertical .btn,\r\n .btn-group-vertical .btn-group {\r\n width: 100%;\r\n }\r\n\r\n .btn-group-vertical > .btn + .btn,\r\n .btn-group-vertical > .btn + .btn-group,\r\n .btn-group-vertical > .btn-group + .btn,\r\n .btn-group-vertical > .btn-group + .btn-group {\r\n margin-top: -1px;\r\n margin-left: 0;\r\n }\r\n\r\n .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\r\n .btn-group-vertical > .btn-group:not(:last-child) > .btn {\r\n border-bottom-right-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n\r\n .btn-group-vertical > .btn:not(:first-of-type),\r\n .btn-group-vertical > .btn-group:not(:first-of-type) > .btn {\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n }\r\n\r\n .btn-group-toggle > .btn,\r\n .btn-group-toggle > .btn-group > .btn {\r\n margin-bottom: 0;\r\n }\r\n\r\n .btn-group-toggle > .btn input[type=\"radio\"],\r\n .btn-group-toggle > .btn input[type=\"checkbox\"],\r\n .btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\r\n .btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\r\n position: absolute;\r\n clip: rect(0, 0, 0, 0);\r\n pointer-events: none;\r\n }\r\n\r\n .input-group {\r\n position: relative;\r\n display: flex;\r\n flex-wrap: wrap;\r\n align-items: stretch;\r\n width: 100%;\r\n background-color: ${colors.neutrals.midground};\r\n }\r\n\r\n .input-group > .form-control,\r\n .input-group > .custom-select,\r\n .input-group > .custom-file {\r\n position: relative;\r\n flex: 1 1 auto;\r\n width: 1%;\r\n margin-bottom: 0;\r\n }\r\n\r\n .input-group > .form-control + .form-control,\r\n .input-group > .form-control + .custom-select,\r\n .input-group > .form-control + .custom-file,\r\n .input-group > .custom-select + .form-control,\r\n .input-group > .custom-select + .custom-select,\r\n .input-group > .custom-select + .custom-file,\r\n .input-group > .custom-file + .form-control,\r\n .input-group > .custom-file + .custom-select,\r\n .input-group > .custom-file + .custom-file {\r\n margin-left: -1px;\r\n }\r\n\r\n .input-group > .form-control:focus,\r\n .input-group > .custom-select:focus,\r\n .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\r\n z-index: 3;\r\n }\r\n\r\n .input-group > .custom-file .custom-file-input:focus {\r\n z-index: 4;\r\n }\r\n\r\n .input-group > .form-control:not(:last-child),\r\n .input-group > .custom-select:not(:last-child) {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n }\r\n\r\n .input-group > .form-control:not(:first-of-type),\r\n .input-group > .custom-select:not(:first-of-type) {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n\r\n .input-group > .custom-file {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .input-group > .custom-file:not(:last-child) .custom-file-label,\r\n .input-group > .custom-file:not(:last-child) .custom-file-label::after {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n }\r\n\r\n .input-group > .custom-file:not(:first-of-type) .custom-file-label {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n\r\n .input-group-prepend,\r\n .input-group-append {\r\n display: flex;\r\n }\r\n\r\n .input-group-prepend .btn,\r\n .input-group-append .btn {\r\n position: relative;\r\n z-index: 0;\r\n }\r\n\r\n .input-group-prepend .btn + .btn,\r\n .input-group-prepend .btn + .input-group-text,\r\n .input-group-prepend .input-group-text + .input-group-text,\r\n .input-group-prepend .input-group-text + .btn,\r\n .input-group-append .btn + .btn,\r\n .input-group-append .btn + .input-group-text,\r\n .input-group-append .input-group-text + .input-group-text,\r\n .input-group-append .input-group-text + .btn {\r\n margin-left: -1px;\r\n }\r\n\r\n .input-group-prepend {\r\n margin-right: -1px;\r\n }\r\n\r\n .input-group-append {\r\n margin-left: -1px;\r\n }\r\n\r\n .input-group-text {\r\n padding: 0.625rem 0.75rem;\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .input-group-text input[type=\"radio\"],\r\n .input-group-text input[type=\"checkbox\"] {\r\n margin-top: 0;\r\n }\r\n\r\n .input-group-lg > .form-control,\r\n .input-group-lg > .input-group-prepend > .input-group-text,\r\n .input-group-lg > .input-group-append > .input-group-text,\r\n .input-group-lg > .input-group-prepend > .btn,\r\n .input-group-lg > .input-group-append > .btn {\r\n height: calc(3.625rem + 2px);\r\n padding: 0.875rem 1rem;\r\n font-size: 1.25rem;\r\n line-height: 1.5;\r\n border-radius: 0.4375rem;\r\n }\r\n\r\n .input-group-sm > .form-control,\r\n .input-group-sm > .input-group-prepend > .input-group-text,\r\n .input-group-sm > .input-group-append > .input-group-text,\r\n .input-group-sm > .input-group-prepend > .btn,\r\n .input-group-sm > .input-group-append > .btn {\r\n height: calc(1.8125rem + 2px);\r\n padding: 0.25rem 0.5rem;\r\n font-size: 0.875rem;\r\n line-height: 1.5;\r\n border-radius: 0.25rem;\r\n }\r\n\r\n .input-group > .input-group-prepend > .btn,\r\n .input-group > .input-group-prepend > .input-group-text,\r\n .input-group > .input-group-append:not(:last-child) > .btn,\r\n .input-group > .input-group-append:not(:last-child) > .input-group-text,\r\n .input-group\r\n > .input-group-append:last-child\r\n > .btn:not(:last-child):not(.dropdown-toggle),\r\n .input-group\r\n > .input-group-append:last-child\r\n > .input-group-text:not(:last-child) {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n }\r\n\r\n .input-group > .input-group-append > .btn,\r\n .input-group > .input-group-append > .input-group-text,\r\n .input-group > .input-group-prepend:not(:first-of-type) > .btn,\r\n .input-group > .input-group-prepend:not(:first-of-type) > .input-group-text,\r\n .input-group\r\n > .input-group-prepend:first-of-type\r\n > .btn:not(:first-of-type),\r\n .input-group\r\n > .input-group-prepend:first-of-type\r\n > .input-group-text:not(:first-of-type) {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n\r\n .custom-control {\r\n position: relative;\r\n display: block;\r\n min-height: 1.5rem;\r\n padding-left: 1.75rem;\r\n }\r\n\r\n .custom-control-inline {\r\n display: inline-flex;\r\n margin-right: 1rem;\r\n }\r\n\r\n .custom-control-input {\r\n position: absolute;\r\n z-index: -1;\r\n opacity: 0;\r\n }\r\n\r\n .custom-control-input:checked ~ .custom-control-label::before {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.primary};\r\n box-shadow: none;\r\n }\r\n\r\n .custom-control-input:focus ~ .custom-control-label::before {\r\n box-shadow: none;\r\n }\r\n\r\n .custom-control-input:active ~ .custom-control-label::before {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.primary};\r\n box-shadow: none;\r\n }\r\n\r\n .custom-control-input:disabled ~ .custom-control-label {\r\n color: ${colors.neutrals.n600};\r\n }\r\n\r\n .custom-control-input:disabled ~ .custom-control-label::before {\r\n background-color: ${colors.neutrals.n200};\r\n }\r\n\r\n .custom-control-label {\r\n position: relative;\r\n margin-bottom: 0;\r\n }\r\n\r\n .custom-control-label::before {\r\n position: absolute;\r\n top: 0.125rem;\r\n left: -1.75rem;\r\n display: block;\r\n width: 1.25rem;\r\n height: 1.25rem;\r\n pointer-events: none;\r\n content: \"\";\r\n user-select: none;\r\n background-color: ${colors.neutrals.min};\r\n box-shadow: none;\r\n }\r\n\r\n .custom-control-label::after {\r\n position: absolute;\r\n top: 0.125rem;\r\n left: -1.75rem;\r\n display: block;\r\n width: 1.25rem;\r\n height: 1.25rem;\r\n content: \"\";\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n background-size: 50% 50%;\r\n }\r\n\r\n .custom-checkbox .custom-control-label::before {\r\n border-radius: 0.25rem;\r\n }\r\n\r\n .custom-checkbox\r\n .custom-control-input:checked\r\n ~ .custom-control-label::before {\r\n background-color: ${colors.bootstrap.primary};\r\n }\r\n\r\n .custom-checkbox\r\n .custom-control-input:checked\r\n ~ .custom-control-label::after {\r\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\r\n }\r\n\r\n .custom-checkbox\r\n .custom-control-input:indeterminate\r\n ~ .custom-control-label::before {\r\n background-color: ${colors.bootstrap.primary};\r\n box-shadow: none;\r\n }\r\n\r\n .custom-checkbox\r\n .custom-control-input:indeterminate\r\n ~ .custom-control-label::after {\r\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\");\r\n }\r\n\r\n .custom-checkbox\r\n .custom-control-input:disabled:checked\r\n ~ .custom-control-label::before {\r\n background-color: rgba(94, 114, 228, 0.5);\r\n }\r\n\r\n .custom-checkbox\r\n .custom-control-input:disabled:indeterminate\r\n ~ .custom-control-label::before {\r\n background-color: rgba(94, 114, 228, 0.5);\r\n }\r\n\r\n .custom-radio .custom-control-label::before {\r\n border-radius: 50%;\r\n }\r\n\r\n .custom-radio\r\n .custom-control-input:checked\r\n ~ .custom-control-label::before {\r\n background-color: ${colors.bootstrap.primary};\r\n }\r\n\r\n .custom-radio .custom-control-input:checked ~ .custom-control-label::after {\r\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");\r\n }\r\n\r\n .custom-radio\r\n .custom-control-input:disabled:checked\r\n ~ .custom-control-label::before {\r\n background-color: rgba(94, 114, 228, 0.5);\r\n }\r\n\r\n .custom-select {\r\n display: inline-block;\r\n width: 100%;\r\n height: calc(2.75rem + 2px);\r\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\r\n line-height: 1.5;\r\n color: ${colors.neutrals.n600};\r\n vertical-align: middle;\r\n background: ${colors.neutrals.min}\r\n url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%2332325d' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\")\r\n no-repeat right 0.75rem center;\r\n background-size: 8px 10px;\r\n border: 1px solid ${colors.neutrals.n500};\r\n border-radius: 0.375rem;\r\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);\r\n appearance: none;\r\n }\r\n\r\n .custom-select:focus {\r\n border-color: rgba(50, 151, 211, 0.25);\r\n outline: 0;\r\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075),\r\n 0 0 0 0 rgba(50, 151, 211, 0.5);\r\n }\r\n\r\n .custom-select:focus::-ms-value {\r\n color: ${colors.neutrals.n600};\r\n background-color: ${colors.neutrals.min};\r\n }\r\n\r\n .custom-select[multiple],\r\n .custom-select[size]:not([size=\"1\"]) {\r\n height: auto;\r\n padding-right: 0.75rem;\r\n background-image: none;\r\n }\r\n\r\n .custom-select:disabled {\r\n color: ${colors.neutrals.n600};\r\n background-color: ${colors.neutrals.n200};\r\n }\r\n\r\n .custom-select::-ms-expand {\r\n opacity: 0;\r\n }\r\n\r\n .custom-select-sm {\r\n height: calc(1.8125rem + 2px);\r\n padding-top: 0.375rem;\r\n padding-bottom: 0.375rem;\r\n font-size: 75%;\r\n }\r\n\r\n .custom-select-lg {\r\n height: calc(3.625rem + 2px);\r\n padding-top: 0.375rem;\r\n padding-bottom: 0.375rem;\r\n font-size: 125%;\r\n }\r\n\r\n .custom-file {\r\n position: relative;\r\n display: inline-block;\r\n width: 100%;\r\n height: calc(2.75rem + 2px);\r\n margin-bottom: 0;\r\n }\r\n\r\n .custom-file-input {\r\n position: relative;\r\n z-index: 2;\r\n width: 100%;\r\n height: calc(2.75rem + 2px);\r\n margin: 0;\r\n opacity: 0;\r\n }\r\n\r\n .custom-file-input:focus ~ .custom-file-label {\r\n border-color: rgba(50, 151, 211, 0.25);\r\n box-shadow: none;\r\n }\r\n\r\n .custom-file-input:focus ~ .custom-file-label::after {\r\n border-color: rgba(50, 151, 211, 0.25);\r\n }\r\n\r\n .custom-file-input:disabled ~ .custom-file-label {\r\n background-color: ${colors.neutrals.n200};\r\n }\r\n\r\n .custom-file-input:lang(en) ~ .custom-file-label::after {\r\n content: \"Browse\";\r\n }\r\n\r\n .custom-file-label {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n left: 0;\r\n z-index: 1;\r\n height: calc(2.75rem + 2px);\r\n padding: 0.625rem 0.75rem;\r\n line-height: 1.5;\r\n color: ${colors.neutrals.n600};\r\n background-color: ${colors.neutrals.min};\r\n border: 1px solid ${colors.neutrals.n500};\r\n border-radius: 0.375rem;\r\n box-shadow: none;\r\n }\r\n\r\n .custom-file-label::after {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 3;\r\n display: block;\r\n height: 2.75rem;\r\n padding: 0.625rem 0.75rem;\r\n line-height: 1.5;\r\n color: ${colors.neutrals.n600};\r\n content: \"Browse\";\r\n background-color: ${colors.neutrals.min};\r\n border-left: 1px solid ${colors.neutrals.n500};\r\n border-radius: 0 0.375rem 0.375rem 0;\r\n }\r\n\r\n .custom-range {\r\n width: 100%;\r\n padding-left: 0;\r\n background-color: ${colors.transparent};\r\n appearance: none;\r\n }\r\n\r\n .custom-range:focus {\r\n outline: none;\r\n }\r\n\r\n .custom-range:focus::-webkit-slider-thumb {\r\n box-shadow: 0 0 0 1px ${colors.neutrals.background}, none;\r\n }\r\n\r\n .custom-range:focus::-moz-range-thumb {\r\n box-shadow: 0 0 0 1px ${colors.neutrals.background}, none;\r\n }\r\n\r\n .custom-range:focus::-ms-thumb {\r\n box-shadow: 0 0 0 1px ${colors.neutrals.background}, none;\r\n }\r\n\r\n .custom-range::-moz-focus-outer {\r\n border: 0;\r\n }\r\n\r\n .custom-range::-webkit-slider-thumb {\r\n width: 1rem;\r\n height: 1rem;\r\n margin-top: -0.25rem;\r\n background-color: ${colors.bootstrap.primary};\r\n border: 0;\r\n border-radius: 1rem;\r\n box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\r\n transition: background-color 0.15s ease-in-out,\r\n border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n appearance: none;\r\n }\r\n\r\n @media screen and (prefers-reduced-motion: reduce) {\r\n .custom-range::-webkit-slider-thumb {\r\n transition: none;\r\n }\r\n }\r\n\r\n .custom-range::-webkit-slider-thumb:active {\r\n background-color: #f7f8fe;\r\n }\r\n\r\n .custom-range::-webkit-slider-runnable-track {\r\n width: 100%;\r\n height: 0.5rem;\r\n color: ${colors.transparent};\r\n cursor: pointer;\r\n background-color: #dee2e6;\r\n border-color: ${colors.transparent};\r\n border-radius: 1rem;\r\n box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\r\n }\r\n\r\n .custom-range::-moz-range-thumb {\r\n width: 1rem;\r\n height: 1rem;\r\n background-color: ${colors.bootstrap.primary};\r\n border: 0;\r\n border-radius: 1rem;\r\n box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\r\n transition: background-color 0.15s ease-in-out,\r\n border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n appearance: none;\r\n }\r\n\r\n @media screen and (prefers-reduced-motion: reduce) {\r\n .custom-range::-moz-range-thumb {\r\n transition: none;\r\n }\r\n }\r\n\r\n .custom-range::-moz-range-thumb:active {\r\n background-color: #f7f8fe;\r\n }\r\n\r\n .custom-range::-moz-range-track {\r\n width: 100%;\r\n height: 0.5rem;\r\n color: ${colors.transparent};\r\n cursor: pointer;\r\n background-color: #dee2e6;\r\n border-color: ${colors.transparent};\r\n border-radius: 1rem;\r\n box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\r\n }\r\n\r\n .custom-range::-ms-thumb {\r\n width: 1rem;\r\n height: 1rem;\r\n margin-top: 0;\r\n margin-right: 0;\r\n margin-left: 0;\r\n background-color: ${colors.bootstrap.primary};\r\n border: 0;\r\n border-radius: 1rem;\r\n box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\r\n transition: background-color 0.15s ease-in-out,\r\n border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n appearance: none;\r\n }\r\n\r\n @media screen and (prefers-reduced-motion: reduce) {\r\n .custom-range::-ms-thumb {\r\n transition: none;\r\n }\r\n }\r\n\r\n .custom-range::-ms-thumb:active {\r\n background-color: #f7f8fe;\r\n }\r\n\r\n .custom-range::-ms-track {\r\n width: 100%;\r\n height: 0.5rem;\r\n color: ${colors.transparent};\r\n cursor: pointer;\r\n background-color: ${colors.transparent};\r\n border-color: ${colors.transparent};\r\n border-width: 0.5rem;\r\n box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\r\n }\r\n\r\n .custom-range::-ms-fill-lower {\r\n background-color: #dee2e6;\r\n border-radius: 1rem;\r\n }\r\n\r\n .custom-range::-ms-fill-upper {\r\n margin-right: 15px;\r\n background-color: #dee2e6;\r\n border-radius: 1rem;\r\n }\r\n\r\n .custom-control-label::before,\r\n .custom-file-label,\r\n .custom-select {\r\n transition: background-color 0.15s ease-in-out,\r\n border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n }\r\n\r\n @media screen and (prefers-reduced-motion: reduce) {\r\n .custom-control-label::before,\r\n .custom-file-label,\r\n .custom-select {\r\n transition: none;\r\n }\r\n }\r\n\r\n .nav {\r\n display: flex;\r\n flex-wrap: wrap;\r\n padding-left: 0;\r\n margin-bottom: 0;\r\n list-style: none;\r\n }\r\n\r\n .nav-link {\r\n padding: 0.25rem 0.75rem;\r\n }\r\n\r\n .nav-tabs .nav-item {\r\n margin-bottom: -1px;\r\n }\r\n\r\n .nav-tabs .nav-link {\r\n border-top-left-radius: 0.375rem;\r\n border-top-right-radius: 0.375rem;\r\n }\r\n\r\n .nav-pills .nav-link {\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .navbar {\r\n padding: 1rem 1rem;\r\n }\r\n\r\n .navbar-text {\r\n padding-top: 0.25rem;\r\n padding-bottom: 0.25rem;\r\n }\r\n\r\n .navbar-toggler {\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .navbar-toggler:not(:disabled):not(.disabled) {\r\n cursor: pointer;\r\n }\r\n\r\n .navbar-toggler-icon {\r\n background: no-repeat center center;\r\n background-size: 100% 100%;\r\n }\r\n\r\n @media (min-width: 576px) {\r\n .navbar-expand-sm .navbar-nav .nav-link {\r\n padding-right: 1rem;\r\n padding-left: 1rem;\r\n }\r\n }\r\n\r\n @media (min-width: 768px) {\r\n .navbar-expand-md .navbar-nav .nav-link {\r\n padding-right: 1rem;\r\n padding-left: 1rem;\r\n }\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .navbar-expand-lg .navbar-nav .nav-link {\r\n padding-right: 1rem;\r\n padding-left: 1rem;\r\n }\r\n }\r\n\r\n @media (min-width: 1200px) {\r\n .navbar-expand-xl .navbar-nav {\r\n flex-direction: row;\r\n }\r\n\r\n .navbar-expand-xl .navbar-nav .nav-link {\r\n padding-right: 1rem;\r\n padding-left: 1rem;\r\n }\r\n }\r\n\r\n .navbar-expand .navbar-nav .nav-link {\r\n padding-right: 1rem;\r\n padding-left: 1rem;\r\n }\r\n\r\n .navbar-expand .navbar-toggler {\r\n display: none;\r\n }\r\n\r\n .navbar-light .navbar-toggler-icon {\r\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\r\n }\r\n\r\n .navbar-dark .navbar-toggler-icon {\r\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.95)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\r\n }\r\n\r\n .card {\r\n border: 1px solid rgba(0, 0, 0, 0.05);\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .card > .list-group:first-child .list-group-item:first-child {\r\n border-top-left-radius: 0.375rem;\r\n border-top-right-radius: 0.375rem;\r\n }\r\n\r\n .card > .list-group:last-child .list-group-item:last-child {\r\n border-bottom-right-radius: 0.375rem;\r\n border-bottom-left-radius: 0.375rem;\r\n }\r\n\r\n .card-body {\r\n padding: 1.5rem;\r\n }\r\n\r\n .card-title {\r\n margin-bottom: 1.25rem;\r\n }\r\n\r\n .card-subtitle {\r\n margin-top: -0.625rem;\r\n }\r\n\r\n .card-text:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n .card-link + .card-link {\r\n margin-left: 1.5rem;\r\n }\r\n\r\n .card-header {\r\n padding: 1.25rem 1.5rem;\r\n }\r\n\r\n .card-header h1,\r\n .card-header h2,\r\n .card-header h3 {\r\n font-size: 1.5rem;\r\n }\r\n\r\n .card-header:first-of-type {\r\n border-radius: calc(0.375rem - 1px);\r\n border-bottom-left-radius: 0;\r\n border-bottom-right-radius: 0;\r\n }\r\n\r\n .card-header + .list-group .list-group-item:first-of-type {\r\n border-top: 0;\r\n }\r\n\r\n .card-footer {\r\n padding: 1.25rem 1.5rem;\r\n background-color: ${colors.neutrals.min};\r\n border-top: 1px solid rgba(0, 0, 0, 0.05);\r\n }\r\n\r\n .card-footer:last-child {\r\n border-radius: 0 0 calc(0.375rem - 1px) calc(0.375rem - 1px);\r\n }\r\n\r\n .card-header-tabs {\r\n margin-right: -0.75rem;\r\n margin-bottom: -1.25rem;\r\n margin-left: -0.75rem;\r\n border-bottom: 0;\r\n }\r\n\r\n .card-header-pills {\r\n margin-right: -0.75rem;\r\n margin-left: -0.75rem;\r\n }\r\n\r\n .card-img-overlay {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n padding: 1.25rem;\r\n }\r\n\r\n .card-img {\r\n width: 100%;\r\n border-radius: calc(0.375rem - 1px);\r\n }\r\n\r\n .card-img-top {\r\n width: 100%;\r\n border-top-left-radius: calc(0.375rem - 1px);\r\n border-top-right-radius: calc(0.375rem - 1px);\r\n }\r\n\r\n .card-img-bottom {\r\n width: 100%;\r\n border-bottom-right-radius: calc(0.375rem - 1px);\r\n border-bottom-left-radius: calc(0.375rem - 1px);\r\n }\r\n\r\n .card-deck {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n .card-deck .card {\r\n margin-bottom: 15px;\r\n }\r\n\r\n @media (min-width: 576px) {\r\n .card-deck {\r\n flex-flow: row wrap;\r\n margin-right: -15px;\r\n margin-left: -15px;\r\n }\r\n\r\n .card-deck .card {\r\n display: flex;\r\n flex: 1 0 0%;\r\n flex-direction: column;\r\n margin-right: 15px;\r\n margin-bottom: 0;\r\n margin-left: 15px;\r\n }\r\n }\r\n\r\n .card-group {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n .card-group > .card {\r\n margin-bottom: 15px;\r\n }\r\n\r\n @media (min-width: 576px) {\r\n .card-group {\r\n flex-flow: row wrap;\r\n }\r\n\r\n .card-group > .card {\r\n flex: 1 0 0%;\r\n margin-bottom: 0;\r\n }\r\n\r\n .card-group > .card + .card {\r\n margin-left: 0;\r\n border-left: 0;\r\n }\r\n\r\n .card-group > .card:first-of-type {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n }\r\n\r\n .card-group > .card:first-of-type .card-img-top,\r\n .card-group > .card:first-of-type .card-header {\r\n border-top-right-radius: 0;\r\n }\r\n\r\n .card-group > .card:first-of-type .card-img-bottom,\r\n .card-group > .card:first-of-type .card-footer {\r\n border-bottom-right-radius: 0;\r\n }\r\n\r\n .card-group > .card:last-child {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n\r\n .card-group > .card:last-child .card-img-top,\r\n .card-group > .card:last-child .card-header {\r\n border-top-left-radius: 0;\r\n }\r\n\r\n .card-group > .card:last-child .card-img-bottom,\r\n .card-group > .card:last-child .card-footer {\r\n border-bottom-left-radius: 0;\r\n }\r\n\r\n .card-group > .card:only-child {\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .card-group > .card:only-child .card-img-top,\r\n .card-group > .card:only-child .card-header {\r\n border-top-left-radius: 0.375rem;\r\n border-top-right-radius: 0.375rem;\r\n }\r\n\r\n .card-group > .card:only-child .card-img-bottom,\r\n .card-group > .card:only-child .card-footer {\r\n border-bottom-right-radius: 0.375rem;\r\n border-bottom-left-radius: 0.375rem;\r\n }\r\n\r\n .card-group\r\n > .card:not(:first-of-type):not(:last-child):not(:only-child) {\r\n border-radius: 0;\r\n }\r\n\r\n .card-group\r\n > .card:not(:first-of-type):not(:last-child):not(:only-child)\r\n .card-img-top,\r\n .card-group\r\n > .card:not(:first-of-type):not(:last-child):not(:only-child)\r\n .card-img-bottom,\r\n .card-group\r\n > .card:not(:first-of-type):not(:last-child):not(:only-child)\r\n .card-header,\r\n .card-group\r\n > .card:not(:first-of-type):not(:last-child):not(:only-child)\r\n .card-footer {\r\n border-radius: 0;\r\n }\r\n }\r\n\r\n .card-columns .card {\r\n margin-bottom: 1.25rem;\r\n }\r\n\r\n @media (min-width: 576px) {\r\n .card-columns {\r\n column-count: 3;\r\n column-gap: 1.25rem;\r\n orphans: 1;\r\n widows: 1;\r\n }\r\n\r\n .card-columns .card {\r\n display: inline-block;\r\n width: 100%;\r\n }\r\n }\r\n\r\n .accordion .card:not(:first-of-type):not(:last-of-type) {\r\n border-bottom: 0;\r\n border-radius: 0;\r\n }\r\n\r\n .accordion .card:not(:first-of-type) .card-header:first-of-type {\r\n border-radius: 0;\r\n }\r\n\r\n .accordion .card:first-of-type {\r\n border-bottom: 0;\r\n border-bottom-right-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n\r\n .accordion .card:last-of-type {\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n }\r\n\r\n .breadcrumb {\r\n display: flex;\r\n flex-wrap: wrap;\r\n padding: 0.75rem 1rem;\r\n margin-bottom: 1rem;\r\n list-style: none;\r\n background-color: ${colors.neutrals.n200};\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .breadcrumb-item + .breadcrumb-item {\r\n padding-left: 0.5rem;\r\n }\r\n\r\n .breadcrumb-item + .breadcrumb-item::before {\r\n display: inline-block;\r\n padding-right: 0.5rem;\r\n color: ${colors.neutrals.n600};\r\n content: \"/\";\r\n }\r\n\r\n .breadcrumb-item + .breadcrumb-item:hover::before {\r\n text-decoration: underline;\r\n }\r\n\r\n .breadcrumb-item + .breadcrumb-item:hover::before {\r\n text-decoration: none;\r\n }\r\n\r\n .breadcrumb-item.active {\r\n color: ${colors.neutrals.n600};\r\n }\r\n\r\n .pagination {\r\n display: flex;\r\n padding-left: 0;\r\n list-style: none;\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .page-link {\r\n position: relative;\r\n display: block;\r\n padding: 0.5rem 0.75rem;\r\n margin-left: -1px;\r\n line-height: 1.25;\r\n color: ${colors.neutrals.n600};\r\n background-color: ${colors.neutrals.min};\r\n border: 1px solid #dee2e6;\r\n }\r\n\r\n .page-link:hover {\r\n z-index: 2;\r\n color: ${colors.neutrals.n600};\r\n text-decoration: none;\r\n background-color: #dee2e6;\r\n border-color: #dee2e6;\r\n }\r\n\r\n .page-link:focus {\r\n z-index: 2;\r\n outline: 0;\r\n box-shadow: none;\r\n }\r\n\r\n .page-link:not(:disabled):not(.disabled) {\r\n cursor: pointer;\r\n }\r\n\r\n .page-item:first-of-type .page-link {\r\n margin-left: 0;\r\n border-top-left-radius: 0.375rem;\r\n border-bottom-left-radius: 0.375rem;\r\n }\r\n\r\n .page-item:last-child .page-link {\r\n border-top-right-radius: 0.375rem;\r\n border-bottom-right-radius: 0.375rem;\r\n }\r\n\r\n .page-item.active .page-link {\r\n z-index: 1;\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.primary};\r\n border-color: ${colors.bootstrap.primary};\r\n }\r\n\r\n .page-item.disabled .page-link {\r\n color: ${colors.neutrals.n600};\r\n pointer-events: none;\r\n cursor: auto;\r\n background-color: ${colors.neutrals.min};\r\n border-color: #dee2e6;\r\n }\r\n\r\n .pagination-lg .page-link {\r\n padding: 0.75rem 1.5rem;\r\n font-size: 1.25rem;\r\n line-height: 1.5;\r\n }\r\n\r\n .pagination-lg .page-item:first-of-type .page-link {\r\n border-top-left-radius: 0.4375rem;\r\n border-bottom-left-radius: 0.4375rem;\r\n }\r\n\r\n .pagination-lg .page-item:last-child .page-link {\r\n border-top-right-radius: 0.4375rem;\r\n border-bottom-right-radius: 0.4375rem;\r\n }\r\n\r\n .pagination-sm .page-link {\r\n padding: 0.25rem 0.5rem;\r\n font-size: 0.875rem;\r\n line-height: 1.5;\r\n }\r\n\r\n .pagination-sm .page-item:first-of-type .page-link {\r\n border-top-left-radius: 0.25rem;\r\n border-bottom-left-radius: 0.25rem;\r\n }\r\n\r\n .pagination-sm .page-item:last-child .page-link {\r\n border-top-right-radius: 0.25rem;\r\n border-bottom-right-radius: 0.25rem;\r\n }\r\n\r\n .badge {\r\n display: inline-block;\r\n padding: 0.35rem 0.375rem;\r\n font-size: 66%;\r\n font-weight: 600;\r\n line-height: 1;\r\n text-align: center;\r\n white-space: nowrap;\r\n vertical-align: baseline;\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .badge:empty {\r\n display: none;\r\n }\r\n\r\n .btn .badge {\r\n position: relative;\r\n top: -1px;\r\n }\r\n\r\n .badge-pill {\r\n padding-right: 0.875em;\r\n padding-left: 0.875em;\r\n border-radius: 10rem;\r\n }\r\n\r\n .badge-primary {\r\n color: #2643e9;\r\n background-color: rgba(203, 210, 246, 0.5);\r\n }\r\n\r\n .badge-primary[href]:hover,\r\n .badge-primary[href]:focus {\r\n color: ${colors.neutrals.min};\r\n text-decoration: none;\r\n background-color: #324cdd;\r\n }\r\n\r\n .badge-secondary {\r\n color: #cfe3f1;\r\n background-color: rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n .badge-secondary[href]:hover,\r\n .badge-secondary[href]:focus {\r\n color: ${colors.neutrals.n900};\r\n text-decoration: none;\r\n background-color: #d2e3ee;\r\n }\r\n\r\n .badge-success {\r\n color: #1aae6f;\r\n background-color: rgba(147, 231, 195, 0.5);\r\n }\r\n\r\n .badge-success[href]:hover,\r\n .badge-success[href]:focus {\r\n color: ${colors.neutrals.min};\r\n text-decoration: none;\r\n background-color: #24a46d;\r\n }\r\n\r\n .badge-info {\r\n color: #03acca;\r\n background-color: rgba(136, 230, 247, 0.5);\r\n }\r\n\r\n .badge-info[href]:hover,\r\n .badge-info[href]:focus {\r\n color: ${colors.neutrals.min};\r\n text-decoration: none;\r\n background-color: #0da5c0;\r\n }\r\n\r\n .badge-warning {\r\n color: #ff3709;\r\n background-color: rgba(254, 201, 189, 0.5);\r\n }\r\n\r\n .badge-warning[href]:hover,\r\n .badge-warning[href]:focus {\r\n color: ${colors.neutrals.min};\r\n text-decoration: none;\r\n background-color: #fa3a0e;\r\n }\r\n\r\n .badge-danger {\r\n color: #f80031;\r\n background-color: rgba(251, 175, 190, 0.5);\r\n }\r\n\r\n .badge-danger[href]:hover,\r\n .badge-danger[href]:focus {\r\n color: ${colors.neutrals.min};\r\n text-decoration: none;\r\n background-color: #ec0c38;\r\n }\r\n\r\n .badge-light {\r\n color: #879cb0;\r\n background-color: rgba(244, 245, 246, 0.5);\r\n }\r\n\r\n .badge-light[href]:hover,\r\n .badge-light[href]:focus {\r\n color: ${colors.neutrals.min};\r\n text-decoration: none;\r\n background-color: #919ca6;\r\n }\r\n\r\n .badge-dark {\r\n color: #090c0e;\r\n background-color: rgba(90, 101, 112, 0.5);\r\n }\r\n\r\n .badge-dark[href]:hover,\r\n .badge-dark[href]:focus {\r\n color: ${colors.neutrals.min};\r\n text-decoration: none;\r\n background-color: #0a0c0d;\r\n }\r\n\r\n .badge-default {\r\n color: #091428;\r\n background-color: rgba(52, 98, 175, 0.5);\r\n }\r\n\r\n .badge-default[href]:hover,\r\n .badge-default[href]:focus {\r\n color: ${colors.neutrals.min};\r\n text-decoration: none;\r\n background-color: #0b1526;\r\n }\r\n\r\n .badge-white {\r\n color: #e8e3e3;\r\n background-color: rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n .badge-white[href]:hover,\r\n .badge-white[href]:focus {\r\n color: ${colors.neutrals.n900};\r\n text-decoration: none;\r\n background-color: ${colors.neutrals.n400};\r\n }\r\n\r\n .badge-neutral {\r\n color: #e8e3e3;\r\n background-color: rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n .badge-neutral[href]:hover,\r\n .badge-neutral[href]:focus {\r\n color: ${colors.neutrals.n900};\r\n text-decoration: none;\r\n background-color: ${colors.neutrals.n400};\r\n }\r\n\r\n .badge-darker {\r\n color: ${colors.neutrals.max};\r\n background-color: rgba(64, 64, 64, 0.5);\r\n }\r\n\r\n .badge-darker[href]:hover,\r\n .badge-darker[href]:focus {\r\n color: ${colors.neutrals.min};\r\n text-decoration: none;\r\n background-color: ${colors.neutrals.max};\r\n }\r\n\r\n .jumbotron {\r\n padding: 2rem 1rem;\r\n margin-bottom: 2rem;\r\n background-color: ${colors.neutrals.n200};\r\n border-radius: 0.4375rem;\r\n }\r\n\r\n @media (min-width: 576px) {\r\n .jumbotron {\r\n padding: 4rem 2rem;\r\n }\r\n }\r\n\r\n .jumbotron-fluid {\r\n padding-right: 0;\r\n padding-left: 0;\r\n border-radius: 0;\r\n }\r\n\r\n .alert {\r\n position: relative;\r\n padding: 1rem 1.5rem;\r\n margin-bottom: 1rem;\r\n border: 1px solid ${colors.transparent};\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .alert-heading {\r\n color: inherit;\r\n }\r\n\r\n .alert-link {\r\n font-weight: 600;\r\n }\r\n\r\n .alert-dismissible {\r\n padding-right: 4.5rem;\r\n }\r\n\r\n .alert-dismissible .close {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n padding: 1rem 1.5rem;\r\n color: inherit;\r\n }\r\n\r\n .alert-default {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.default};\r\n border-color: ${colors.bootstrap.defaultHigh};\r\n }\r\n\r\n .alert-default hr {\r\n border-top-color: #334159;\r\n }\r\n\r\n .alert-default .alert-link {\r\n color: #0b1526;\r\n }\r\n\r\n .alert-white {\r\n color: ${colors.neutrals.n900};\r\n background-color: white;\r\n border-color: white;\r\n }\r\n\r\n .alert-white hr {\r\n border-top-color: #f2f2f2;\r\n }\r\n\r\n .alert-white .alert-link {\r\n color: ${colors.neutrals.n400};\r\n }\r\n\r\n .alert-neutral {\r\n color: ${colors.neutrals.n900};\r\n background-color: white;\r\n border-color: white;\r\n }\r\n\r\n .alert-neutral hr {\r\n border-top-color: #f2f2f2;\r\n }\r\n\r\n .alert-neutral .alert-link {\r\n color: ${colors.neutrals.n400};\r\n }\r\n\r\n .alert-darker {\r\n color: ${colors.neutrals.min};\r\n background-color: #292929;\r\n border-color: #292929;\r\n }\r\n\r\n .alert-darker hr {\r\n border-top-color: #1c1c1c;\r\n }\r\n\r\n .alert-darker .alert-link {\r\n color: ${colors.neutrals.max};\r\n }\r\n\r\n @keyframes progress-bar-stripes {\r\n from {\r\n background-position: 1rem 0;\r\n }\r\n\r\n to {\r\n background-position: 0 0;\r\n }\r\n }\r\n\r\n .progress {\r\n border-radius: 0.375rem;\r\n box-shadow: inset 0 0.1rem 0.1rem rgba(0, 0, 0, 0.1);\r\n }\r\n\r\n @media screen and (prefers-reduced-motion: reduce) {\r\n .progress-bar {\r\n transition: none;\r\n }\r\n }\r\n\r\n .progress-bar-striped {\r\n background-image: linear-gradient(\r\n 45deg,\r\n rgba(255, 255, 255, 0.15) 25%,\r\n transparent 25%,\r\n transparent 50%,\r\n rgba(255, 255, 255, 0.15) 50%,\r\n rgba(255, 255, 255, 0.15) 75%,\r\n transparent 75%,\r\n transparent\r\n );\r\n background-size: 1rem 1rem;\r\n }\r\n\r\n .progress-bar-animated {\r\n animation: progress-bar-stripes 1s linear infinite;\r\n }\r\n\r\n .list-group-item {\r\n padding: 1rem 1rem;\r\n margin-bottom: -1px;\r\n }\r\n\r\n .list-group-item:first-of-type {\r\n border-top-left-radius: 0.375rem;\r\n border-top-right-radius: 0.375rem;\r\n }\r\n\r\n .list-group-item:last-child {\r\n margin-bottom: 0;\r\n border-bottom-right-radius: 0.375rem;\r\n border-bottom-left-radius: 0.375rem;\r\n }\r\n\r\n .list-group-item:hover,\r\n .list-group-item:focus {\r\n z-index: 1;\r\n text-decoration: none;\r\n }\r\n\r\n .list-group-item.disabled,\r\n .list-group-item:disabled {\r\n color: ${colors.neutrals.n600};\r\n background-color: ${colors.neutrals.min};\r\n }\r\n\r\n .list-group-item.active {\r\n z-index: 2;\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.primary};\r\n border-color: ${colors.bootstrap.primary};\r\n }\r\n\r\n .list-group-flush .list-group-item {\r\n border-right: 0;\r\n border-left: 0;\r\n border-radius: 0;\r\n }\r\n\r\n .list-group-flush:first-of-type .list-group-item:first-of-type {\r\n border-top: 0;\r\n }\r\n\r\n .list-group-flush:last-child .list-group-item:last-child {\r\n border-bottom: 0;\r\n }\r\n\r\n .list-group-item-primary {\r\n color: #313b77;\r\n background-color: #d2d8f7;\r\n }\r\n\r\n .list-group-item-primary.list-group-item-action:hover,\r\n .list-group-item-primary.list-group-item-action:focus {\r\n color: #313b77;\r\n background-color: #bcc5f3;\r\n }\r\n\r\n .list-group-item-primary.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #313b77;\r\n border-color: #313b77;\r\n }\r\n\r\n .list-group-item-secondary {\r\n color: #808283;\r\n background-color: #fdfefe;\r\n }\r\n\r\n .list-group-item-secondary.list-group-item-action:hover,\r\n .list-group-item-secondary.list-group-item-action:focus {\r\n color: #808283;\r\n background-color: #ecf6f6;\r\n }\r\n\r\n .list-group-item-secondary.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #808283;\r\n border-color: #808283;\r\n }\r\n\r\n .list-group-item-success {\r\n color: #176b47;\r\n background-color: #c4f1de;\r\n }\r\n\r\n .list-group-item-success.list-group-item-action:hover,\r\n .list-group-item-success.list-group-item-action:focus {\r\n color: #176b47;\r\n background-color: #afecd2;\r\n }\r\n\r\n .list-group-item-success.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #176b47;\r\n border-color: #176b47;\r\n }\r\n\r\n .list-group-item-info {\r\n color: #096b7c;\r\n background-color: #bcf1fb;\r\n }\r\n\r\n .list-group-item-info.list-group-item-action:hover,\r\n .list-group-item-info.list-group-item-action:focus {\r\n color: #096b7c;\r\n background-color: #a4ecfa;\r\n }\r\n\r\n .list-group-item-info.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #096b7c;\r\n border-color: #096b7c;\r\n }\r\n\r\n .list-group-item-warning {\r\n color: #833321;\r\n background-color: #fed3ca;\r\n }\r\n\r\n .list-group-item-warning.list-group-item-action:hover,\r\n .list-group-item-warning.list-group-item-action:focus {\r\n color: #833321;\r\n background-color: #febeb1;\r\n }\r\n\r\n .list-group-item-warning.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #833321;\r\n border-color: #833321;\r\n }\r\n\r\n .list-group-item-danger {\r\n color: #7f1c30;\r\n background-color: #fcc7d1;\r\n }\r\n\r\n .list-group-item-danger.list-group-item-action:hover,\r\n .list-group-item-danger.list-group-item-action:focus {\r\n color: #7f1c30;\r\n background-color: #fbafbd;\r\n }\r\n\r\n .list-group-item-danger.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #7f1c30;\r\n border-color: #7f1c30;\r\n }\r\n\r\n .list-group-item-light {\r\n color: #5a5e62;\r\n background-color: #e8eaed;\r\n }\r\n\r\n .list-group-item-light.list-group-item-action:hover,\r\n .list-group-item-light.list-group-item-action:focus {\r\n color: #5a5e62;\r\n background-color: #dadde2;\r\n }\r\n\r\n .list-group-item-light.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #5a5e62;\r\n border-color: #5a5e62;\r\n }\r\n\r\n .list-group-item-dark {\r\n color: #111315;\r\n background-color: #c1c2c3;\r\n }\r\n\r\n .list-group-item-dark.list-group-item-action:hover,\r\n .list-group-item-dark.list-group-item-action:focus {\r\n color: #111315;\r\n background-color: #b4b5b6;\r\n }\r\n\r\n .list-group-item-dark.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #111315;\r\n border-color: #111315;\r\n }\r\n\r\n .list-group-item-default {\r\n color: #0c1628;\r\n background-color: #bec4cd;\r\n }\r\n\r\n .list-group-item-default.list-group-item-action:hover,\r\n .list-group-item-default.list-group-item-action:focus {\r\n color: #0c1628;\r\n background-color: #b0b7c2;\r\n }\r\n\r\n .list-group-item-default.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #0c1628;\r\n border-color: #0c1628;\r\n }\r\n\r\n .list-group-item-white {\r\n color: #858585;\r\n background-color: white;\r\n }\r\n\r\n .list-group-item-white.list-group-item-action:hover,\r\n .list-group-item-white.list-group-item-action:focus {\r\n color: #858585;\r\n background-color: #f2f2f2;\r\n }\r\n\r\n .list-group-item-white.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #858585;\r\n border-color: #858585;\r\n }\r\n\r\n .list-group-item-neutral {\r\n color: #858585;\r\n background-color: white;\r\n }\r\n\r\n .list-group-item-neutral.list-group-item-action:hover,\r\n .list-group-item-neutral.list-group-item-action:focus {\r\n color: #858585;\r\n background-color: #f2f2f2;\r\n }\r\n\r\n .list-group-item-neutral.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: #858585;\r\n border-color: #858585;\r\n }\r\n\r\n .list-group-item-darker {\r\n color: ${colors.neutrals.max};\r\n background-color: #b8b8b8;\r\n }\r\n\r\n .list-group-item-darker.list-group-item-action:hover,\r\n .list-group-item-darker.list-group-item-action:focus {\r\n color: ${colors.neutrals.min};\r\n background-color: #ababab;\r\n }\r\n\r\n .list-group-item-darker.list-group-item-action.active {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.neutrals.max};\r\n border-color: ${colors.neutrals.max};\r\n }\r\n\r\n .close {\r\n float: right;\r\n font-size: 1.5rem;\r\n font-weight: 600;\r\n line-height: 1;\r\n color: rgba(0, 0, 0, 0.6);\r\n text-shadow: none;\r\n opacity: 0.5;\r\n }\r\n\r\n .close:not(:disabled):not(.disabled) {\r\n cursor: pointer;\r\n }\r\n\r\n .close:not(:disabled):not(.disabled):hover,\r\n .close:not(:disabled):not(.disabled):focus {\r\n color: rgba(0, 0, 0, 0.6);\r\n text-decoration: none;\r\n opacity: 0.75;\r\n }\r\n\r\n button.close {\r\n padding: 0;\r\n background-color: ${colors.transparent};\r\n border: 0;\r\n -webkit-appearance: none;\r\n }\r\n\r\n .modal-open {\r\n overflow: hidden;\r\n }\r\n\r\n .modal-open .modal {\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n }\r\n\r\n .modal {\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1050;\r\n display: none;\r\n overflow: hidden;\r\n outline: 0;\r\n }\r\n\r\n .sb-error-dlg p {\r\n word-break: break-word;\r\n }\r\n\r\n .modal-dialog {\r\n position: relative;\r\n width: auto;\r\n margin: 0.5rem;\r\n pointer-events: none;\r\n }\r\n\r\n .modal.fade .modal-dialog {\r\n transition: transform 0.3s ease-out;\r\n transform: translate(0, -25%);\r\n }\r\n\r\n @media screen and (prefers-reduced-motion: reduce) {\r\n .modal.fade .modal-dialog {\r\n transition: none;\r\n }\r\n }\r\n\r\n .modal.show .modal-dialog {\r\n transform: translate(0, 0);\r\n }\r\n\r\n .modal-dialog-centered {\r\n display: flex;\r\n align-items: center;\r\n min-height: calc(100% - (0.5rem * 2));\r\n }\r\n\r\n .modal-dialog-centered::before {\r\n display: block;\r\n height: calc(100vh - (0.5rem * 2));\r\n content: \"\";\r\n }\r\n\r\n .modal-content {\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n pointer-events: auto;\r\n background-color: ${colors.neutrals.midground};\r\n background-clip: padding-box;\r\n border: 0 solid rgba(0, 0, 0, 0.2);\r\n border-radius: 0.4375rem;\r\n box-shadow: 0 15px 35px rgba(50, 50, 93, 0.2),\r\n 0 5px 15px rgba(0, 0, 0, 0.17);\r\n outline: 0;\r\n }\r\n\r\n .modal-backdrop {\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1040;\r\n background-color: #000;\r\n }\r\n\r\n .modal-backdrop.fade {\r\n opacity: 0;\r\n }\r\n\r\n .modal-backdrop.show {\r\n opacity: 0.16;\r\n }\r\n\r\n .modal-header {\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: space-between;\r\n padding: 1.25rem;\r\n border-bottom: 0 solid ${colors.neutrals.n200};\r\n border-top-left-radius: 0.4375rem;\r\n border-top-right-radius: 0.4375rem;\r\n }\r\n\r\n .modal-header .close {\r\n padding: 1.25rem;\r\n margin: -1.25rem -1.25rem -1.25rem auto;\r\n }\r\n\r\n .modal-title {\r\n margin-bottom: 0;\r\n line-height: 1.1;\r\n }\r\n\r\n .modal-body {\r\n position: relative;\r\n flex: 1 1 auto;\r\n padding: 1.5rem;\r\n }\r\n\r\n .modal-footer {\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n padding: 1.5rem;\r\n border-top: 0 solid ${colors.neutrals.n200};\r\n }\r\n\r\n .modal-footer > :not(:first-of-type) {\r\n margin-left: 0.25rem;\r\n }\r\n\r\n .modal-footer > :not(:last-child) {\r\n margin-right: 0.25rem;\r\n }\r\n\r\n .modal-scrollbar-measure {\r\n position: absolute;\r\n top: -9999px;\r\n width: 50px;\r\n height: 50px;\r\n overflow: scroll;\r\n }\r\n\r\n @media (min-width: 576px) {\r\n .modal-dialog {\r\n max-width: 500px;\r\n margin: 1.75rem auto;\r\n }\r\n\r\n .modal-dialog-centered {\r\n min-height: calc(100% - (1.75rem * 2));\r\n }\r\n\r\n .modal-dialog-centered::before {\r\n height: calc(100vh - (1.75rem * 2));\r\n }\r\n\r\n .modal-content {\r\n box-shadow: 0 15px 35px rgba(50, 50, 93, 0.2),\r\n 0 5px 15px rgba(0, 0, 0, 0.17);\r\n }\r\n\r\n .modal-sm {\r\n max-width: 380px;\r\n }\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .modal-lg {\r\n max-width: 800px;\r\n }\r\n }\r\n\r\n .tooltip {\r\n position: absolute;\r\n z-index: 1070;\r\n display: block;\r\n margin: 0;\r\n font-family: ${GlobalTheme_1.GlobalTheme.current.fonts.fontFamily};\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 1.5;\r\n text-align: left;\r\n text-align: start;\r\n text-decoration: none;\r\n text-shadow: none;\r\n text-transform: none;\r\n letter-spacing: normal;\r\n word-break: normal;\r\n word-spacing: normal;\r\n white-space: normal;\r\n line-break: auto;\r\n font-size: 0.875rem;\r\n word-wrap: break-word;\r\n opacity: 0;\r\n }\r\n\r\n .tooltip.show {\r\n opacity: 0.9;\r\n }\r\n\r\n .tooltip .arrow {\r\n position: absolute;\r\n display: block;\r\n width: 0.8rem;\r\n height: 0.4rem;\r\n }\r\n\r\n .tooltip .arrow::before {\r\n position: absolute;\r\n content: \"\";\r\n border-color: ${colors.transparent};\r\n border-style: solid;\r\n }\r\n\r\n .bs-tooltip-top,\r\n .bs-tooltip-auto[x-placement^=\"top\"] {\r\n padding: 0.4rem 0;\r\n }\r\n\r\n .bs-tooltip-top .arrow,\r\n .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\r\n bottom: 0;\r\n }\r\n\r\n .bs-tooltip-top .arrow::before,\r\n .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\r\n top: 0;\r\n border-width: 0.4rem 0.4rem 0;\r\n border-top-color: #000;\r\n }\r\n\r\n .bs-tooltip-right,\r\n .bs-tooltip-auto[x-placement^=\"right\"] {\r\n padding: 0 0.4rem;\r\n }\r\n\r\n .bs-tooltip-right .arrow,\r\n .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\r\n left: 0;\r\n width: 0.4rem;\r\n height: 0.8rem;\r\n }\r\n\r\n .bs-tooltip-right .arrow::before,\r\n .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\r\n right: 0;\r\n border-width: 0.4rem 0.4rem 0.4rem 0;\r\n border-right-color: #000;\r\n }\r\n\r\n .bs-tooltip-bottom,\r\n .bs-tooltip-auto[x-placement^=\"bottom\"] {\r\n padding: 0.4rem 0;\r\n }\r\n\r\n .bs-tooltip-bottom .arrow,\r\n .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\r\n top: 0;\r\n }\r\n\r\n .bs-tooltip-bottom .arrow::before,\r\n .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\r\n bottom: 0;\r\n border-width: 0 0.4rem 0.4rem;\r\n border-bottom-color: #000;\r\n }\r\n\r\n .bs-tooltip-left,\r\n .bs-tooltip-auto[x-placement^=\"left\"] {\r\n padding: 0 0.4rem;\r\n }\r\n\r\n .bs-tooltip-left .arrow,\r\n .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\r\n right: 0;\r\n width: 0.4rem;\r\n height: 0.8rem;\r\n }\r\n\r\n .bs-tooltip-left .arrow::before,\r\n .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\r\n left: 0;\r\n border-width: 0.4rem 0 0.4rem 0.4rem;\r\n border-left-color: #000;\r\n }\r\n\r\n .tooltip-inner {\r\n max-width: 200px;\r\n padding: 0.25rem 0.5rem;\r\n color: ${colors.neutrals.min};\r\n text-align: center;\r\n background-color: #000;\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .popover {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n z-index: 1060;\r\n display: block;\r\n max-width: 276px;\r\n font-family: ${GlobalTheme_1.GlobalTheme.current.fonts.fontFamily};\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 1.5;\r\n text-align: left;\r\n text-align: start;\r\n text-decoration: none;\r\n text-shadow: none;\r\n text-transform: none;\r\n letter-spacing: normal;\r\n word-break: normal;\r\n word-spacing: normal;\r\n white-space: normal;\r\n line-break: auto;\r\n font-size: 0.875rem;\r\n word-wrap: break-word;\r\n background-color: ${colors.neutrals.min};\r\n background-clip: padding-box;\r\n border: 1px solid rgba(0, 0, 0, 0.05);\r\n border-radius: 0.4375rem;\r\n box-shadow: 0px 0.5rem 2rem 0px rgba(0, 0, 0, 0.2);\r\n }\r\n\r\n .popover .arrow {\r\n position: absolute;\r\n display: block;\r\n width: 1.5rem;\r\n height: 0.75rem;\r\n margin: 0 0.4375rem;\r\n }\r\n\r\n .popover .arrow::before,\r\n .popover .arrow::after {\r\n position: absolute;\r\n display: block;\r\n content: \"\";\r\n border-color: ${colors.transparent};\r\n border-style: solid;\r\n }\r\n\r\n .bs-popover-top,\r\n .bs-popover-auto[x-placement^=\"top\"] {\r\n margin-bottom: 0.75rem;\r\n }\r\n\r\n .bs-popover-top .arrow,\r\n .bs-popover-auto[x-placement^=\"top\"] .arrow {\r\n bottom: calc((0.75rem + 1px) * -1);\r\n }\r\n\r\n .bs-popover-top .arrow::before,\r\n .bs-popover-auto[x-placement^=\"top\"] .arrow::before,\r\n .bs-popover-top .arrow::after,\r\n .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\r\n border-width: 0.75rem 0.75rem 0;\r\n }\r\n\r\n .bs-popover-top .arrow::before,\r\n .bs-popover-auto[x-placement^=\"top\"] .arrow::before {\r\n bottom: 0;\r\n border-top-color: ${colors.transparent};\r\n }\r\n\r\n .bs-popover-top .arrow::after,\r\n .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\r\n bottom: 1px;\r\n border-top-color: ${colors.neutrals.min};\r\n }\r\n\r\n .bs-popover-right,\r\n .bs-popover-auto[x-placement^=\"right\"] {\r\n margin-left: 0.75rem;\r\n }\r\n\r\n .bs-popover-right .arrow,\r\n .bs-popover-auto[x-placement^=\"right\"] .arrow {\r\n left: calc((0.75rem + 1px) * -1);\r\n width: 0.75rem;\r\n height: 1.5rem;\r\n margin: 0.4375rem 0;\r\n }\r\n\r\n .bs-popover-right .arrow::before,\r\n .bs-popover-auto[x-placement^=\"right\"] .arrow::before,\r\n .bs-popover-right .arrow::after,\r\n .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\r\n border-width: 0.75rem 0.75rem 0.75rem 0;\r\n }\r\n\r\n .bs-popover-right .arrow::before,\r\n .bs-popover-auto[x-placement^=\"right\"] .arrow::before {\r\n left: 0;\r\n border-right-color: ${colors.transparent};\r\n }\r\n\r\n .bs-popover-right .arrow::after,\r\n .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\r\n left: 1px;\r\n border-right-color: ${colors.neutrals.min};\r\n }\r\n\r\n .bs-popover-bottom,\r\n .bs-popover-auto[x-placement^=\"bottom\"] {\r\n margin-top: 0.75rem;\r\n }\r\n\r\n .bs-popover-bottom .arrow,\r\n .bs-popover-auto[x-placement^=\"bottom\"] .arrow {\r\n top: calc((0.75rem + 1px) * -1);\r\n }\r\n\r\n .bs-popover-bottom .arrow::before,\r\n .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before,\r\n .bs-popover-bottom .arrow::after,\r\n .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\r\n border-width: 0 0.75rem 0.75rem 0.75rem;\r\n }\r\n\r\n .bs-popover-bottom .arrow::before,\r\n .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before {\r\n top: 0;\r\n border-bottom-color: ${colors.transparent};\r\n }\r\n\r\n .bs-popover-bottom .arrow::after,\r\n .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\r\n top: 1px;\r\n border-bottom-color: ${colors.neutrals.min};\r\n }\r\n\r\n .bs-popover-bottom .popover-header::before,\r\n .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\r\n position: absolute;\r\n top: 0;\r\n left: 50%;\r\n display: block;\r\n width: 1.5rem;\r\n margin-left: -0.75rem;\r\n content: \"\";\r\n border-bottom: 1px solid ${colors.neutrals.min};\r\n }\r\n\r\n .bs-popover-left,\r\n .bs-popover-auto[x-placement^=\"left\"] {\r\n margin-right: 0.75rem;\r\n }\r\n\r\n .bs-popover-left .arrow,\r\n .bs-popover-auto[x-placement^=\"left\"] .arrow {\r\n right: calc((0.75rem + 1px) * -1);\r\n width: 0.75rem;\r\n height: 1.5rem;\r\n margin: 0.4375rem 0;\r\n }\r\n\r\n .bs-popover-left .arrow::before,\r\n .bs-popover-auto[x-placement^=\"left\"] .arrow::before,\r\n .bs-popover-left .arrow::after,\r\n .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\r\n border-width: 0.75rem 0 0.75rem 0.75rem;\r\n }\r\n\r\n .bs-popover-left .arrow::before,\r\n .bs-popover-auto[x-placement^=\"left\"] .arrow::before {\r\n right: 0;\r\n border-left-color: ${colors.transparent};\r\n }\r\n\r\n .bs-popover-left .arrow::after,\r\n .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\r\n right: 1px;\r\n border-left-color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-header {\r\n padding: 0.5rem 0.95rem;\r\n margin-bottom: 0;\r\n font-size: 1rem;\r\n color: ${colors.neutrals.n800};\r\n background-color: ${colors.neutrals.min};\r\n border-bottom: 1px solid #f2f2f2;\r\n border-top-left-radius: calc(0.4375rem - 1px);\r\n border-top-right-radius: calc(0.4375rem - 1px);\r\n }\r\n\r\n .popover-header:empty {\r\n display: none;\r\n }\r\n\r\n .popover-body {\r\n padding: 0.5rem 0.95rem;\r\n color: ${colors.neutrals.n700};\r\n }\r\n\r\n .align-baseline {\r\n vertical-align: baseline !important;\r\n }\r\n\r\n .align-top {\r\n vertical-align: top !important;\r\n }\r\n\r\n .align-middle {\r\n vertical-align: middle !important;\r\n }\r\n\r\n .align-bottom {\r\n vertical-align: bottom !important;\r\n }\r\n\r\n .align-text-bottom {\r\n vertical-align: text-bottom !important;\r\n }\r\n\r\n .align-text-top {\r\n vertical-align: text-top !important;\r\n }\r\n\r\n .bg-default {\r\n background-color: ${colors.bootstrap.default} !important;\r\n }\r\n\r\n a.bg-default:hover,\r\n a.bg-default:focus,\r\n button.bg-default:hover,\r\n button.bg-default:focus {\r\n background-color: #0b1526 !important;\r\n }\r\n\r\n a.bg-white:hover,\r\n a.bg-white:focus,\r\n button.bg-white:hover,\r\n button.bg-white:focus {\r\n background-color: ${colors.neutrals.n400} !important;\r\n }\r\n\r\n .bg-neutral {\r\n background-color: ${colors.neutrals.min} !important;\r\n }\r\n\r\n a.bg-neutral:hover,\r\n a.bg-neutral:focus,\r\n button.bg-neutral:hover,\r\n button.bg-neutral:focus {\r\n background-color: ${colors.neutrals.n400} !important;\r\n }\r\n\r\n .bg-darker {\r\n background-color: ${colors.neutrals.max} !important;\r\n }\r\n\r\n a.bg-darker:hover,\r\n a.bg-darker:focus,\r\n button.bg-darker:hover,\r\n button.bg-darker:focus {\r\n background-color: ${colors.neutrals.max} !important;\r\n }\r\n\r\n .bg-white {\r\n background-color: ${colors.neutrals.min} !important;\r\n }\r\n\r\n .bg-transparent {\r\n background-color: transparent !important;\r\n }\r\n\r\n .border {\r\n border: 1px solid ${colors.neutrals.n200};\r\n }\r\n\r\n .border-top {\r\n border-top: 1px solid ${colors.neutrals.n200};\r\n }\r\n\r\n .border-right {\r\n border-right: 1px solid ${colors.neutrals.n200};\r\n }\r\n\r\n .border-bottom {\r\n border-bottom: 1px solid ${colors.neutrals.n200};\r\n }\r\n\r\n .border-left {\r\n border-left: 1px solid ${colors.neutrals.n200};\r\n }\r\n\r\n .border-0 {\r\n border: 0 !important;\r\n }\r\n\r\n .border-top-0 {\r\n border-top: 0 !important;\r\n }\r\n\r\n .border-right-0 {\r\n border-right: 0 !important;\r\n }\r\n\r\n .border-bottom-0 {\r\n border-bottom: 0 !important;\r\n }\r\n\r\n .border-left-0 {\r\n border-left: 0 !important;\r\n }\r\n\r\n .border-default {\r\n border-color: ${colors.bootstrap.default} !important;\r\n }\r\n\r\n .border-white {\r\n border-color: ${colors.neutrals.min} !important;\r\n }\r\n\r\n .border-neutral {\r\n border-color: ${colors.neutrals.min} !important;\r\n }\r\n\r\n .border-darker {\r\n border-color: ${colors.neutrals.max} !important;\r\n }\r\n\r\n .rounded {\r\n border-radius: 0.375rem !important;\r\n }\r\n\r\n .rounded-top {\r\n border-top-left-radius: 0.375rem !important;\r\n border-top-right-radius: 0.375rem !important;\r\n }\r\n\r\n .rounded-right {\r\n border-top-right-radius: 0.375rem !important;\r\n border-bottom-right-radius: 0.375rem !important;\r\n }\r\n\r\n .rounded-bottom {\r\n border-bottom-right-radius: 0.375rem !important;\r\n border-bottom-left-radius: 0.375rem !important;\r\n }\r\n\r\n .rounded-left {\r\n border-top-left-radius: 0.375rem !important;\r\n border-bottom-left-radius: 0.375rem !important;\r\n }\r\n\r\n .rounded-circle {\r\n border-radius: 50% !important;\r\n }\r\n\r\n .rounded-0 {\r\n border-radius: 0 !important;\r\n }\r\n\r\n .clearfix::after {\r\n display: block;\r\n clear: both;\r\n content: \"\";\r\n }\r\n\r\n .embed-responsive {\r\n position: relative;\r\n display: block;\r\n width: 100%;\r\n padding: 0;\r\n overflow: hidden;\r\n }\r\n\r\n .embed-responsive::before {\r\n display: block;\r\n content: \"\";\r\n }\r\n\r\n .embed-responsive .embed-responsive-item,\r\n .embed-responsive iframe,\r\n .embed-responsive embed,\r\n .embed-responsive object,\r\n .embed-responsive video {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n border: 0;\r\n }\r\n\r\n .embed-responsive-21by9::before {\r\n padding-top: 42.85714%;\r\n }\r\n\r\n .embed-responsive-16by9::before {\r\n padding-top: 56.25%;\r\n }\r\n\r\n .embed-responsive-4by3::before {\r\n padding-top: 75%;\r\n }\r\n\r\n .embed-responsive-1by1::before {\r\n padding-top: 100%;\r\n }\r\n\r\n .flex-row {\r\n flex-direction: row !important;\r\n }\r\n\r\n .flex-column {\r\n flex-direction: column !important;\r\n }\r\n\r\n .flex-row-reverse {\r\n flex-direction: row-reverse !important;\r\n }\r\n\r\n .flex-column-reverse {\r\n flex-direction: column-reverse !important;\r\n }\r\n\r\n .flex-wrap {\r\n flex-wrap: wrap !important;\r\n }\r\n\r\n .flex-nowrap {\r\n flex-wrap: nowrap !important;\r\n }\r\n\r\n .flex-wrap-reverse {\r\n flex-wrap: wrap-reverse !important;\r\n }\r\n\r\n .flex-fill {\r\n flex: 1 1 auto !important;\r\n }\r\n\r\n .flex-grow-0 {\r\n flex-grow: 0 !important;\r\n }\r\n\r\n .flex-grow-1 {\r\n flex-grow: 1 !important;\r\n }\r\n\r\n .flex-shrink-0 {\r\n flex-shrink: 0 !important;\r\n }\r\n\r\n .flex-shrink-1 {\r\n flex-shrink: 1 !important;\r\n }\r\n\r\n .justify-content-start {\r\n justify-content: flex-start !important;\r\n }\r\n\r\n .justify-content-end {\r\n justify-content: flex-end !important;\r\n }\r\n\r\n .justify-content-center {\r\n justify-content: center !important;\r\n }\r\n\r\n .justify-content-between {\r\n justify-content: space-between !important;\r\n }\r\n\r\n .justify-content-around {\r\n justify-content: space-around !important;\r\n }\r\n\r\n .align-items-start {\r\n align-items: flex-start !important;\r\n }\r\n\r\n .align-items-end {\r\n align-items: flex-end !important;\r\n }\r\n\r\n .align-items-center {\r\n align-items: center !important;\r\n }\r\n\r\n .align-items-baseline {\r\n align-items: baseline !important;\r\n }\r\n\r\n .align-items-stretch {\r\n align-items: stretch !important;\r\n }\r\n\r\n .align-content-start {\r\n align-content: flex-start !important;\r\n }\r\n\r\n .align-content-end {\r\n align-content: flex-end !important;\r\n }\r\n\r\n .align-content-center {\r\n align-content: center !important;\r\n }\r\n\r\n .align-content-between {\r\n align-content: space-between !important;\r\n }\r\n\r\n .align-content-around {\r\n align-content: space-around !important;\r\n }\r\n\r\n .align-content-stretch {\r\n align-content: stretch !important;\r\n }\r\n\r\n .align-self-auto {\r\n align-self: auto !important;\r\n }\r\n\r\n .align-self-start {\r\n align-self: flex-start !important;\r\n }\r\n\r\n .align-self-end {\r\n align-self: flex-end !important;\r\n }\r\n\r\n .align-self-center {\r\n align-self: center !important;\r\n }\r\n\r\n .align-self-baseline {\r\n align-self: baseline !important;\r\n }\r\n\r\n .align-self-stretch {\r\n align-self: stretch !important;\r\n }\r\n\r\n @media (min-width: 576px) {\r\n .flex-sm-row {\r\n flex-direction: row !important;\r\n }\r\n\r\n .flex-sm-column {\r\n flex-direction: column !important;\r\n }\r\n\r\n .flex-sm-row-reverse {\r\n flex-direction: row-reverse !important;\r\n }\r\n\r\n .flex-sm-column-reverse {\r\n flex-direction: column-reverse !important;\r\n }\r\n\r\n .flex-sm-wrap {\r\n flex-wrap: wrap !important;\r\n }\r\n\r\n .flex-sm-nowrap {\r\n flex-wrap: nowrap !important;\r\n }\r\n\r\n .flex-sm-wrap-reverse {\r\n flex-wrap: wrap-reverse !important;\r\n }\r\n\r\n .flex-sm-fill {\r\n flex: 1 1 auto !important;\r\n }\r\n\r\n .flex-sm-grow-0 {\r\n flex-grow: 0 !important;\r\n }\r\n\r\n .flex-sm-grow-1 {\r\n flex-grow: 1 !important;\r\n }\r\n\r\n .flex-sm-shrink-0 {\r\n flex-shrink: 0 !important;\r\n }\r\n\r\n .flex-sm-shrink-1 {\r\n flex-shrink: 1 !important;\r\n }\r\n\r\n .justify-content-sm-start {\r\n justify-content: flex-start !important;\r\n }\r\n\r\n .justify-content-sm-end {\r\n justify-content: flex-end !important;\r\n }\r\n\r\n .justify-content-sm-center {\r\n justify-content: center !important;\r\n }\r\n\r\n .justify-content-sm-between {\r\n justify-content: space-between !important;\r\n }\r\n\r\n .justify-content-sm-around {\r\n justify-content: space-around !important;\r\n }\r\n\r\n .align-items-sm-start {\r\n align-items: flex-start !important;\r\n }\r\n\r\n .align-items-sm-end {\r\n align-items: flex-end !important;\r\n }\r\n\r\n .align-items-sm-center {\r\n align-items: center !important;\r\n }\r\n\r\n .align-items-sm-baseline {\r\n align-items: baseline !important;\r\n }\r\n\r\n .align-items-sm-stretch {\r\n align-items: stretch !important;\r\n }\r\n\r\n .align-content-sm-start {\r\n align-content: flex-start !important;\r\n }\r\n\r\n .align-content-sm-end {\r\n align-content: flex-end !important;\r\n }\r\n\r\n .align-content-sm-center {\r\n align-content: center !important;\r\n }\r\n\r\n .align-content-sm-between {\r\n align-content: space-between !important;\r\n }\r\n\r\n .align-content-sm-around {\r\n align-content: space-around !important;\r\n }\r\n\r\n .align-content-sm-stretch {\r\n align-content: stretch !important;\r\n }\r\n\r\n .align-self-sm-auto {\r\n align-self: auto !important;\r\n }\r\n\r\n .align-self-sm-start {\r\n align-self: flex-start !important;\r\n }\r\n\r\n .align-self-sm-end {\r\n align-self: flex-end !important;\r\n }\r\n\r\n .align-self-sm-center {\r\n align-self: center !important;\r\n }\r\n\r\n .align-self-sm-baseline {\r\n align-self: baseline !important;\r\n }\r\n\r\n .align-self-sm-stretch {\r\n align-self: stretch !important;\r\n }\r\n }\r\n\r\n @media (min-width: 768px) {\r\n .flex-md-row {\r\n flex-direction: row !important;\r\n }\r\n\r\n .flex-md-column {\r\n flex-direction: column !important;\r\n }\r\n\r\n .flex-md-row-reverse {\r\n flex-direction: row-reverse !important;\r\n }\r\n\r\n .flex-md-column-reverse {\r\n flex-direction: column-reverse !important;\r\n }\r\n\r\n .flex-md-wrap {\r\n flex-wrap: wrap !important;\r\n }\r\n\r\n .flex-md-nowrap {\r\n flex-wrap: nowrap !important;\r\n }\r\n\r\n .flex-md-wrap-reverse {\r\n flex-wrap: wrap-reverse !important;\r\n }\r\n\r\n .flex-md-fill {\r\n flex: 1 1 auto !important;\r\n }\r\n\r\n .flex-md-grow-0 {\r\n flex-grow: 0 !important;\r\n }\r\n\r\n .flex-md-grow-1 {\r\n flex-grow: 1 !important;\r\n }\r\n\r\n .flex-md-shrink-0 {\r\n flex-shrink: 0 !important;\r\n }\r\n\r\n .flex-md-shrink-1 {\r\n flex-shrink: 1 !important;\r\n }\r\n\r\n .justify-content-md-start {\r\n justify-content: flex-start !important;\r\n }\r\n\r\n .justify-content-md-end {\r\n justify-content: flex-end !important;\r\n }\r\n\r\n .justify-content-md-center {\r\n justify-content: center !important;\r\n }\r\n\r\n .justify-content-md-between {\r\n justify-content: space-between !important;\r\n }\r\n\r\n .justify-content-md-around {\r\n justify-content: space-around !important;\r\n }\r\n\r\n .align-items-md-start {\r\n align-items: flex-start !important;\r\n }\r\n\r\n .align-items-md-end {\r\n align-items: flex-end !important;\r\n }\r\n\r\n .align-items-md-center {\r\n align-items: center !important;\r\n }\r\n\r\n .align-items-md-baseline {\r\n align-items: baseline !important;\r\n }\r\n\r\n .align-items-md-stretch {\r\n align-items: stretch !important;\r\n }\r\n\r\n .align-content-md-start {\r\n align-content: flex-start !important;\r\n }\r\n\r\n .align-content-md-end {\r\n align-content: flex-end !important;\r\n }\r\n\r\n .align-content-md-center {\r\n align-content: center !important;\r\n }\r\n\r\n .align-content-md-between {\r\n align-content: space-between !important;\r\n }\r\n\r\n .align-content-md-around {\r\n align-content: space-around !important;\r\n }\r\n\r\n .align-content-md-stretch {\r\n align-content: stretch !important;\r\n }\r\n\r\n .align-self-md-auto {\r\n align-self: auto !important;\r\n }\r\n\r\n .align-self-md-start {\r\n align-self: flex-start !important;\r\n }\r\n\r\n .align-self-md-end {\r\n align-self: flex-end !important;\r\n }\r\n\r\n .align-self-md-center {\r\n align-self: center !important;\r\n }\r\n\r\n .align-self-md-baseline {\r\n align-self: baseline !important;\r\n }\r\n\r\n .align-self-md-stretch {\r\n align-self: stretch !important;\r\n }\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .flex-lg-row {\r\n flex-direction: row !important;\r\n }\r\n\r\n .flex-lg-column {\r\n flex-direction: column !important;\r\n }\r\n\r\n .flex-lg-row-reverse {\r\n flex-direction: row-reverse !important;\r\n }\r\n\r\n .flex-lg-column-reverse {\r\n flex-direction: column-reverse !important;\r\n }\r\n\r\n .flex-lg-wrap {\r\n flex-wrap: wrap !important;\r\n }\r\n\r\n .flex-lg-nowrap {\r\n flex-wrap: nowrap !important;\r\n }\r\n\r\n .flex-lg-wrap-reverse {\r\n flex-wrap: wrap-reverse !important;\r\n }\r\n\r\n .flex-lg-fill {\r\n flex: 1 1 auto !important;\r\n }\r\n\r\n .flex-lg-grow-0 {\r\n flex-grow: 0 !important;\r\n }\r\n\r\n .flex-lg-grow-1 {\r\n flex-grow: 1 !important;\r\n }\r\n\r\n .flex-lg-shrink-0 {\r\n flex-shrink: 0 !important;\r\n }\r\n\r\n .flex-lg-shrink-1 {\r\n flex-shrink: 1 !important;\r\n }\r\n\r\n .justify-content-lg-start {\r\n justify-content: flex-start !important;\r\n }\r\n\r\n .justify-content-lg-end {\r\n justify-content: flex-end !important;\r\n }\r\n\r\n .justify-content-lg-center {\r\n justify-content: center !important;\r\n }\r\n\r\n .justify-content-lg-between {\r\n justify-content: space-between !important;\r\n }\r\n\r\n .justify-content-lg-around {\r\n justify-content: space-around !important;\r\n }\r\n\r\n .align-items-lg-start {\r\n align-items: flex-start !important;\r\n }\r\n\r\n .align-items-lg-end {\r\n align-items: flex-end !important;\r\n }\r\n\r\n .align-items-lg-center {\r\n align-items: center !important;\r\n }\r\n\r\n .align-items-lg-baseline {\r\n align-items: baseline !important;\r\n }\r\n\r\n .align-items-lg-stretch {\r\n align-items: stretch !important;\r\n }\r\n\r\n .align-content-lg-start {\r\n align-content: flex-start !important;\r\n }\r\n\r\n .align-content-lg-end {\r\n align-content: flex-end !important;\r\n }\r\n\r\n .align-content-lg-center {\r\n align-content: center !important;\r\n }\r\n\r\n .align-content-lg-between {\r\n align-content: space-between !important;\r\n }\r\n\r\n .align-content-lg-around {\r\n align-content: space-around !important;\r\n }\r\n\r\n .align-content-lg-stretch {\r\n align-content: stretch !important;\r\n }\r\n\r\n .align-self-lg-auto {\r\n align-self: auto !important;\r\n }\r\n\r\n .align-self-lg-start {\r\n align-self: flex-start !important;\r\n }\r\n\r\n .align-self-lg-end {\r\n align-self: flex-end !important;\r\n }\r\n\r\n .align-self-lg-center {\r\n align-self: center !important;\r\n }\r\n\r\n .align-self-lg-baseline {\r\n align-self: baseline !important;\r\n }\r\n\r\n .align-self-lg-stretch {\r\n align-self: stretch !important;\r\n }\r\n }\r\n\r\n @media (min-width: 1200px) {\r\n .flex-xl-row {\r\n flex-direction: row !important;\r\n }\r\n\r\n .flex-xl-column {\r\n flex-direction: column !important;\r\n }\r\n\r\n .flex-xl-row-reverse {\r\n flex-direction: row-reverse !important;\r\n }\r\n\r\n .flex-xl-column-reverse {\r\n flex-direction: column-reverse !important;\r\n }\r\n\r\n .flex-xl-wrap {\r\n flex-wrap: wrap !important;\r\n }\r\n\r\n .flex-xl-nowrap {\r\n flex-wrap: nowrap !important;\r\n }\r\n\r\n .flex-xl-wrap-reverse {\r\n flex-wrap: wrap-reverse !important;\r\n }\r\n\r\n .flex-xl-fill {\r\n flex: 1 1 auto !important;\r\n }\r\n\r\n .flex-xl-grow-0 {\r\n flex-grow: 0 !important;\r\n }\r\n\r\n .flex-xl-grow-1 {\r\n flex-grow: 1 !important;\r\n }\r\n\r\n .flex-xl-shrink-0 {\r\n flex-shrink: 0 !important;\r\n }\r\n\r\n .flex-xl-shrink-1 {\r\n flex-shrink: 1 !important;\r\n }\r\n\r\n .justify-content-xl-start {\r\n justify-content: flex-start !important;\r\n }\r\n\r\n .justify-content-xl-end {\r\n justify-content: flex-end !important;\r\n }\r\n\r\n .justify-content-xl-center {\r\n justify-content: center !important;\r\n }\r\n\r\n .justify-content-xl-between {\r\n justify-content: space-between !important;\r\n }\r\n\r\n .justify-content-xl-around {\r\n justify-content: space-around !important;\r\n }\r\n\r\n .align-items-xl-start {\r\n align-items: flex-start !important;\r\n }\r\n\r\n .align-items-xl-end {\r\n align-items: flex-end !important;\r\n }\r\n\r\n .align-items-xl-center {\r\n align-items: center !important;\r\n }\r\n\r\n .align-items-xl-baseline {\r\n align-items: baseline !important;\r\n }\r\n\r\n .align-items-xl-stretch {\r\n align-items: stretch !important;\r\n }\r\n\r\n .align-content-xl-start {\r\n align-content: flex-start !important;\r\n }\r\n\r\n .align-content-xl-end {\r\n align-content: flex-end !important;\r\n }\r\n\r\n .align-content-xl-center {\r\n align-content: center !important;\r\n }\r\n\r\n .align-content-xl-between {\r\n align-content: space-between !important;\r\n }\r\n\r\n .align-content-xl-around {\r\n align-content: space-around !important;\r\n }\r\n\r\n .align-content-xl-stretch {\r\n align-content: stretch !important;\r\n }\r\n\r\n .align-self-xl-auto {\r\n align-self: auto !important;\r\n }\r\n\r\n .align-self-xl-start {\r\n align-self: flex-start !important;\r\n }\r\n\r\n .align-self-xl-end {\r\n align-self: flex-end !important;\r\n }\r\n\r\n .align-self-xl-center {\r\n align-self: center !important;\r\n }\r\n\r\n .align-self-xl-baseline {\r\n align-self: baseline !important;\r\n }\r\n\r\n .align-self-xl-stretch {\r\n align-self: stretch !important;\r\n }\r\n }\r\n\r\n .float-left {\r\n float: left !important;\r\n }\r\n\r\n .float-right {\r\n float: right !important;\r\n }\r\n\r\n .float-none {\r\n float: none !important;\r\n }\r\n\r\n @media (min-width: 576px) {\r\n .float-sm-left {\r\n float: left !important;\r\n }\r\n\r\n .float-sm-right {\r\n float: right !important;\r\n }\r\n\r\n .float-sm-none {\r\n float: none !important;\r\n }\r\n }\r\n\r\n @media (min-width: 768px) {\r\n .float-md-left {\r\n float: left !important;\r\n }\r\n\r\n .float-md-right {\r\n float: right !important;\r\n }\r\n\r\n .float-md-none {\r\n float: none !important;\r\n }\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .float-lg-left {\r\n float: left !important;\r\n }\r\n\r\n .float-lg-right {\r\n float: right !important;\r\n }\r\n\r\n .float-lg-none {\r\n float: none !important;\r\n }\r\n }\r\n\r\n @media (min-width: 1200px) {\r\n .float-xl-left {\r\n float: left !important;\r\n }\r\n\r\n .float-xl-right {\r\n float: right !important;\r\n }\r\n\r\n .float-xl-none {\r\n float: none !important;\r\n }\r\n }\r\n\r\n .position-static {\r\n position: static !important;\r\n }\r\n\r\n .position-relative {\r\n position: relative !important;\r\n }\r\n\r\n .position-absolute {\r\n position: absolute !important;\r\n }\r\n\r\n .position-fixed {\r\n position: fixed !important;\r\n }\r\n\r\n .position-sticky {\r\n position: sticky !important;\r\n }\r\n\r\n .fixed-top {\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n left: 0;\r\n z-index: 1030;\r\n }\r\n\r\n .fixed-bottom {\r\n position: fixed;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1030;\r\n }\r\n\r\n @supports (position: sticky) {\r\n .sticky-top {\r\n position: sticky;\r\n top: 0;\r\n z-index: 1020;\r\n }\r\n }\r\n\r\n .sr-only {\r\n position: absolute;\r\n width: 1px;\r\n height: 1px;\r\n padding: 0;\r\n overflow: hidden;\r\n clip: rect(0, 0, 0, 0);\r\n white-space: nowrap;\r\n border: 0;\r\n }\r\n\r\n .sr-only-focusable:active,\r\n .sr-only-focusable:focus {\r\n position: static;\r\n width: auto;\r\n height: auto;\r\n overflow: visible;\r\n clip: auto;\r\n white-space: normal;\r\n }\r\n\r\n .shadow-sm {\r\n box-shadow: 0 0 0.5rem rgba(136, 152, 170, 0.075) !important;\r\n }\r\n\r\n .shadow,\r\n .card-profile-image img {\r\n box-shadow: 0 0 2rem 0 rgba(136, 152, 170, 0.15) !important;\r\n }\r\n\r\n .shadow-lg {\r\n box-shadow: 0 0 3rem rgba(136, 152, 170, 0.175) !important;\r\n }\r\n\r\n .shadow-none {\r\n box-shadow: none !important;\r\n }\r\n\r\n .w-25 {\r\n width: 25% !important;\r\n }\r\n\r\n .w-50 {\r\n width: 50% !important;\r\n }\r\n\r\n .w-75 {\r\n width: 75% !important;\r\n }\r\n\r\n .w-100 {\r\n width: 100% !important;\r\n }\r\n\r\n .w-auto {\r\n width: auto !important;\r\n }\r\n\r\n .h-25 {\r\n height: 25% !important;\r\n }\r\n\r\n .h-50 {\r\n height: 50% !important;\r\n }\r\n\r\n .h-75 {\r\n height: 75% !important;\r\n }\r\n\r\n .h-100 {\r\n height: 100% !important;\r\n }\r\n\r\n .h-auto {\r\n height: auto !important;\r\n }\r\n\r\n .mw-100 {\r\n max-width: 100% !important;\r\n }\r\n\r\n .mh-100 {\r\n max-height: 100% !important;\r\n }\r\n\r\n .m-0 {\r\n margin: 0 !important;\r\n }\r\n\r\n .mt-0,\r\n .my-0 {\r\n margin-top: 0 !important;\r\n }\r\n\r\n .mr-0,\r\n .mx-0 {\r\n margin-right: 0 !important;\r\n }\r\n\r\n .mb-0,\r\n .my-0 {\r\n margin-bottom: 0 !important;\r\n }\r\n\r\n .ml-0,\r\n .mx-0 {\r\n margin-left: 0 !important;\r\n }\r\n\r\n .m-1 {\r\n margin: 0.25rem !important;\r\n }\r\n\r\n .mt-1,\r\n .my-1 {\r\n margin-top: 0.25rem !important;\r\n }\r\n\r\n .mr-1,\r\n .mx-1 {\r\n margin-right: 0.25rem !important;\r\n }\r\n\r\n .mb-1,\r\n .my-1 {\r\n margin-bottom: 0.25rem !important;\r\n }\r\n\r\n .ml-1,\r\n .mx-1 {\r\n margin-left: 0.25rem !important;\r\n }\r\n\r\n .m-2 {\r\n margin: 0.5rem !important;\r\n }\r\n\r\n .mt-2,\r\n .my-2 {\r\n margin-top: 0.5rem !important;\r\n }\r\n\r\n .mr-2,\r\n .mx-2 {\r\n margin-right: 0.5rem !important;\r\n }\r\n\r\n .mb-2,\r\n .my-2 {\r\n margin-bottom: 0.5rem !important;\r\n }\r\n\r\n .ml-2,\r\n .mx-2 {\r\n margin-left: 0.5rem !important;\r\n }\r\n\r\n .m-3 {\r\n margin: 1rem !important;\r\n }\r\n\r\n .mt-3,\r\n .my-3 {\r\n margin-top: 1rem !important;\r\n }\r\n\r\n .mr-3,\r\n .mx-3 {\r\n margin-right: 1rem !important;\r\n }\r\n\r\n .mb-3,\r\n .my-3 {\r\n margin-bottom: 1rem !important;\r\n }\r\n\r\n .ml-3,\r\n .mx-3 {\r\n margin-left: 1rem !important;\r\n }\r\n\r\n .m-4 {\r\n margin: 1.5rem !important;\r\n }\r\n\r\n .mt-4,\r\n .my-4 {\r\n margin-top: 1.5rem !important;\r\n }\r\n\r\n .mr-4,\r\n .mx-4 {\r\n margin-right: 1.5rem !important;\r\n }\r\n\r\n .mb-4,\r\n .my-4 {\r\n margin-bottom: 1.5rem !important;\r\n }\r\n\r\n .ml-4,\r\n .mx-4 {\r\n margin-left: 1.5rem !important;\r\n }\r\n\r\n .m-5 {\r\n margin: 3rem !important;\r\n }\r\n\r\n .mt-5,\r\n .my-5 {\r\n margin-top: 3rem !important;\r\n }\r\n\r\n .mr-5,\r\n .mx-5 {\r\n margin-right: 3rem !important;\r\n }\r\n\r\n .mb-5,\r\n .my-5 {\r\n margin-bottom: 3rem !important;\r\n }\r\n\r\n .ml-5,\r\n .mx-5 {\r\n margin-left: 3rem !important;\r\n }\r\n\r\n .m--9 {\r\n margin: -10rem !important;\r\n }\r\n\r\n .mt--9,\r\n .my--9 {\r\n margin-top: -10rem !important;\r\n }\r\n\r\n .mr--9,\r\n .mx--9 {\r\n margin-right: -10rem !important;\r\n }\r\n\r\n .mb--9,\r\n .my--9 {\r\n margin-bottom: -10rem !important;\r\n }\r\n\r\n .ml--9,\r\n .mx--9 {\r\n margin-left: -10rem !important;\r\n }\r\n\r\n .m--8 {\r\n margin: -8rem !important;\r\n }\r\n\r\n .mt--8,\r\n .my--8 {\r\n margin-top: -8rem !important;\r\n }\r\n\r\n .mr--8,\r\n .mx--8 {\r\n margin-right: -8rem !important;\r\n }\r\n\r\n .mb--8,\r\n .my--8 {\r\n margin-bottom: -8rem !important;\r\n }\r\n\r\n .ml--8,\r\n .mx--8 {\r\n margin-left: -8rem !important;\r\n }\r\n\r\n .m--7 {\r\n margin: -6rem !important;\r\n }\r\n\r\n .mt--7,\r\n .my--7 {\r\n margin-top: -6rem !important;\r\n }\r\n\r\n .mr--7,\r\n .mx--7 {\r\n margin-right: -6rem !important;\r\n }\r\n\r\n .mb--7,\r\n .my--7 {\r\n margin-bottom: -6rem !important;\r\n }\r\n\r\n .ml--7,\r\n .mx--7 {\r\n margin-left: -6rem !important;\r\n }\r\n\r\n .m--6 {\r\n margin: -4.5rem !important;\r\n }\r\n\r\n .mt--6,\r\n .my--6 {\r\n margin-top: -4.5rem !important;\r\n }\r\n\r\n .mr--6,\r\n .mx--6 {\r\n margin-right: -4.5rem !important;\r\n }\r\n\r\n .mb--6,\r\n .my--6 {\r\n margin-bottom: -4.5rem !important;\r\n }\r\n\r\n .ml--6,\r\n .mx--6 {\r\n margin-left: -4.5rem !important;\r\n }\r\n\r\n .m--5 {\r\n margin: -3rem !important;\r\n }\r\n\r\n .mt--5,\r\n .my--5 {\r\n margin-top: -3rem !important;\r\n }\r\n\r\n .mr--5,\r\n .mx--5 {\r\n margin-right: -3rem !important;\r\n }\r\n\r\n .mb--5,\r\n .my--5 {\r\n margin-bottom: -3rem !important;\r\n }\r\n\r\n .ml--5,\r\n .mx--5 {\r\n margin-left: -3rem !important;\r\n }\r\n\r\n .m--4 {\r\n margin: -1.5rem !important;\r\n }\r\n\r\n .mt--4,\r\n .my--4 {\r\n margin-top: -1.5rem !important;\r\n }\r\n\r\n .mr--4,\r\n .mx--4 {\r\n margin-right: -1.5rem !important;\r\n }\r\n\r\n .mb--4,\r\n .my--4 {\r\n margin-bottom: -1.5rem !important;\r\n }\r\n\r\n .ml--4,\r\n .mx--4 {\r\n margin-left: -1.5rem !important;\r\n }\r\n\r\n .m--3 {\r\n margin: -1rem !important;\r\n }\r\n\r\n .mt--3,\r\n .my--3 {\r\n margin-top: -1rem !important;\r\n }\r\n\r\n .mr--3,\r\n .mx--3 {\r\n margin-right: -1rem !important;\r\n }\r\n\r\n .mb--3,\r\n .my--3 {\r\n margin-bottom: -1rem !important;\r\n }\r\n\r\n .ml--3,\r\n .mx--3 {\r\n margin-left: -1rem !important;\r\n }\r\n\r\n .m--2 {\r\n margin: -0.5rem !important;\r\n }\r\n\r\n .mt--2,\r\n .my--2 {\r\n margin-top: -0.5rem !important;\r\n }\r\n\r\n .mr--2,\r\n .mx--2 {\r\n margin-right: -0.5rem !important;\r\n }\r\n\r\n .mb--2,\r\n .my--2 {\r\n margin-bottom: -0.5rem !important;\r\n }\r\n\r\n .ml--2,\r\n .mx--2 {\r\n margin-left: -0.5rem !important;\r\n }\r\n\r\n .m--1 {\r\n margin: -0.25rem !important;\r\n }\r\n\r\n .mt--1,\r\n .my--1 {\r\n margin-top: -0.25rem !important;\r\n }\r\n\r\n .mr--1,\r\n .mx--1 {\r\n margin-right: -0.25rem !important;\r\n }\r\n\r\n .mb--1,\r\n .my--1 {\r\n margin-bottom: -0.25rem !important;\r\n }\r\n\r\n .ml--1,\r\n .mx--1 {\r\n margin-left: -0.25rem !important;\r\n }\r\n\r\n .m-6 {\r\n margin: 4.5rem !important;\r\n }\r\n\r\n .mt-6,\r\n .my-6 {\r\n margin-top: 4.5rem !important;\r\n }\r\n\r\n .mr-6,\r\n .mx-6 {\r\n margin-right: 4.5rem !important;\r\n }\r\n\r\n .mb-6,\r\n .my-6 {\r\n margin-bottom: 4.5rem !important;\r\n }\r\n\r\n .ml-6,\r\n .mx-6 {\r\n margin-left: 4.5rem !important;\r\n }\r\n\r\n .m-7 {\r\n margin: 6rem !important;\r\n }\r\n\r\n .mt-7,\r\n .my-7 {\r\n margin-top: 6rem !important;\r\n }\r\n\r\n .mr-7,\r\n .mx-7 {\r\n margin-right: 6rem !important;\r\n }\r\n\r\n .mb-7,\r\n .my-7 {\r\n margin-bottom: 6rem !important;\r\n }\r\n\r\n .ml-7,\r\n .mx-7 {\r\n margin-left: 6rem !important;\r\n }\r\n\r\n .m-8 {\r\n margin: 8rem !important;\r\n }\r\n\r\n .mt-8,\r\n .my-8 {\r\n margin-top: 8rem !important;\r\n }\r\n\r\n .mr-8,\r\n .mx-8 {\r\n margin-right: 8rem !important;\r\n }\r\n\r\n .mb-8,\r\n .my-8 {\r\n margin-bottom: 8rem !important;\r\n }\r\n\r\n .ml-8,\r\n .mx-8 {\r\n margin-left: 8rem !important;\r\n }\r\n\r\n .m-9 {\r\n margin: 10rem !important;\r\n }\r\n\r\n .mt-9,\r\n .my-9 {\r\n margin-top: 10rem !important;\r\n }\r\n\r\n .mr-9,\r\n .mx-9 {\r\n margin-right: 10rem !important;\r\n }\r\n\r\n .mb-9,\r\n .my-9 {\r\n margin-bottom: 10rem !important;\r\n }\r\n\r\n .ml-9,\r\n .mx-9 {\r\n margin-left: 10rem !important;\r\n }\r\n\r\n .p-0 {\r\n padding: 0 !important;\r\n }\r\n\r\n .pt-0,\r\n .py-0 {\r\n padding-top: 0 !important;\r\n }\r\n\r\n .pr-0,\r\n .px-0 {\r\n padding-right: 0 !important;\r\n }\r\n\r\n .pb-0,\r\n .py-0 {\r\n padding-bottom: 0 !important;\r\n }\r\n\r\n .pl-0,\r\n .px-0 {\r\n padding-left: 0 !important;\r\n }\r\n\r\n .p-1 {\r\n padding: 0.25rem !important;\r\n }\r\n\r\n .pt-1,\r\n .py-1 {\r\n padding-top: 0.25rem !important;\r\n }\r\n\r\n .pr-1,\r\n .px-1 {\r\n padding-right: 0.25rem !important;\r\n }\r\n\r\n .pb-1,\r\n .py-1 {\r\n padding-bottom: 0.25rem !important;\r\n }\r\n\r\n .pl-1,\r\n .px-1 {\r\n padding-left: 0.25rem !important;\r\n }\r\n\r\n .p-2 {\r\n padding: 0.5rem !important;\r\n }\r\n\r\n .pt-2,\r\n .py-2 {\r\n padding-top: 0.5rem !important;\r\n }\r\n\r\n .pr-2,\r\n .px-2 {\r\n padding-right: 0.5rem !important;\r\n }\r\n\r\n .pb-2,\r\n .py-2 {\r\n padding-bottom: 0.5rem !important;\r\n }\r\n\r\n .pl-2,\r\n .px-2 {\r\n padding-left: 0.5rem !important;\r\n }\r\n\r\n .p-3 {\r\n padding: 1rem !important;\r\n }\r\n\r\n .pt-3,\r\n .py-3 {\r\n padding-top: 1rem !important;\r\n }\r\n\r\n .pr-3,\r\n .px-3 {\r\n padding-right: 1rem !important;\r\n }\r\n\r\n .pb-3,\r\n .py-3 {\r\n padding-bottom: 1rem !important;\r\n }\r\n\r\n .pl-3,\r\n .px-3 {\r\n padding-left: 1rem !important;\r\n }\r\n\r\n .p-4 {\r\n padding: 1.5rem !important;\r\n }\r\n\r\n .pt-4,\r\n .py-4 {\r\n padding-top: 1.5rem !important;\r\n }\r\n\r\n .pr-4,\r\n .px-4 {\r\n padding-right: 1.5rem !important;\r\n }\r\n\r\n .pb-4,\r\n .py-4 {\r\n padding-bottom: 1.5rem !important;\r\n }\r\n\r\n .pl-4,\r\n .px-4 {\r\n padding-left: 1.5rem !important;\r\n }\r\n\r\n .p-5 {\r\n padding: 3rem !important;\r\n }\r\n\r\n .pt-5,\r\n .py-5 {\r\n padding-top: 3rem !important;\r\n }\r\n\r\n .pr-5,\r\n .px-5 {\r\n padding-right: 3rem !important;\r\n }\r\n\r\n .pb-5,\r\n .py-5 {\r\n padding-bottom: 3rem !important;\r\n }\r\n\r\n .pl-5,\r\n .px-5 {\r\n padding-left: 3rem !important;\r\n }\r\n\r\n .p--9 {\r\n padding: -10rem !important;\r\n }\r\n\r\n .pt--9,\r\n .py--9 {\r\n padding-top: -10rem !important;\r\n }\r\n\r\n .pr--9,\r\n .px--9 {\r\n padding-right: -10rem !important;\r\n }\r\n\r\n .pb--9,\r\n .py--9 {\r\n padding-bottom: -10rem !important;\r\n }\r\n\r\n .pl--9,\r\n .px--9 {\r\n padding-left: -10rem !important;\r\n }\r\n\r\n .p--8 {\r\n padding: -8rem !important;\r\n }\r\n\r\n .pt--8,\r\n .py--8 {\r\n padding-top: -8rem !important;\r\n }\r\n\r\n .pr--8,\r\n .px--8 {\r\n padding-right: -8rem !important;\r\n }\r\n\r\n .pb--8,\r\n .py--8 {\r\n padding-bottom: -8rem !important;\r\n }\r\n\r\n .pl--8,\r\n .px--8 {\r\n padding-left: -8rem !important;\r\n }\r\n\r\n .p--7 {\r\n padding: -6rem !important;\r\n }\r\n\r\n .pt--7,\r\n .py--7 {\r\n padding-top: -6rem !important;\r\n }\r\n\r\n .pr--7,\r\n .px--7 {\r\n padding-right: -6rem !important;\r\n }\r\n\r\n .pb--7,\r\n .py--7 {\r\n padding-bottom: -6rem !important;\r\n }\r\n\r\n .pl--7,\r\n .px--7 {\r\n padding-left: -6rem !important;\r\n }\r\n\r\n .p--6 {\r\n padding: -4.5rem !important;\r\n }\r\n\r\n .pt--6,\r\n .py--6 {\r\n padding-top: -4.5rem !important;\r\n }\r\n\r\n .pr--6,\r\n .px--6 {\r\n padding-right: -4.5rem !important;\r\n }\r\n\r\n .pb--6,\r\n .py--6 {\r\n padding-bottom: -4.5rem !important;\r\n }\r\n\r\n .pl--6,\r\n .px--6 {\r\n padding-left: -4.5rem !important;\r\n }\r\n\r\n .p--5 {\r\n padding: -3rem !important;\r\n }\r\n\r\n .pt--5,\r\n .py--5 {\r\n padding-top: -3rem !important;\r\n }\r\n\r\n .pr--5,\r\n .px--5 {\r\n padding-right: -3rem !important;\r\n }\r\n\r\n .pb--5,\r\n .py--5 {\r\n padding-bottom: -3rem !important;\r\n }\r\n\r\n .pl--5,\r\n .px--5 {\r\n padding-left: -3rem !important;\r\n }\r\n\r\n .p--4 {\r\n padding: -1.5rem !important;\r\n }\r\n\r\n .pt--4,\r\n .py--4 {\r\n padding-top: -1.5rem !important;\r\n }\r\n\r\n .pr--4,\r\n .px--4 {\r\n padding-right: -1.5rem !important;\r\n }\r\n\r\n .pb--4,\r\n .py--4 {\r\n padding-bottom: -1.5rem !important;\r\n }\r\n\r\n .pl--4,\r\n .px--4 {\r\n padding-left: -1.5rem !important;\r\n }\r\n\r\n .p--3 {\r\n padding: -1rem !important;\r\n }\r\n\r\n .pt--3,\r\n .py--3 {\r\n padding-top: -1rem !important;\r\n }\r\n\r\n .pr--3,\r\n .px--3 {\r\n padding-right: -1rem !important;\r\n }\r\n\r\n .pb--3,\r\n .py--3 {\r\n padding-bottom: -1rem !important;\r\n }\r\n\r\n .pl--3,\r\n .px--3 {\r\n padding-left: -1rem !important;\r\n }\r\n\r\n .p--2 {\r\n padding: -0.5rem !important;\r\n }\r\n\r\n .pt--2,\r\n .py--2 {\r\n padding-top: -0.5rem !important;\r\n }\r\n\r\n .pr--2,\r\n .px--2 {\r\n padding-right: -0.5rem !important;\r\n }\r\n\r\n .pb--2,\r\n .py--2 {\r\n padding-bottom: -0.5rem !important;\r\n }\r\n\r\n .pl--2,\r\n .px--2 {\r\n padding-left: -0.5rem !important;\r\n }\r\n\r\n .p--1 {\r\n padding: -0.25rem !important;\r\n }\r\n\r\n .pt--1,\r\n .py--1 {\r\n padding-top: -0.25rem !important;\r\n }\r\n\r\n .pr--1,\r\n .px--1 {\r\n padding-right: -0.25rem !important;\r\n }\r\n\r\n .pb--1,\r\n .py--1 {\r\n padding-bottom: -0.25rem !important;\r\n }\r\n\r\n .pl--1,\r\n .px--1 {\r\n padding-left: -0.25rem !important;\r\n }\r\n\r\n .p-6 {\r\n padding: 4.5rem !important;\r\n }\r\n\r\n .pt-6,\r\n .py-6 {\r\n padding-top: 4.5rem !important;\r\n }\r\n\r\n .pr-6,\r\n .px-6 {\r\n padding-right: 4.5rem !important;\r\n }\r\n\r\n .pb-6,\r\n .py-6 {\r\n padding-bottom: 4.5rem !important;\r\n }\r\n\r\n .pl-6,\r\n .px-6 {\r\n padding-left: 4.5rem !important;\r\n }\r\n\r\n .p-7 {\r\n padding: 6rem !important;\r\n }\r\n\r\n .pt-7,\r\n .py-7 {\r\n padding-top: 6rem !important;\r\n }\r\n\r\n .pr-7,\r\n .px-7 {\r\n padding-right: 6rem !important;\r\n }\r\n\r\n .pb-7,\r\n .py-7 {\r\n padding-bottom: 6rem !important;\r\n }\r\n\r\n .pl-7,\r\n .px-7 {\r\n padding-left: 6rem !important;\r\n }\r\n\r\n .p-8 {\r\n padding: 8rem !important;\r\n }\r\n\r\n .pt-8,\r\n .py-8 {\r\n padding-top: 8rem !important;\r\n }\r\n\r\n .pr-8,\r\n .px-8 {\r\n padding-right: 8rem !important;\r\n }\r\n\r\n .pb-8,\r\n .py-8 {\r\n padding-bottom: 8rem !important;\r\n }\r\n\r\n .pl-8,\r\n .px-8 {\r\n padding-left: 8rem !important;\r\n }\r\n\r\n .p-9 {\r\n padding: 10rem !important;\r\n }\r\n\r\n .pt-9,\r\n .py-9 {\r\n padding-top: 10rem !important;\r\n }\r\n\r\n .pr-9,\r\n .px-9 {\r\n padding-right: 10rem !important;\r\n }\r\n\r\n .pb-9,\r\n .py-9 {\r\n padding-bottom: 10rem !important;\r\n }\r\n\r\n .pl-9,\r\n .px-9 {\r\n padding-left: 10rem !important;\r\n }\r\n\r\n .m-auto {\r\n margin: auto !important;\r\n }\r\n\r\n .mt-auto,\r\n .my-auto {\r\n margin-top: auto !important;\r\n }\r\n\r\n .mr-auto,\r\n .mx-auto {\r\n margin-right: auto !important;\r\n }\r\n\r\n .mb-auto,\r\n .my-auto {\r\n margin-bottom: auto !important;\r\n }\r\n\r\n .ml-auto,\r\n .mx-auto {\r\n margin-left: auto !important;\r\n }\r\n\r\n @media (min-width: 576px) {\r\n .m-sm-0 {\r\n margin: 0 !important;\r\n }\r\n\r\n .mt-sm-0,\r\n .my-sm-0 {\r\n margin-top: 0 !important;\r\n }\r\n\r\n .mr-sm-0,\r\n .mx-sm-0 {\r\n margin-right: 0 !important;\r\n }\r\n\r\n .mb-sm-0,\r\n .my-sm-0 {\r\n margin-bottom: 0 !important;\r\n }\r\n\r\n .ml-sm-0,\r\n .mx-sm-0 {\r\n margin-left: 0 !important;\r\n }\r\n\r\n .m-sm-1 {\r\n margin: 0.25rem !important;\r\n }\r\n\r\n .mt-sm-1,\r\n .my-sm-1 {\r\n margin-top: 0.25rem !important;\r\n }\r\n\r\n .mr-sm-1,\r\n .mx-sm-1 {\r\n margin-right: 0.25rem !important;\r\n }\r\n\r\n .mb-sm-1,\r\n .my-sm-1 {\r\n margin-bottom: 0.25rem !important;\r\n }\r\n\r\n .ml-sm-1,\r\n .mx-sm-1 {\r\n margin-left: 0.25rem !important;\r\n }\r\n\r\n .m-sm-2 {\r\n margin: 0.5rem !important;\r\n }\r\n\r\n .mt-sm-2,\r\n .my-sm-2 {\r\n margin-top: 0.5rem !important;\r\n }\r\n\r\n .mr-sm-2,\r\n .mx-sm-2 {\r\n margin-right: 0.5rem !important;\r\n }\r\n\r\n .mb-sm-2,\r\n .my-sm-2 {\r\n margin-bottom: 0.5rem !important;\r\n }\r\n\r\n .ml-sm-2,\r\n .mx-sm-2 {\r\n margin-left: 0.5rem !important;\r\n }\r\n\r\n .m-sm-3 {\r\n margin: 1rem !important;\r\n }\r\n\r\n .mt-sm-3,\r\n .my-sm-3 {\r\n margin-top: 1rem !important;\r\n }\r\n\r\n .mr-sm-3,\r\n .mx-sm-3 {\r\n margin-right: 1rem !important;\r\n }\r\n\r\n .mb-sm-3,\r\n .my-sm-3 {\r\n margin-bottom: 1rem !important;\r\n }\r\n\r\n .ml-sm-3,\r\n .mx-sm-3 {\r\n margin-left: 1rem !important;\r\n }\r\n\r\n .m-sm-4 {\r\n margin: 1.5rem !important;\r\n }\r\n\r\n .mt-sm-4,\r\n .my-sm-4 {\r\n margin-top: 1.5rem !important;\r\n }\r\n\r\n .mr-sm-4,\r\n .mx-sm-4 {\r\n margin-right: 1.5rem !important;\r\n }\r\n\r\n .mb-sm-4,\r\n .my-sm-4 {\r\n margin-bottom: 1.5rem !important;\r\n }\r\n\r\n .ml-sm-4,\r\n .mx-sm-4 {\r\n margin-left: 1.5rem !important;\r\n }\r\n\r\n .m-sm-5 {\r\n margin: 3rem !important;\r\n }\r\n\r\n .mt-sm-5,\r\n .my-sm-5 {\r\n margin-top: 3rem !important;\r\n }\r\n\r\n .mr-sm-5,\r\n .mx-sm-5 {\r\n margin-right: 3rem !important;\r\n }\r\n\r\n .mb-sm-5,\r\n .my-sm-5 {\r\n margin-bottom: 3rem !important;\r\n }\r\n\r\n .ml-sm-5,\r\n .mx-sm-5 {\r\n margin-left: 3rem !important;\r\n }\r\n\r\n .m-sm--9 {\r\n margin: -10rem !important;\r\n }\r\n\r\n .mt-sm--9,\r\n .my-sm--9 {\r\n margin-top: -10rem !important;\r\n }\r\n\r\n .mr-sm--9,\r\n .mx-sm--9 {\r\n margin-right: -10rem !important;\r\n }\r\n\r\n .mb-sm--9,\r\n .my-sm--9 {\r\n margin-bottom: -10rem !important;\r\n }\r\n\r\n .ml-sm--9,\r\n .mx-sm--9 {\r\n margin-left: -10rem !important;\r\n }\r\n\r\n .m-sm--8 {\r\n margin: -8rem !important;\r\n }\r\n\r\n .mt-sm--8,\r\n .my-sm--8 {\r\n margin-top: -8rem !important;\r\n }\r\n\r\n .mr-sm--8,\r\n .mx-sm--8 {\r\n margin-right: -8rem !important;\r\n }\r\n\r\n .mb-sm--8,\r\n .my-sm--8 {\r\n margin-bottom: -8rem !important;\r\n }\r\n\r\n .ml-sm--8,\r\n .mx-sm--8 {\r\n margin-left: -8rem !important;\r\n }\r\n\r\n .m-sm--7 {\r\n margin: -6rem !important;\r\n }\r\n\r\n .mt-sm--7,\r\n .my-sm--7 {\r\n margin-top: -6rem !important;\r\n }\r\n\r\n .mr-sm--7,\r\n .mx-sm--7 {\r\n margin-right: -6rem !important;\r\n }\r\n\r\n .mb-sm--7,\r\n .my-sm--7 {\r\n margin-bottom: -6rem !important;\r\n }\r\n\r\n .ml-sm--7,\r\n .mx-sm--7 {\r\n margin-left: -6rem !important;\r\n }\r\n\r\n .m-sm--6 {\r\n margin: -4.5rem !important;\r\n }\r\n\r\n .mt-sm--6,\r\n .my-sm--6 {\r\n margin-top: -4.5rem !important;\r\n }\r\n\r\n .mr-sm--6,\r\n .mx-sm--6 {\r\n margin-right: -4.5rem !important;\r\n }\r\n\r\n .mb-sm--6,\r\n .my-sm--6 {\r\n margin-bottom: -4.5rem !important;\r\n }\r\n\r\n .ml-sm--6,\r\n .mx-sm--6 {\r\n margin-left: -4.5rem !important;\r\n }\r\n\r\n .m-sm--5 {\r\n margin: -3rem !important;\r\n }\r\n\r\n .mt-sm--5,\r\n .my-sm--5 {\r\n margin-top: -3rem !important;\r\n }\r\n\r\n .mr-sm--5,\r\n .mx-sm--5 {\r\n margin-right: -3rem !important;\r\n }\r\n\r\n .mb-sm--5,\r\n .my-sm--5 {\r\n margin-bottom: -3rem !important;\r\n }\r\n\r\n .ml-sm--5,\r\n .mx-sm--5 {\r\n margin-left: -3rem !important;\r\n }\r\n\r\n .m-sm--4 {\r\n margin: -1.5rem !important;\r\n }\r\n\r\n .mt-sm--4,\r\n .my-sm--4 {\r\n margin-top: -1.5rem !important;\r\n }\r\n\r\n .mr-sm--4,\r\n .mx-sm--4 {\r\n margin-right: -1.5rem !important;\r\n }\r\n\r\n .mb-sm--4,\r\n .my-sm--4 {\r\n margin-bottom: -1.5rem !important;\r\n }\r\n\r\n .ml-sm--4,\r\n .mx-sm--4 {\r\n margin-left: -1.5rem !important;\r\n }\r\n\r\n .m-sm--3 {\r\n margin: -1rem !important;\r\n }\r\n\r\n .mt-sm--3,\r\n .my-sm--3 {\r\n margin-top: -1rem !important;\r\n }\r\n\r\n .mr-sm--3,\r\n .mx-sm--3 {\r\n margin-right: -1rem !important;\r\n }\r\n\r\n .mb-sm--3,\r\n .my-sm--3 {\r\n margin-bottom: -1rem !important;\r\n }\r\n\r\n .ml-sm--3,\r\n .mx-sm--3 {\r\n margin-left: -1rem !important;\r\n }\r\n\r\n .m-sm--2 {\r\n margin: -0.5rem !important;\r\n }\r\n\r\n .mt-sm--2,\r\n .my-sm--2 {\r\n margin-top: -0.5rem !important;\r\n }\r\n\r\n .mr-sm--2,\r\n .mx-sm--2 {\r\n margin-right: -0.5rem !important;\r\n }\r\n\r\n .mb-sm--2,\r\n .my-sm--2 {\r\n margin-bottom: -0.5rem !important;\r\n }\r\n\r\n .ml-sm--2,\r\n .mx-sm--2 {\r\n margin-left: -0.5rem !important;\r\n }\r\n\r\n .m-sm--1 {\r\n margin: -0.25rem !important;\r\n }\r\n\r\n .mt-sm--1,\r\n .my-sm--1 {\r\n margin-top: -0.25rem !important;\r\n }\r\n\r\n .mr-sm--1,\r\n .mx-sm--1 {\r\n margin-right: -0.25rem !important;\r\n }\r\n\r\n .mb-sm--1,\r\n .my-sm--1 {\r\n margin-bottom: -0.25rem !important;\r\n }\r\n\r\n .ml-sm--1,\r\n .mx-sm--1 {\r\n margin-left: -0.25rem !important;\r\n }\r\n\r\n .m-sm-6 {\r\n margin: 4.5rem !important;\r\n }\r\n\r\n .mt-sm-6,\r\n .my-sm-6 {\r\n margin-top: 4.5rem !important;\r\n }\r\n\r\n .mr-sm-6,\r\n .mx-sm-6 {\r\n margin-right: 4.5rem !important;\r\n }\r\n\r\n .mb-sm-6,\r\n .my-sm-6 {\r\n margin-bottom: 4.5rem !important;\r\n }\r\n\r\n .ml-sm-6,\r\n .mx-sm-6 {\r\n margin-left: 4.5rem !important;\r\n }\r\n\r\n .m-sm-7 {\r\n margin: 6rem !important;\r\n }\r\n\r\n .mt-sm-7,\r\n .my-sm-7 {\r\n margin-top: 6rem !important;\r\n }\r\n\r\n .mr-sm-7,\r\n .mx-sm-7 {\r\n margin-right: 6rem !important;\r\n }\r\n\r\n .mb-sm-7,\r\n .my-sm-7 {\r\n margin-bottom: 6rem !important;\r\n }\r\n\r\n .ml-sm-7,\r\n .mx-sm-7 {\r\n margin-left: 6rem !important;\r\n }\r\n\r\n .m-sm-8 {\r\n margin: 8rem !important;\r\n }\r\n\r\n .mt-sm-8,\r\n .my-sm-8 {\r\n margin-top: 8rem !important;\r\n }\r\n\r\n .mr-sm-8,\r\n .mx-sm-8 {\r\n margin-right: 8rem !important;\r\n }\r\n\r\n .mb-sm-8,\r\n .my-sm-8 {\r\n margin-bottom: 8rem !important;\r\n }\r\n\r\n .ml-sm-8,\r\n .mx-sm-8 {\r\n margin-left: 8rem !important;\r\n }\r\n\r\n .m-sm-9 {\r\n margin: 10rem !important;\r\n }\r\n\r\n .mt-sm-9,\r\n .my-sm-9 {\r\n margin-top: 10rem !important;\r\n }\r\n\r\n .mr-sm-9,\r\n .mx-sm-9 {\r\n margin-right: 10rem !important;\r\n }\r\n\r\n .mb-sm-9,\r\n .my-sm-9 {\r\n margin-bottom: 10rem !important;\r\n }\r\n\r\n .ml-sm-9,\r\n .mx-sm-9 {\r\n margin-left: 10rem !important;\r\n }\r\n\r\n .p-sm-0 {\r\n padding: 0 !important;\r\n }\r\n\r\n .pt-sm-0,\r\n .py-sm-0 {\r\n padding-top: 0 !important;\r\n }\r\n\r\n .pr-sm-0,\r\n .px-sm-0 {\r\n padding-right: 0 !important;\r\n }\r\n\r\n .pb-sm-0,\r\n .py-sm-0 {\r\n padding-bottom: 0 !important;\r\n }\r\n\r\n .pl-sm-0,\r\n .px-sm-0 {\r\n padding-left: 0 !important;\r\n }\r\n\r\n .p-sm-1 {\r\n padding: 0.25rem !important;\r\n }\r\n\r\n .pt-sm-1,\r\n .py-sm-1 {\r\n padding-top: 0.25rem !important;\r\n }\r\n\r\n .pr-sm-1,\r\n .px-sm-1 {\r\n padding-right: 0.25rem !important;\r\n }\r\n\r\n .pb-sm-1,\r\n .py-sm-1 {\r\n padding-bottom: 0.25rem !important;\r\n }\r\n\r\n .pl-sm-1,\r\n .px-sm-1 {\r\n padding-left: 0.25rem !important;\r\n }\r\n\r\n .p-sm-2 {\r\n padding: 0.5rem !important;\r\n }\r\n\r\n .pt-sm-2,\r\n .py-sm-2 {\r\n padding-top: 0.5rem !important;\r\n }\r\n\r\n .pr-sm-2,\r\n .px-sm-2 {\r\n padding-right: 0.5rem !important;\r\n }\r\n\r\n .pb-sm-2,\r\n .py-sm-2 {\r\n padding-bottom: 0.5rem !important;\r\n }\r\n\r\n .pl-sm-2,\r\n .px-sm-2 {\r\n padding-left: 0.5rem !important;\r\n }\r\n\r\n .p-sm-3 {\r\n padding: 1rem !important;\r\n }\r\n\r\n .pt-sm-3,\r\n .py-sm-3 {\r\n padding-top: 1rem !important;\r\n }\r\n\r\n .pr-sm-3,\r\n .px-sm-3 {\r\n padding-right: 1rem !important;\r\n }\r\n\r\n .pb-sm-3,\r\n .py-sm-3 {\r\n padding-bottom: 1rem !important;\r\n }\r\n\r\n .pl-sm-3,\r\n .px-sm-3 {\r\n padding-left: 1rem !important;\r\n }\r\n\r\n .p-sm-4 {\r\n padding: 1.5rem !important;\r\n }\r\n\r\n .pt-sm-4,\r\n .py-sm-4 {\r\n padding-top: 1.5rem !important;\r\n }\r\n\r\n .pr-sm-4,\r\n .px-sm-4 {\r\n padding-right: 1.5rem !important;\r\n }\r\n\r\n .pb-sm-4,\r\n .py-sm-4 {\r\n padding-bottom: 1.5rem !important;\r\n }\r\n\r\n .pl-sm-4,\r\n .px-sm-4 {\r\n padding-left: 1.5rem !important;\r\n }\r\n\r\n .p-sm-5 {\r\n padding: 3rem !important;\r\n }\r\n\r\n .pt-sm-5,\r\n .py-sm-5 {\r\n padding-top: 3rem !important;\r\n }\r\n\r\n .pr-sm-5,\r\n .px-sm-5 {\r\n padding-right: 3rem !important;\r\n }\r\n\r\n .pb-sm-5,\r\n .py-sm-5 {\r\n padding-bottom: 3rem !important;\r\n }\r\n\r\n .pl-sm-5,\r\n .px-sm-5 {\r\n padding-left: 3rem !important;\r\n }\r\n\r\n .p-sm--9 {\r\n padding: -10rem !important;\r\n }\r\n\r\n .pt-sm--9,\r\n .py-sm--9 {\r\n padding-top: -10rem !important;\r\n }\r\n\r\n .pr-sm--9,\r\n .px-sm--9 {\r\n padding-right: -10rem !important;\r\n }\r\n\r\n .pb-sm--9,\r\n .py-sm--9 {\r\n padding-bottom: -10rem !important;\r\n }\r\n\r\n .pl-sm--9,\r\n .px-sm--9 {\r\n padding-left: -10rem !important;\r\n }\r\n\r\n .p-sm--8 {\r\n padding: -8rem !important;\r\n }\r\n\r\n .pt-sm--8,\r\n .py-sm--8 {\r\n padding-top: -8rem !important;\r\n }\r\n\r\n .pr-sm--8,\r\n .px-sm--8 {\r\n padding-right: -8rem !important;\r\n }\r\n\r\n .pb-sm--8,\r\n .py-sm--8 {\r\n padding-bottom: -8rem !important;\r\n }\r\n\r\n .pl-sm--8,\r\n .px-sm--8 {\r\n padding-left: -8rem !important;\r\n }\r\n\r\n .p-sm--7 {\r\n padding: -6rem !important;\r\n }\r\n\r\n .pt-sm--7,\r\n .py-sm--7 {\r\n padding-top: -6rem !important;\r\n }\r\n\r\n .pr-sm--7,\r\n .px-sm--7 {\r\n padding-right: -6rem !important;\r\n }\r\n\r\n .pb-sm--7,\r\n .py-sm--7 {\r\n padding-bottom: -6rem !important;\r\n }\r\n\r\n .pl-sm--7,\r\n .px-sm--7 {\r\n padding-left: -6rem !important;\r\n }\r\n\r\n .p-sm--6 {\r\n padding: -4.5rem !important;\r\n }\r\n\r\n .pt-sm--6,\r\n .py-sm--6 {\r\n padding-top: -4.5rem !important;\r\n }\r\n\r\n .pr-sm--6,\r\n .px-sm--6 {\r\n padding-right: -4.5rem !important;\r\n }\r\n\r\n .pb-sm--6,\r\n .py-sm--6 {\r\n padding-bottom: -4.5rem !important;\r\n }\r\n\r\n .pl-sm--6,\r\n .px-sm--6 {\r\n padding-left: -4.5rem !important;\r\n }\r\n\r\n .p-sm--5 {\r\n padding: -3rem !important;\r\n }\r\n\r\n .pt-sm--5,\r\n .py-sm--5 {\r\n padding-top: -3rem !important;\r\n }\r\n\r\n .pr-sm--5,\r\n .px-sm--5 {\r\n padding-right: -3rem !important;\r\n }\r\n\r\n .pb-sm--5,\r\n .py-sm--5 {\r\n padding-bottom: -3rem !important;\r\n }\r\n\r\n .pl-sm--5,\r\n .px-sm--5 {\r\n padding-left: -3rem !important;\r\n }\r\n\r\n .p-sm--4 {\r\n padding: -1.5rem !important;\r\n }\r\n\r\n .pt-sm--4,\r\n .py-sm--4 {\r\n padding-top: -1.5rem !important;\r\n }\r\n\r\n .pr-sm--4,\r\n .px-sm--4 {\r\n padding-right: -1.5rem !important;\r\n }\r\n\r\n .pb-sm--4,\r\n .py-sm--4 {\r\n padding-bottom: -1.5rem !important;\r\n }\r\n\r\n .pl-sm--4,\r\n .px-sm--4 {\r\n padding-left: -1.5rem !important;\r\n }\r\n\r\n .p-sm--3 {\r\n padding: -1rem !important;\r\n }\r\n\r\n .pt-sm--3,\r\n .py-sm--3 {\r\n padding-top: -1rem !important;\r\n }\r\n\r\n .pr-sm--3,\r\n .px-sm--3 {\r\n padding-right: -1rem !important;\r\n }\r\n\r\n .pb-sm--3,\r\n .py-sm--3 {\r\n padding-bottom: -1rem !important;\r\n }\r\n\r\n .pl-sm--3,\r\n .px-sm--3 {\r\n padding-left: -1rem !important;\r\n }\r\n\r\n .p-sm--2 {\r\n padding: -0.5rem !important;\r\n }\r\n\r\n .pt-sm--2,\r\n .py-sm--2 {\r\n padding-top: -0.5rem !important;\r\n }\r\n\r\n .pr-sm--2,\r\n .px-sm--2 {\r\n padding-right: -0.5rem !important;\r\n }\r\n\r\n .pb-sm--2,\r\n .py-sm--2 {\r\n padding-bottom: -0.5rem !important;\r\n }\r\n\r\n .pl-sm--2,\r\n .px-sm--2 {\r\n padding-left: -0.5rem !important;\r\n }\r\n\r\n .p-sm--1 {\r\n padding: -0.25rem !important;\r\n }\r\n\r\n .pt-sm--1,\r\n .py-sm--1 {\r\n padding-top: -0.25rem !important;\r\n }\r\n\r\n .pr-sm--1,\r\n .px-sm--1 {\r\n padding-right: -0.25rem !important;\r\n }\r\n\r\n .pb-sm--1,\r\n .py-sm--1 {\r\n padding-bottom: -0.25rem !important;\r\n }\r\n\r\n .pl-sm--1,\r\n .px-sm--1 {\r\n padding-left: -0.25rem !important;\r\n }\r\n\r\n .p-sm-6 {\r\n padding: 4.5rem !important;\r\n }\r\n\r\n .pt-sm-6,\r\n .py-sm-6 {\r\n padding-top: 4.5rem !important;\r\n }\r\n\r\n .pr-sm-6,\r\n .px-sm-6 {\r\n padding-right: 4.5rem !important;\r\n }\r\n\r\n .pb-sm-6,\r\n .py-sm-6 {\r\n padding-bottom: 4.5rem !important;\r\n }\r\n\r\n .pl-sm-6,\r\n .px-sm-6 {\r\n padding-left: 4.5rem !important;\r\n }\r\n\r\n .p-sm-7 {\r\n padding: 6rem !important;\r\n }\r\n\r\n .pt-sm-7,\r\n .py-sm-7 {\r\n padding-top: 6rem !important;\r\n }\r\n\r\n .pr-sm-7,\r\n .px-sm-7 {\r\n padding-right: 6rem !important;\r\n }\r\n\r\n .pb-sm-7,\r\n .py-sm-7 {\r\n padding-bottom: 6rem !important;\r\n }\r\n\r\n .pl-sm-7,\r\n .px-sm-7 {\r\n padding-left: 6rem !important;\r\n }\r\n\r\n .p-sm-8 {\r\n padding: 8rem !important;\r\n }\r\n\r\n .pt-sm-8,\r\n .py-sm-8 {\r\n padding-top: 8rem !important;\r\n }\r\n\r\n .pr-sm-8,\r\n .px-sm-8 {\r\n padding-right: 8rem !important;\r\n }\r\n\r\n .pb-sm-8,\r\n .py-sm-8 {\r\n padding-bottom: 8rem !important;\r\n }\r\n\r\n .pl-sm-8,\r\n .px-sm-8 {\r\n padding-left: 8rem !important;\r\n }\r\n\r\n .p-sm-9 {\r\n padding: 10rem !important;\r\n }\r\n\r\n .pt-sm-9,\r\n .py-sm-9 {\r\n padding-top: 10rem !important;\r\n }\r\n\r\n .pr-sm-9,\r\n .px-sm-9 {\r\n padding-right: 10rem !important;\r\n }\r\n\r\n .pb-sm-9,\r\n .py-sm-9 {\r\n padding-bottom: 10rem !important;\r\n }\r\n\r\n .pl-sm-9,\r\n .px-sm-9 {\r\n padding-left: 10rem !important;\r\n }\r\n\r\n .m-sm-auto {\r\n margin: auto !important;\r\n }\r\n\r\n .mt-sm-auto,\r\n .my-sm-auto {\r\n margin-top: auto !important;\r\n }\r\n\r\n .mr-sm-auto,\r\n .mx-sm-auto {\r\n margin-right: auto !important;\r\n }\r\n\r\n .mb-sm-auto,\r\n .my-sm-auto {\r\n margin-bottom: auto !important;\r\n }\r\n\r\n .ml-sm-auto,\r\n .mx-sm-auto {\r\n margin-left: auto !important;\r\n }\r\n }\r\n\r\n @media (min-width: 768px) {\r\n .m-md-0 {\r\n margin: 0 !important;\r\n }\r\n\r\n .mt-md-0,\r\n .my-md-0 {\r\n margin-top: 0 !important;\r\n }\r\n\r\n .mr-md-0,\r\n .mx-md-0 {\r\n margin-right: 0 !important;\r\n }\r\n\r\n .mb-md-0,\r\n .my-md-0 {\r\n margin-bottom: 0 !important;\r\n }\r\n\r\n .ml-md-0,\r\n .mx-md-0 {\r\n margin-left: 0 !important;\r\n }\r\n\r\n .m-md-1 {\r\n margin: 0.25rem !important;\r\n }\r\n\r\n .mt-md-1,\r\n .my-md-1 {\r\n margin-top: 0.25rem !important;\r\n }\r\n\r\n .mr-md-1,\r\n .mx-md-1 {\r\n margin-right: 0.25rem !important;\r\n }\r\n\r\n .mb-md-1,\r\n .my-md-1 {\r\n margin-bottom: 0.25rem !important;\r\n }\r\n\r\n .ml-md-1,\r\n .mx-md-1 {\r\n margin-left: 0.25rem !important;\r\n }\r\n\r\n .m-md-2 {\r\n margin: 0.5rem !important;\r\n }\r\n\r\n .mt-md-2,\r\n .my-md-2 {\r\n margin-top: 0.5rem !important;\r\n }\r\n\r\n .mr-md-2,\r\n .mx-md-2 {\r\n margin-right: 0.5rem !important;\r\n }\r\n\r\n .mb-md-2,\r\n .my-md-2 {\r\n margin-bottom: 0.5rem !important;\r\n }\r\n\r\n .ml-md-2,\r\n .mx-md-2 {\r\n margin-left: 0.5rem !important;\r\n }\r\n\r\n .m-md-3 {\r\n margin: 1rem !important;\r\n }\r\n\r\n .mt-md-3,\r\n .my-md-3 {\r\n margin-top: 1rem !important;\r\n }\r\n\r\n .mr-md-3,\r\n .mx-md-3 {\r\n margin-right: 1rem !important;\r\n }\r\n\r\n .mb-md-3,\r\n .my-md-3 {\r\n margin-bottom: 1rem !important;\r\n }\r\n\r\n .ml-md-3,\r\n .mx-md-3 {\r\n margin-left: 1rem !important;\r\n }\r\n\r\n .m-md-4 {\r\n margin: 1.5rem !important;\r\n }\r\n\r\n .mt-md-4,\r\n .my-md-4 {\r\n margin-top: 1.5rem !important;\r\n }\r\n\r\n .mr-md-4,\r\n .mx-md-4 {\r\n margin-right: 1.5rem !important;\r\n }\r\n\r\n .mb-md-4,\r\n .my-md-4 {\r\n margin-bottom: 1.5rem !important;\r\n }\r\n\r\n .ml-md-4,\r\n .mx-md-4 {\r\n margin-left: 1.5rem !important;\r\n }\r\n\r\n .m-md-5 {\r\n margin: 3rem !important;\r\n }\r\n\r\n .mt-md-5,\r\n .my-md-5 {\r\n margin-top: 3rem !important;\r\n }\r\n\r\n .mr-md-5,\r\n .mx-md-5 {\r\n margin-right: 3rem !important;\r\n }\r\n\r\n .mb-md-5,\r\n .my-md-5 {\r\n margin-bottom: 3rem !important;\r\n }\r\n\r\n .ml-md-5,\r\n .mx-md-5 {\r\n margin-left: 3rem !important;\r\n }\r\n\r\n .m-md--9 {\r\n margin: -10rem !important;\r\n }\r\n\r\n .mt-md--9,\r\n .my-md--9 {\r\n margin-top: -10rem !important;\r\n }\r\n\r\n .mr-md--9,\r\n .mx-md--9 {\r\n margin-right: -10rem !important;\r\n }\r\n\r\n .mb-md--9,\r\n .my-md--9 {\r\n margin-bottom: -10rem !important;\r\n }\r\n\r\n .ml-md--9,\r\n .mx-md--9 {\r\n margin-left: -10rem !important;\r\n }\r\n\r\n .m-md--8 {\r\n margin: -8rem !important;\r\n }\r\n\r\n .mt-md--8,\r\n .my-md--8 {\r\n margin-top: -8rem !important;\r\n }\r\n\r\n .mr-md--8,\r\n .mx-md--8 {\r\n margin-right: -8rem !important;\r\n }\r\n\r\n .mb-md--8,\r\n .my-md--8 {\r\n margin-bottom: -8rem !important;\r\n }\r\n\r\n .ml-md--8,\r\n .mx-md--8 {\r\n margin-left: -8rem !important;\r\n }\r\n\r\n .m-md--7 {\r\n margin: -6rem !important;\r\n }\r\n\r\n .mt-md--7,\r\n .my-md--7 {\r\n margin-top: -6rem !important;\r\n }\r\n\r\n .mr-md--7,\r\n .mx-md--7 {\r\n margin-right: -6rem !important;\r\n }\r\n\r\n .mb-md--7,\r\n .my-md--7 {\r\n margin-bottom: -6rem !important;\r\n }\r\n\r\n .ml-md--7,\r\n .mx-md--7 {\r\n margin-left: -6rem !important;\r\n }\r\n\r\n .m-md--6 {\r\n margin: -4.5rem !important;\r\n }\r\n\r\n .mt-md--6,\r\n .my-md--6 {\r\n margin-top: -4.5rem !important;\r\n }\r\n\r\n .mr-md--6,\r\n .mx-md--6 {\r\n margin-right: -4.5rem !important;\r\n }\r\n\r\n .mb-md--6,\r\n .my-md--6 {\r\n margin-bottom: -4.5rem !important;\r\n }\r\n\r\n .ml-md--6,\r\n .mx-md--6 {\r\n margin-left: -4.5rem !important;\r\n }\r\n\r\n .m-md--5 {\r\n margin: -3rem !important;\r\n }\r\n\r\n .mt-md--5,\r\n .my-md--5 {\r\n margin-top: -3rem !important;\r\n }\r\n\r\n .mr-md--5,\r\n .mx-md--5 {\r\n margin-right: -3rem !important;\r\n }\r\n\r\n .mb-md--5,\r\n .my-md--5 {\r\n margin-bottom: -3rem !important;\r\n }\r\n\r\n .ml-md--5,\r\n .mx-md--5 {\r\n margin-left: -3rem !important;\r\n }\r\n\r\n .m-md--4 {\r\n margin: -1.5rem !important;\r\n }\r\n\r\n .mt-md--4,\r\n .my-md--4 {\r\n margin-top: -1.5rem !important;\r\n }\r\n\r\n .mr-md--4,\r\n .mx-md--4 {\r\n margin-right: -1.5rem !important;\r\n }\r\n\r\n .mb-md--4,\r\n .my-md--4 {\r\n margin-bottom: -1.5rem !important;\r\n }\r\n\r\n .ml-md--4,\r\n .mx-md--4 {\r\n margin-left: -1.5rem !important;\r\n }\r\n\r\n .m-md--3 {\r\n margin: -1rem !important;\r\n }\r\n\r\n .mt-md--3,\r\n .my-md--3 {\r\n margin-top: -1rem !important;\r\n }\r\n\r\n .mr-md--3,\r\n .mx-md--3 {\r\n margin-right: -1rem !important;\r\n }\r\n\r\n .mb-md--3,\r\n .my-md--3 {\r\n margin-bottom: -1rem !important;\r\n }\r\n\r\n .ml-md--3,\r\n .mx-md--3 {\r\n margin-left: -1rem !important;\r\n }\r\n\r\n .m-md--2 {\r\n margin: -0.5rem !important;\r\n }\r\n\r\n .mt-md--2,\r\n .my-md--2 {\r\n margin-top: -0.5rem !important;\r\n }\r\n\r\n .mr-md--2,\r\n .mx-md--2 {\r\n margin-right: -0.5rem !important;\r\n }\r\n\r\n .mb-md--2,\r\n .my-md--2 {\r\n margin-bottom: -0.5rem !important;\r\n }\r\n\r\n .ml-md--2,\r\n .mx-md--2 {\r\n margin-left: -0.5rem !important;\r\n }\r\n\r\n .m-md--1 {\r\n margin: -0.25rem !important;\r\n }\r\n\r\n .mt-md--1,\r\n .my-md--1 {\r\n margin-top: -0.25rem !important;\r\n }\r\n\r\n .mr-md--1,\r\n .mx-md--1 {\r\n margin-right: -0.25rem !important;\r\n }\r\n\r\n .mb-md--1,\r\n .my-md--1 {\r\n margin-bottom: -0.25rem !important;\r\n }\r\n\r\n .ml-md--1,\r\n .mx-md--1 {\r\n margin-left: -0.25rem !important;\r\n }\r\n\r\n .m-md-6 {\r\n margin: 4.5rem !important;\r\n }\r\n\r\n .mt-md-6,\r\n .my-md-6 {\r\n margin-top: 4.5rem !important;\r\n }\r\n\r\n .mr-md-6,\r\n .mx-md-6 {\r\n margin-right: 4.5rem !important;\r\n }\r\n\r\n .mb-md-6,\r\n .my-md-6 {\r\n margin-bottom: 4.5rem !important;\r\n }\r\n\r\n .ml-md-6,\r\n .mx-md-6 {\r\n margin-left: 4.5rem !important;\r\n }\r\n\r\n .m-md-7 {\r\n margin: 6rem !important;\r\n }\r\n\r\n .mt-md-7,\r\n .my-md-7 {\r\n margin-top: 6rem !important;\r\n }\r\n\r\n .mr-md-7,\r\n .mx-md-7 {\r\n margin-right: 6rem !important;\r\n }\r\n\r\n .mb-md-7,\r\n .my-md-7 {\r\n margin-bottom: 6rem !important;\r\n }\r\n\r\n .ml-md-7,\r\n .mx-md-7 {\r\n margin-left: 6rem !important;\r\n }\r\n\r\n .m-md-8 {\r\n margin: 8rem !important;\r\n }\r\n\r\n .mt-md-8,\r\n .my-md-8 {\r\n margin-top: 8rem !important;\r\n }\r\n\r\n .mr-md-8,\r\n .mx-md-8 {\r\n margin-right: 8rem !important;\r\n }\r\n\r\n .mb-md-8,\r\n .my-md-8 {\r\n margin-bottom: 8rem !important;\r\n }\r\n\r\n .ml-md-8,\r\n .mx-md-8 {\r\n margin-left: 8rem !important;\r\n }\r\n\r\n .m-md-9 {\r\n margin: 10rem !important;\r\n }\r\n\r\n .mt-md-9,\r\n .my-md-9 {\r\n margin-top: 10rem !important;\r\n }\r\n\r\n .mr-md-9,\r\n .mx-md-9 {\r\n margin-right: 10rem !important;\r\n }\r\n\r\n .mb-md-9,\r\n .my-md-9 {\r\n margin-bottom: 10rem !important;\r\n }\r\n\r\n .ml-md-9,\r\n .mx-md-9 {\r\n margin-left: 10rem !important;\r\n }\r\n\r\n .p-md-0 {\r\n padding: 0 !important;\r\n }\r\n\r\n .pt-md-0,\r\n .py-md-0 {\r\n padding-top: 0 !important;\r\n }\r\n\r\n .pr-md-0,\r\n .px-md-0 {\r\n padding-right: 0 !important;\r\n }\r\n\r\n .pb-md-0,\r\n .py-md-0 {\r\n padding-bottom: 0 !important;\r\n }\r\n\r\n .pl-md-0,\r\n .px-md-0 {\r\n padding-left: 0 !important;\r\n }\r\n\r\n .p-md-1 {\r\n padding: 0.25rem !important;\r\n }\r\n\r\n .pt-md-1,\r\n .py-md-1 {\r\n padding-top: 0.25rem !important;\r\n }\r\n\r\n .pr-md-1,\r\n .px-md-1 {\r\n padding-right: 0.25rem !important;\r\n }\r\n\r\n .pb-md-1,\r\n .py-md-1 {\r\n padding-bottom: 0.25rem !important;\r\n }\r\n\r\n .pl-md-1,\r\n .px-md-1 {\r\n padding-left: 0.25rem !important;\r\n }\r\n\r\n .p-md-2 {\r\n padding: 0.5rem !important;\r\n }\r\n\r\n .pt-md-2,\r\n .py-md-2 {\r\n padding-top: 0.5rem !important;\r\n }\r\n\r\n .pr-md-2,\r\n .px-md-2 {\r\n padding-right: 0.5rem !important;\r\n }\r\n\r\n .pb-md-2,\r\n .py-md-2 {\r\n padding-bottom: 0.5rem !important;\r\n }\r\n\r\n .pl-md-2,\r\n .px-md-2 {\r\n padding-left: 0.5rem !important;\r\n }\r\n\r\n .p-md-3 {\r\n padding: 1rem !important;\r\n }\r\n\r\n .pt-md-3,\r\n .py-md-3 {\r\n padding-top: 1rem !important;\r\n }\r\n\r\n .pr-md-3,\r\n .px-md-3 {\r\n padding-right: 1rem !important;\r\n }\r\n\r\n .pb-md-3,\r\n .py-md-3 {\r\n padding-bottom: 1rem !important;\r\n }\r\n\r\n .pl-md-3,\r\n .px-md-3 {\r\n padding-left: 1rem !important;\r\n }\r\n\r\n .p-md-4 {\r\n padding: 1.5rem !important;\r\n }\r\n\r\n .pt-md-4,\r\n .py-md-4 {\r\n padding-top: 1.5rem !important;\r\n }\r\n\r\n .pr-md-4,\r\n .px-md-4 {\r\n padding-right: 1.5rem !important;\r\n }\r\n\r\n .pb-md-4,\r\n .py-md-4 {\r\n padding-bottom: 1.5rem !important;\r\n }\r\n\r\n .pl-md-4,\r\n .px-md-4 {\r\n padding-left: 1.5rem !important;\r\n }\r\n\r\n .p-md-5 {\r\n padding: 3rem !important;\r\n }\r\n\r\n .pt-md-5,\r\n .py-md-5 {\r\n padding-top: 3rem !important;\r\n }\r\n\r\n .pr-md-5,\r\n .px-md-5 {\r\n padding-right: 3rem !important;\r\n }\r\n\r\n .pb-md-5,\r\n .py-md-5 {\r\n padding-bottom: 3rem !important;\r\n }\r\n\r\n .pl-md-5,\r\n .px-md-5 {\r\n padding-left: 3rem !important;\r\n }\r\n\r\n .p-md--9 {\r\n padding: -10rem !important;\r\n }\r\n\r\n .pt-md--9,\r\n .py-md--9 {\r\n padding-top: -10rem !important;\r\n }\r\n\r\n .pr-md--9,\r\n .px-md--9 {\r\n padding-right: -10rem !important;\r\n }\r\n\r\n .pb-md--9,\r\n .py-md--9 {\r\n padding-bottom: -10rem !important;\r\n }\r\n\r\n .pl-md--9,\r\n .px-md--9 {\r\n padding-left: -10rem !important;\r\n }\r\n\r\n .p-md--8 {\r\n padding: -8rem !important;\r\n }\r\n\r\n .pt-md--8,\r\n .py-md--8 {\r\n padding-top: -8rem !important;\r\n }\r\n\r\n .pr-md--8,\r\n .px-md--8 {\r\n padding-right: -8rem !important;\r\n }\r\n\r\n .pb-md--8,\r\n .py-md--8 {\r\n padding-bottom: -8rem !important;\r\n }\r\n\r\n .pl-md--8,\r\n .px-md--8 {\r\n padding-left: -8rem !important;\r\n }\r\n\r\n .p-md--7 {\r\n padding: -6rem !important;\r\n }\r\n\r\n .pt-md--7,\r\n .py-md--7 {\r\n padding-top: -6rem !important;\r\n }\r\n\r\n .pr-md--7,\r\n .px-md--7 {\r\n padding-right: -6rem !important;\r\n }\r\n\r\n .pb-md--7,\r\n .py-md--7 {\r\n padding-bottom: -6rem !important;\r\n }\r\n\r\n .pl-md--7,\r\n .px-md--7 {\r\n padding-left: -6rem !important;\r\n }\r\n\r\n .p-md--6 {\r\n padding: -4.5rem !important;\r\n }\r\n\r\n .pt-md--6,\r\n .py-md--6 {\r\n padding-top: -4.5rem !important;\r\n }\r\n\r\n .pr-md--6,\r\n .px-md--6 {\r\n padding-right: -4.5rem !important;\r\n }\r\n\r\n .pb-md--6,\r\n .py-md--6 {\r\n padding-bottom: -4.5rem !important;\r\n }\r\n\r\n .pl-md--6,\r\n .px-md--6 {\r\n padding-left: -4.5rem !important;\r\n }\r\n\r\n .p-md--5 {\r\n padding: -3rem !important;\r\n }\r\n\r\n .pt-md--5,\r\n .py-md--5 {\r\n padding-top: -3rem !important;\r\n }\r\n\r\n .pr-md--5,\r\n .px-md--5 {\r\n padding-right: -3rem !important;\r\n }\r\n\r\n .pb-md--5,\r\n .py-md--5 {\r\n padding-bottom: -3rem !important;\r\n }\r\n\r\n .pl-md--5,\r\n .px-md--5 {\r\n padding-left: -3rem !important;\r\n }\r\n\r\n .p-md--4 {\r\n padding: -1.5rem !important;\r\n }\r\n\r\n .pt-md--4,\r\n .py-md--4 {\r\n padding-top: -1.5rem !important;\r\n }\r\n\r\n .pr-md--4,\r\n .px-md--4 {\r\n padding-right: -1.5rem !important;\r\n }\r\n\r\n .pb-md--4,\r\n .py-md--4 {\r\n padding-bottom: -1.5rem !important;\r\n }\r\n\r\n .pl-md--4,\r\n .px-md--4 {\r\n padding-left: -1.5rem !important;\r\n }\r\n\r\n .p-md--3 {\r\n padding: -1rem !important;\r\n }\r\n\r\n .pt-md--3,\r\n .py-md--3 {\r\n padding-top: -1rem !important;\r\n }\r\n\r\n .pr-md--3,\r\n .px-md--3 {\r\n padding-right: -1rem !important;\r\n }\r\n\r\n .pb-md--3,\r\n .py-md--3 {\r\n padding-bottom: -1rem !important;\r\n }\r\n\r\n .pl-md--3,\r\n .px-md--3 {\r\n padding-left: -1rem !important;\r\n }\r\n\r\n .p-md--2 {\r\n padding: -0.5rem !important;\r\n }\r\n\r\n .pt-md--2,\r\n .py-md--2 {\r\n padding-top: -0.5rem !important;\r\n }\r\n\r\n .pr-md--2,\r\n .px-md--2 {\r\n padding-right: -0.5rem !important;\r\n }\r\n\r\n .pb-md--2,\r\n .py-md--2 {\r\n padding-bottom: -0.5rem !important;\r\n }\r\n\r\n .pl-md--2,\r\n .px-md--2 {\r\n padding-left: -0.5rem !important;\r\n }\r\n\r\n .p-md--1 {\r\n padding: -0.25rem !important;\r\n }\r\n\r\n .pt-md--1,\r\n .py-md--1 {\r\n padding-top: -0.25rem !important;\r\n }\r\n\r\n .pr-md--1,\r\n .px-md--1 {\r\n padding-right: -0.25rem !important;\r\n }\r\n\r\n .pb-md--1,\r\n .py-md--1 {\r\n padding-bottom: -0.25rem !important;\r\n }\r\n\r\n .pl-md--1,\r\n .px-md--1 {\r\n padding-left: -0.25rem !important;\r\n }\r\n\r\n .p-md-6 {\r\n padding: 4.5rem !important;\r\n }\r\n\r\n .pt-md-6,\r\n .py-md-6 {\r\n padding-top: 4.5rem !important;\r\n }\r\n\r\n .pr-md-6,\r\n .px-md-6 {\r\n padding-right: 4.5rem !important;\r\n }\r\n\r\n .pb-md-6,\r\n .py-md-6 {\r\n padding-bottom: 4.5rem !important;\r\n }\r\n\r\n .pl-md-6,\r\n .px-md-6 {\r\n padding-left: 4.5rem !important;\r\n }\r\n\r\n .p-md-7 {\r\n padding: 6rem !important;\r\n }\r\n\r\n .pt-md-7,\r\n .py-md-7 {\r\n padding-top: 6rem !important;\r\n }\r\n\r\n .pr-md-7,\r\n .px-md-7 {\r\n padding-right: 6rem !important;\r\n }\r\n\r\n .pb-md-7,\r\n .py-md-7 {\r\n padding-bottom: 6rem !important;\r\n }\r\n\r\n .pl-md-7,\r\n .px-md-7 {\r\n padding-left: 6rem !important;\r\n }\r\n\r\n .p-md-8 {\r\n padding: 8rem !important;\r\n }\r\n\r\n .pt-md-8,\r\n .py-md-8 {\r\n padding-top: 8rem !important;\r\n }\r\n\r\n .pr-md-8,\r\n .px-md-8 {\r\n padding-right: 8rem !important;\r\n }\r\n\r\n .pb-md-8,\r\n .py-md-8 {\r\n padding-bottom: 8rem !important;\r\n }\r\n\r\n .pl-md-8,\r\n .px-md-8 {\r\n padding-left: 8rem !important;\r\n }\r\n\r\n .p-md-9 {\r\n padding: 10rem !important;\r\n }\r\n\r\n .pt-md-9,\r\n .py-md-9 {\r\n padding-top: 10rem !important;\r\n }\r\n\r\n .pr-md-9,\r\n .px-md-9 {\r\n padding-right: 10rem !important;\r\n }\r\n\r\n .pb-md-9,\r\n .py-md-9 {\r\n padding-bottom: 10rem !important;\r\n }\r\n\r\n .pl-md-9,\r\n .px-md-9 {\r\n padding-left: 10rem !important;\r\n }\r\n\r\n .m-md-auto {\r\n margin: auto !important;\r\n }\r\n\r\n .mt-md-auto,\r\n .my-md-auto {\r\n margin-top: auto !important;\r\n }\r\n\r\n .mr-md-auto,\r\n .mx-md-auto {\r\n margin-right: auto !important;\r\n }\r\n\r\n .mb-md-auto,\r\n .my-md-auto {\r\n margin-bottom: auto !important;\r\n }\r\n\r\n .ml-md-auto,\r\n .mx-md-auto {\r\n margin-left: auto !important;\r\n }\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .m-lg-0 {\r\n margin: 0 !important;\r\n }\r\n\r\n .mt-lg-0,\r\n .my-lg-0 {\r\n margin-top: 0 !important;\r\n }\r\n\r\n .mr-lg-0,\r\n .mx-lg-0 {\r\n margin-right: 0 !important;\r\n }\r\n\r\n .mb-lg-0,\r\n .my-lg-0 {\r\n margin-bottom: 0 !important;\r\n }\r\n\r\n .ml-lg-0,\r\n .mx-lg-0 {\r\n margin-left: 0 !important;\r\n }\r\n\r\n .m-lg-1 {\r\n margin: 0.25rem !important;\r\n }\r\n\r\n .mt-lg-1,\r\n .my-lg-1 {\r\n margin-top: 0.25rem !important;\r\n }\r\n\r\n .mr-lg-1,\r\n .mx-lg-1 {\r\n margin-right: 0.25rem !important;\r\n }\r\n\r\n .mb-lg-1,\r\n .my-lg-1 {\r\n margin-bottom: 0.25rem !important;\r\n }\r\n\r\n .ml-lg-1,\r\n .mx-lg-1 {\r\n margin-left: 0.25rem !important;\r\n }\r\n\r\n .m-lg-2 {\r\n margin: 0.5rem !important;\r\n }\r\n\r\n .mt-lg-2,\r\n .my-lg-2 {\r\n margin-top: 0.5rem !important;\r\n }\r\n\r\n .mr-lg-2,\r\n .mx-lg-2 {\r\n margin-right: 0.5rem !important;\r\n }\r\n\r\n .mb-lg-2,\r\n .my-lg-2 {\r\n margin-bottom: 0.5rem !important;\r\n }\r\n\r\n .ml-lg-2,\r\n .mx-lg-2 {\r\n margin-left: 0.5rem !important;\r\n }\r\n\r\n .m-lg-3 {\r\n margin: 1rem !important;\r\n }\r\n\r\n .mt-lg-3,\r\n .my-lg-3 {\r\n margin-top: 1rem !important;\r\n }\r\n\r\n .mr-lg-3,\r\n .mx-lg-3 {\r\n margin-right: 1rem !important;\r\n }\r\n\r\n .mb-lg-3,\r\n .my-lg-3 {\r\n margin-bottom: 1rem !important;\r\n }\r\n\r\n .ml-lg-3,\r\n .mx-lg-3 {\r\n margin-left: 1rem !important;\r\n }\r\n\r\n .m-lg-4 {\r\n margin: 1.5rem !important;\r\n }\r\n\r\n .mt-lg-4,\r\n .my-lg-4 {\r\n margin-top: 1.5rem !important;\r\n }\r\n\r\n .mr-lg-4,\r\n .mx-lg-4 {\r\n margin-right: 1.5rem !important;\r\n }\r\n\r\n .mb-lg-4,\r\n .my-lg-4 {\r\n margin-bottom: 1.5rem !important;\r\n }\r\n\r\n .ml-lg-4,\r\n .mx-lg-4 {\r\n margin-left: 1.5rem !important;\r\n }\r\n\r\n .m-lg-5 {\r\n margin: 3rem !important;\r\n }\r\n\r\n .mt-lg-5,\r\n .my-lg-5 {\r\n margin-top: 3rem !important;\r\n }\r\n\r\n .mr-lg-5,\r\n .mx-lg-5 {\r\n margin-right: 3rem !important;\r\n }\r\n\r\n .mb-lg-5,\r\n .my-lg-5 {\r\n margin-bottom: 3rem !important;\r\n }\r\n\r\n .ml-lg-5,\r\n .mx-lg-5 {\r\n margin-left: 3rem !important;\r\n }\r\n\r\n .m-lg--9 {\r\n margin: -10rem !important;\r\n }\r\n\r\n .mt-lg--9,\r\n .my-lg--9 {\r\n margin-top: -10rem !important;\r\n }\r\n\r\n .mr-lg--9,\r\n .mx-lg--9 {\r\n margin-right: -10rem !important;\r\n }\r\n\r\n .mb-lg--9,\r\n .my-lg--9 {\r\n margin-bottom: -10rem !important;\r\n }\r\n\r\n .ml-lg--9,\r\n .mx-lg--9 {\r\n margin-left: -10rem !important;\r\n }\r\n\r\n .m-lg--8 {\r\n margin: -8rem !important;\r\n }\r\n\r\n .mt-lg--8,\r\n .my-lg--8 {\r\n margin-top: -8rem !important;\r\n }\r\n\r\n .mr-lg--8,\r\n .mx-lg--8 {\r\n margin-right: -8rem !important;\r\n }\r\n\r\n .mb-lg--8,\r\n .my-lg--8 {\r\n margin-bottom: -8rem !important;\r\n }\r\n\r\n .ml-lg--8,\r\n .mx-lg--8 {\r\n margin-left: -8rem !important;\r\n }\r\n\r\n .m-lg--7 {\r\n margin: -6rem !important;\r\n }\r\n\r\n .mt-lg--7,\r\n .my-lg--7 {\r\n margin-top: -6rem !important;\r\n }\r\n\r\n .mr-lg--7,\r\n .mx-lg--7 {\r\n margin-right: -6rem !important;\r\n }\r\n\r\n .mb-lg--7,\r\n .my-lg--7 {\r\n margin-bottom: -6rem !important;\r\n }\r\n\r\n .ml-lg--7,\r\n .mx-lg--7 {\r\n margin-left: -6rem !important;\r\n }\r\n\r\n .m-lg--6 {\r\n margin: -4.5rem !important;\r\n }\r\n\r\n .mt-lg--6,\r\n .my-lg--6 {\r\n margin-top: -4.5rem !important;\r\n }\r\n\r\n .mr-lg--6,\r\n .mx-lg--6 {\r\n margin-right: -4.5rem !important;\r\n }\r\n\r\n .mb-lg--6,\r\n .my-lg--6 {\r\n margin-bottom: -4.5rem !important;\r\n }\r\n\r\n .ml-lg--6,\r\n .mx-lg--6 {\r\n margin-left: -4.5rem !important;\r\n }\r\n\r\n .m-lg--5 {\r\n margin: -3rem !important;\r\n }\r\n\r\n .mt-lg--5,\r\n .my-lg--5 {\r\n margin-top: -3rem !important;\r\n }\r\n\r\n .mr-lg--5,\r\n .mx-lg--5 {\r\n margin-right: -3rem !important;\r\n }\r\n\r\n .mb-lg--5,\r\n .my-lg--5 {\r\n margin-bottom: -3rem !important;\r\n }\r\n\r\n .ml-lg--5,\r\n .mx-lg--5 {\r\n margin-left: -3rem !important;\r\n }\r\n\r\n .m-lg--4 {\r\n margin: -1.5rem !important;\r\n }\r\n\r\n .mt-lg--4,\r\n .my-lg--4 {\r\n margin-top: -1.5rem !important;\r\n }\r\n\r\n .mr-lg--4,\r\n .mx-lg--4 {\r\n margin-right: -1.5rem !important;\r\n }\r\n\r\n .mb-lg--4,\r\n .my-lg--4 {\r\n margin-bottom: -1.5rem !important;\r\n }\r\n\r\n .ml-lg--4,\r\n .mx-lg--4 {\r\n margin-left: -1.5rem !important;\r\n }\r\n\r\n .m-lg--3 {\r\n margin: -1rem !important;\r\n }\r\n\r\n .mt-lg--3,\r\n .my-lg--3 {\r\n margin-top: -1rem !important;\r\n }\r\n\r\n .mr-lg--3,\r\n .mx-lg--3 {\r\n margin-right: -1rem !important;\r\n }\r\n\r\n .mb-lg--3,\r\n .my-lg--3 {\r\n margin-bottom: -1rem !important;\r\n }\r\n\r\n .ml-lg--3,\r\n .mx-lg--3 {\r\n margin-left: -1rem !important;\r\n }\r\n\r\n .m-lg--2 {\r\n margin: -0.5rem !important;\r\n }\r\n\r\n .mt-lg--2,\r\n .my-lg--2 {\r\n margin-top: -0.5rem !important;\r\n }\r\n\r\n .mr-lg--2,\r\n .mx-lg--2 {\r\n margin-right: -0.5rem !important;\r\n }\r\n\r\n .mb-lg--2,\r\n .my-lg--2 {\r\n margin-bottom: -0.5rem !important;\r\n }\r\n\r\n .ml-lg--2,\r\n .mx-lg--2 {\r\n margin-left: -0.5rem !important;\r\n }\r\n\r\n .m-lg--1 {\r\n margin: -0.25rem !important;\r\n }\r\n\r\n .mt-lg--1,\r\n .my-lg--1 {\r\n margin-top: -0.25rem !important;\r\n }\r\n\r\n .mr-lg--1,\r\n .mx-lg--1 {\r\n margin-right: -0.25rem !important;\r\n }\r\n\r\n .mb-lg--1,\r\n .my-lg--1 {\r\n margin-bottom: -0.25rem !important;\r\n }\r\n\r\n .ml-lg--1,\r\n .mx-lg--1 {\r\n margin-left: -0.25rem !important;\r\n }\r\n\r\n .m-lg-6 {\r\n margin: 4.5rem !important;\r\n }\r\n\r\n .mt-lg-6,\r\n .my-lg-6 {\r\n margin-top: 4.5rem !important;\r\n }\r\n\r\n .mr-lg-6,\r\n .mx-lg-6 {\r\n margin-right: 4.5rem !important;\r\n }\r\n\r\n .mb-lg-6,\r\n .my-lg-6 {\r\n margin-bottom: 4.5rem !important;\r\n }\r\n\r\n .ml-lg-6,\r\n .mx-lg-6 {\r\n margin-left: 4.5rem !important;\r\n }\r\n\r\n .m-lg-7 {\r\n margin: 6rem !important;\r\n }\r\n\r\n .mt-lg-7,\r\n .my-lg-7 {\r\n margin-top: 6rem !important;\r\n }\r\n\r\n .mr-lg-7,\r\n .mx-lg-7 {\r\n margin-right: 6rem !important;\r\n }\r\n\r\n .mb-lg-7,\r\n .my-lg-7 {\r\n margin-bottom: 6rem !important;\r\n }\r\n\r\n .ml-lg-7,\r\n .mx-lg-7 {\r\n margin-left: 6rem !important;\r\n }\r\n\r\n .m-lg-8 {\r\n margin: 8rem !important;\r\n }\r\n\r\n .mt-lg-8,\r\n .my-lg-8 {\r\n margin-top: 8rem !important;\r\n }\r\n\r\n .mr-lg-8,\r\n .mx-lg-8 {\r\n margin-right: 8rem !important;\r\n }\r\n\r\n .mb-lg-8,\r\n .my-lg-8 {\r\n margin-bottom: 8rem !important;\r\n }\r\n\r\n .ml-lg-8,\r\n .mx-lg-8 {\r\n margin-left: 8rem !important;\r\n }\r\n\r\n .m-lg-9 {\r\n margin: 10rem !important;\r\n }\r\n\r\n .mt-lg-9,\r\n .my-lg-9 {\r\n margin-top: 10rem !important;\r\n }\r\n\r\n .mr-lg-9,\r\n .mx-lg-9 {\r\n margin-right: 10rem !important;\r\n }\r\n\r\n .mb-lg-9,\r\n .my-lg-9 {\r\n margin-bottom: 10rem !important;\r\n }\r\n\r\n .ml-lg-9,\r\n .mx-lg-9 {\r\n margin-left: 10rem !important;\r\n }\r\n\r\n .p-lg-0 {\r\n padding: 0 !important;\r\n }\r\n\r\n .pt-lg-0,\r\n .py-lg-0 {\r\n padding-top: 0 !important;\r\n }\r\n\r\n .pr-lg-0,\r\n .px-lg-0 {\r\n padding-right: 0 !important;\r\n }\r\n\r\n .pb-lg-0,\r\n .py-lg-0 {\r\n padding-bottom: 0 !important;\r\n }\r\n\r\n .pl-lg-0,\r\n .px-lg-0 {\r\n padding-left: 0 !important;\r\n }\r\n\r\n .p-lg-1 {\r\n padding: 0.25rem !important;\r\n }\r\n\r\n .pt-lg-1,\r\n .py-lg-1 {\r\n padding-top: 0.25rem !important;\r\n }\r\n\r\n .pr-lg-1,\r\n .px-lg-1 {\r\n padding-right: 0.25rem !important;\r\n }\r\n\r\n .pb-lg-1,\r\n .py-lg-1 {\r\n padding-bottom: 0.25rem !important;\r\n }\r\n\r\n .pl-lg-1,\r\n .px-lg-1 {\r\n padding-left: 0.25rem !important;\r\n }\r\n\r\n .p-lg-2 {\r\n padding: 0.5rem !important;\r\n }\r\n\r\n .pt-lg-2,\r\n .py-lg-2 {\r\n padding-top: 0.5rem !important;\r\n }\r\n\r\n .pr-lg-2,\r\n .px-lg-2 {\r\n padding-right: 0.5rem !important;\r\n }\r\n\r\n .pb-lg-2,\r\n .py-lg-2 {\r\n padding-bottom: 0.5rem !important;\r\n }\r\n\r\n .pl-lg-2,\r\n .px-lg-2 {\r\n padding-left: 0.5rem !important;\r\n }\r\n\r\n .p-lg-3 {\r\n padding: 1rem !important;\r\n }\r\n\r\n .pt-lg-3,\r\n .py-lg-3 {\r\n padding-top: 1rem !important;\r\n }\r\n\r\n .pr-lg-3,\r\n .px-lg-3 {\r\n padding-right: 1rem !important;\r\n }\r\n\r\n .pb-lg-3,\r\n .py-lg-3 {\r\n padding-bottom: 1rem !important;\r\n }\r\n\r\n .pl-lg-3,\r\n .px-lg-3 {\r\n padding-left: 1rem !important;\r\n }\r\n\r\n .p-lg-4 {\r\n padding: 1.5rem !important;\r\n }\r\n\r\n .pt-lg-4,\r\n .py-lg-4 {\r\n padding-top: 1.5rem !important;\r\n }\r\n\r\n .pr-lg-4,\r\n .px-lg-4 {\r\n padding-right: 1.5rem !important;\r\n }\r\n\r\n .pb-lg-4,\r\n .py-lg-4 {\r\n padding-bottom: 1.5rem !important;\r\n }\r\n\r\n .pl-lg-4,\r\n .px-lg-4 {\r\n padding-left: 1.5rem !important;\r\n }\r\n\r\n .p-lg-5 {\r\n padding: 3rem !important;\r\n }\r\n\r\n .pt-lg-5,\r\n .py-lg-5 {\r\n padding-top: 3rem !important;\r\n }\r\n\r\n .pr-lg-5,\r\n .px-lg-5 {\r\n padding-right: 3rem !important;\r\n }\r\n\r\n .pb-lg-5,\r\n .py-lg-5 {\r\n padding-bottom: 3rem !important;\r\n }\r\n\r\n .pl-lg-5,\r\n .px-lg-5 {\r\n padding-left: 3rem !important;\r\n }\r\n\r\n .p-lg--9 {\r\n padding: -10rem !important;\r\n }\r\n\r\n .pt-lg--9,\r\n .py-lg--9 {\r\n padding-top: -10rem !important;\r\n }\r\n\r\n .pr-lg--9,\r\n .px-lg--9 {\r\n padding-right: -10rem !important;\r\n }\r\n\r\n .pb-lg--9,\r\n .py-lg--9 {\r\n padding-bottom: -10rem !important;\r\n }\r\n\r\n .pl-lg--9,\r\n .px-lg--9 {\r\n padding-left: -10rem !important;\r\n }\r\n\r\n .p-lg--8 {\r\n padding: -8rem !important;\r\n }\r\n\r\n .pt-lg--8,\r\n .py-lg--8 {\r\n padding-top: -8rem !important;\r\n }\r\n\r\n .pr-lg--8,\r\n .px-lg--8 {\r\n padding-right: -8rem !important;\r\n }\r\n\r\n .pb-lg--8,\r\n .py-lg--8 {\r\n padding-bottom: -8rem !important;\r\n }\r\n\r\n .pl-lg--8,\r\n .px-lg--8 {\r\n padding-left: -8rem !important;\r\n }\r\n\r\n .p-lg--7 {\r\n padding: -6rem !important;\r\n }\r\n\r\n .pt-lg--7,\r\n .py-lg--7 {\r\n padding-top: -6rem !important;\r\n }\r\n\r\n .pr-lg--7,\r\n .px-lg--7 {\r\n padding-right: -6rem !important;\r\n }\r\n\r\n .pb-lg--7,\r\n .py-lg--7 {\r\n padding-bottom: -6rem !important;\r\n }\r\n\r\n .pl-lg--7,\r\n .px-lg--7 {\r\n padding-left: -6rem !important;\r\n }\r\n\r\n .p-lg--6 {\r\n padding: -4.5rem !important;\r\n }\r\n\r\n .pt-lg--6,\r\n .py-lg--6 {\r\n padding-top: -4.5rem !important;\r\n }\r\n\r\n .pr-lg--6,\r\n .px-lg--6 {\r\n padding-right: -4.5rem !important;\r\n }\r\n\r\n .pb-lg--6,\r\n .py-lg--6 {\r\n padding-bottom: -4.5rem !important;\r\n }\r\n\r\n .pl-lg--6,\r\n .px-lg--6 {\r\n padding-left: -4.5rem !important;\r\n }\r\n\r\n .p-lg--5 {\r\n padding: -3rem !important;\r\n }\r\n\r\n .pt-lg--5,\r\n .py-lg--5 {\r\n padding-top: -3rem !important;\r\n }\r\n\r\n .pr-lg--5,\r\n .px-lg--5 {\r\n padding-right: -3rem !important;\r\n }\r\n\r\n .pb-lg--5,\r\n .py-lg--5 {\r\n padding-bottom: -3rem !important;\r\n }\r\n\r\n .pl-lg--5,\r\n .px-lg--5 {\r\n padding-left: -3rem !important;\r\n }\r\n\r\n .p-lg--4 {\r\n padding: -1.5rem !important;\r\n }\r\n\r\n .pt-lg--4,\r\n .py-lg--4 {\r\n padding-top: -1.5rem !important;\r\n }\r\n\r\n .pr-lg--4,\r\n .px-lg--4 {\r\n padding-right: -1.5rem !important;\r\n }\r\n\r\n .pb-lg--4,\r\n .py-lg--4 {\r\n padding-bottom: -1.5rem !important;\r\n }\r\n\r\n .pl-lg--4,\r\n .px-lg--4 {\r\n padding-left: -1.5rem !important;\r\n }\r\n\r\n .p-lg--3 {\r\n padding: -1rem !important;\r\n }\r\n\r\n .pt-lg--3,\r\n .py-lg--3 {\r\n padding-top: -1rem !important;\r\n }\r\n\r\n .pr-lg--3,\r\n .px-lg--3 {\r\n padding-right: -1rem !important;\r\n }\r\n\r\n .pb-lg--3,\r\n .py-lg--3 {\r\n padding-bottom: -1rem !important;\r\n }\r\n\r\n .pl-lg--3,\r\n .px-lg--3 {\r\n padding-left: -1rem !important;\r\n }\r\n\r\n .p-lg--2 {\r\n padding: -0.5rem !important;\r\n }\r\n\r\n .pt-lg--2,\r\n .py-lg--2 {\r\n padding-top: -0.5rem !important;\r\n }\r\n\r\n .pr-lg--2,\r\n .px-lg--2 {\r\n padding-right: -0.5rem !important;\r\n }\r\n\r\n .pb-lg--2,\r\n .py-lg--2 {\r\n padding-bottom: -0.5rem !important;\r\n }\r\n\r\n .pl-lg--2,\r\n .px-lg--2 {\r\n padding-left: -0.5rem !important;\r\n }\r\n\r\n .p-lg--1 {\r\n padding: -0.25rem !important;\r\n }\r\n\r\n .pt-lg--1,\r\n .py-lg--1 {\r\n padding-top: -0.25rem !important;\r\n }\r\n\r\n .pr-lg--1,\r\n .px-lg--1 {\r\n padding-right: -0.25rem !important;\r\n }\r\n\r\n .pb-lg--1,\r\n .py-lg--1 {\r\n padding-bottom: -0.25rem !important;\r\n }\r\n\r\n .pl-lg--1,\r\n .px-lg--1 {\r\n padding-left: -0.25rem !important;\r\n }\r\n\r\n .p-lg-6 {\r\n padding: 4.5rem !important;\r\n }\r\n\r\n .pt-lg-6,\r\n .py-lg-6 {\r\n padding-top: 4.5rem !important;\r\n }\r\n\r\n .pr-lg-6,\r\n .px-lg-6 {\r\n padding-right: 4.5rem !important;\r\n }\r\n\r\n .pb-lg-6,\r\n .py-lg-6 {\r\n padding-bottom: 4.5rem !important;\r\n }\r\n\r\n .pl-lg-6,\r\n .px-lg-6 {\r\n padding-left: 4.5rem !important;\r\n }\r\n\r\n .p-lg-7 {\r\n padding: 6rem !important;\r\n }\r\n\r\n .pt-lg-7,\r\n .py-lg-7 {\r\n padding-top: 6rem !important;\r\n }\r\n\r\n .pr-lg-7,\r\n .px-lg-7 {\r\n padding-right: 6rem !important;\r\n }\r\n\r\n .pb-lg-7,\r\n .py-lg-7 {\r\n padding-bottom: 6rem !important;\r\n }\r\n\r\n .pl-lg-7,\r\n .px-lg-7 {\r\n padding-left: 6rem !important;\r\n }\r\n\r\n .p-lg-8 {\r\n padding: 8rem !important;\r\n }\r\n\r\n .pt-lg-8,\r\n .py-lg-8 {\r\n padding-top: 8rem !important;\r\n }\r\n\r\n .pr-lg-8,\r\n .px-lg-8 {\r\n padding-right: 8rem !important;\r\n }\r\n\r\n .pb-lg-8,\r\n .py-lg-8 {\r\n padding-bottom: 8rem !important;\r\n }\r\n\r\n .pl-lg-8,\r\n .px-lg-8 {\r\n padding-left: 8rem !important;\r\n }\r\n\r\n .p-lg-9 {\r\n padding: 10rem !important;\r\n }\r\n\r\n .pt-lg-9,\r\n .py-lg-9 {\r\n padding-top: 10rem !important;\r\n }\r\n\r\n .pr-lg-9,\r\n .px-lg-9 {\r\n padding-right: 10rem !important;\r\n }\r\n\r\n .pb-lg-9,\r\n .py-lg-9 {\r\n padding-bottom: 10rem !important;\r\n }\r\n\r\n .pl-lg-9,\r\n .px-lg-9 {\r\n padding-left: 10rem !important;\r\n }\r\n\r\n .m-lg-auto {\r\n margin: auto !important;\r\n }\r\n\r\n .mt-lg-auto,\r\n .my-lg-auto {\r\n margin-top: auto !important;\r\n }\r\n\r\n .mr-lg-auto,\r\n .mx-lg-auto {\r\n margin-right: auto !important;\r\n }\r\n\r\n .mb-lg-auto,\r\n .my-lg-auto {\r\n margin-bottom: auto !important;\r\n }\r\n\r\n .ml-lg-auto,\r\n .mx-lg-auto {\r\n margin-left: auto !important;\r\n }\r\n }\r\n\r\n @media (min-width: 1200px) {\r\n .m-xl-0 {\r\n margin: 0 !important;\r\n }\r\n\r\n .mt-xl-0,\r\n .my-xl-0 {\r\n margin-top: 0 !important;\r\n }\r\n\r\n .mr-xl-0,\r\n .mx-xl-0 {\r\n margin-right: 0 !important;\r\n }\r\n\r\n .mb-xl-0,\r\n .my-xl-0 {\r\n margin-bottom: 0 !important;\r\n }\r\n\r\n .ml-xl-0,\r\n .mx-xl-0 {\r\n margin-left: 0 !important;\r\n }\r\n\r\n .m-xl-1 {\r\n margin: 0.25rem !important;\r\n }\r\n\r\n .mt-xl-1,\r\n .my-xl-1 {\r\n margin-top: 0.25rem !important;\r\n }\r\n\r\n .mr-xl-1,\r\n .mx-xl-1 {\r\n margin-right: 0.25rem !important;\r\n }\r\n\r\n .mb-xl-1,\r\n .my-xl-1 {\r\n margin-bottom: 0.25rem !important;\r\n }\r\n\r\n .ml-xl-1,\r\n .mx-xl-1 {\r\n margin-left: 0.25rem !important;\r\n }\r\n\r\n .m-xl-2 {\r\n margin: 0.5rem !important;\r\n }\r\n\r\n .mt-xl-2,\r\n .my-xl-2 {\r\n margin-top: 0.5rem !important;\r\n }\r\n\r\n .mr-xl-2,\r\n .mx-xl-2 {\r\n margin-right: 0.5rem !important;\r\n }\r\n\r\n .mb-xl-2,\r\n .my-xl-2 {\r\n margin-bottom: 0.5rem !important;\r\n }\r\n\r\n .ml-xl-2,\r\n .mx-xl-2 {\r\n margin-left: 0.5rem !important;\r\n }\r\n\r\n .m-xl-3 {\r\n margin: 1rem !important;\r\n }\r\n\r\n .mt-xl-3,\r\n .my-xl-3 {\r\n margin-top: 1rem !important;\r\n }\r\n\r\n .mr-xl-3,\r\n .mx-xl-3 {\r\n margin-right: 1rem !important;\r\n }\r\n\r\n .mb-xl-3,\r\n .my-xl-3 {\r\n margin-bottom: 1rem !important;\r\n }\r\n\r\n .ml-xl-3,\r\n .mx-xl-3 {\r\n margin-left: 1rem !important;\r\n }\r\n\r\n .m-xl-4 {\r\n margin: 1.5rem !important;\r\n }\r\n\r\n .mt-xl-4,\r\n .my-xl-4 {\r\n margin-top: 1.5rem !important;\r\n }\r\n\r\n .mr-xl-4,\r\n .mx-xl-4 {\r\n margin-right: 1.5rem !important;\r\n }\r\n\r\n .mb-xl-4,\r\n .my-xl-4 {\r\n margin-bottom: 1.5rem !important;\r\n }\r\n\r\n .ml-xl-4,\r\n .mx-xl-4 {\r\n margin-left: 1.5rem !important;\r\n }\r\n\r\n .m-xl-5 {\r\n margin: 3rem !important;\r\n }\r\n\r\n .mt-xl-5,\r\n .my-xl-5 {\r\n margin-top: 3rem !important;\r\n }\r\n\r\n .mr-xl-5,\r\n .mx-xl-5 {\r\n margin-right: 3rem !important;\r\n }\r\n\r\n .mb-xl-5,\r\n .my-xl-5 {\r\n margin-bottom: 3rem !important;\r\n }\r\n\r\n .ml-xl-5,\r\n .mx-xl-5 {\r\n margin-left: 3rem !important;\r\n }\r\n\r\n .m-xl--9 {\r\n margin: -10rem !important;\r\n }\r\n\r\n .mt-xl--9,\r\n .my-xl--9 {\r\n margin-top: -10rem !important;\r\n }\r\n\r\n .mr-xl--9,\r\n .mx-xl--9 {\r\n margin-right: -10rem !important;\r\n }\r\n\r\n .mb-xl--9,\r\n .my-xl--9 {\r\n margin-bottom: -10rem !important;\r\n }\r\n\r\n .ml-xl--9,\r\n .mx-xl--9 {\r\n margin-left: -10rem !important;\r\n }\r\n\r\n .m-xl--8 {\r\n margin: -8rem !important;\r\n }\r\n\r\n .mt-xl--8,\r\n .my-xl--8 {\r\n margin-top: -8rem !important;\r\n }\r\n\r\n .mr-xl--8,\r\n .mx-xl--8 {\r\n margin-right: -8rem !important;\r\n }\r\n\r\n .mb-xl--8,\r\n .my-xl--8 {\r\n margin-bottom: -8rem !important;\r\n }\r\n\r\n .ml-xl--8,\r\n .mx-xl--8 {\r\n margin-left: -8rem !important;\r\n }\r\n\r\n .m-xl--7 {\r\n margin: -6rem !important;\r\n }\r\n\r\n .mt-xl--7,\r\n .my-xl--7 {\r\n margin-top: -6rem !important;\r\n }\r\n\r\n .mr-xl--7,\r\n .mx-xl--7 {\r\n margin-right: -6rem !important;\r\n }\r\n\r\n .mb-xl--7,\r\n .my-xl--7 {\r\n margin-bottom: -6rem !important;\r\n }\r\n\r\n .ml-xl--7,\r\n .mx-xl--7 {\r\n margin-left: -6rem !important;\r\n }\r\n\r\n .m-xl--6 {\r\n margin: -4.5rem !important;\r\n }\r\n\r\n .mt-xl--6,\r\n .my-xl--6 {\r\n margin-top: -4.5rem !important;\r\n }\r\n\r\n .mr-xl--6,\r\n .mx-xl--6 {\r\n margin-right: -4.5rem !important;\r\n }\r\n\r\n .mb-xl--6,\r\n .my-xl--6 {\r\n margin-bottom: -4.5rem !important;\r\n }\r\n\r\n .ml-xl--6,\r\n .mx-xl--6 {\r\n margin-left: -4.5rem !important;\r\n }\r\n\r\n .m-xl--5 {\r\n margin: -3rem !important;\r\n }\r\n\r\n .mt-xl--5,\r\n .my-xl--5 {\r\n margin-top: -3rem !important;\r\n }\r\n\r\n .mr-xl--5,\r\n .mx-xl--5 {\r\n margin-right: -3rem !important;\r\n }\r\n\r\n .mb-xl--5,\r\n .my-xl--5 {\r\n margin-bottom: -3rem !important;\r\n }\r\n\r\n .ml-xl--5,\r\n .mx-xl--5 {\r\n margin-left: -3rem !important;\r\n }\r\n\r\n .m-xl--4 {\r\n margin: -1.5rem !important;\r\n }\r\n\r\n .mt-xl--4,\r\n .my-xl--4 {\r\n margin-top: -1.5rem !important;\r\n }\r\n\r\n .mr-xl--4,\r\n .mx-xl--4 {\r\n margin-right: -1.5rem !important;\r\n }\r\n\r\n .mb-xl--4,\r\n .my-xl--4 {\r\n margin-bottom: -1.5rem !important;\r\n }\r\n\r\n .ml-xl--4,\r\n .mx-xl--4 {\r\n margin-left: -1.5rem !important;\r\n }\r\n\r\n .m-xl--3 {\r\n margin: -1rem !important;\r\n }\r\n\r\n .mt-xl--3,\r\n .my-xl--3 {\r\n margin-top: -1rem !important;\r\n }\r\n\r\n .mr-xl--3,\r\n .mx-xl--3 {\r\n margin-right: -1rem !important;\r\n }\r\n\r\n .mb-xl--3,\r\n .my-xl--3 {\r\n margin-bottom: -1rem !important;\r\n }\r\n\r\n .ml-xl--3,\r\n .mx-xl--3 {\r\n margin-left: -1rem !important;\r\n }\r\n\r\n .m-xl--2 {\r\n margin: -0.5rem !important;\r\n }\r\n\r\n .mt-xl--2,\r\n .my-xl--2 {\r\n margin-top: -0.5rem !important;\r\n }\r\n\r\n .mr-xl--2,\r\n .mx-xl--2 {\r\n margin-right: -0.5rem !important;\r\n }\r\n\r\n .mb-xl--2,\r\n .my-xl--2 {\r\n margin-bottom: -0.5rem !important;\r\n }\r\n\r\n .ml-xl--2,\r\n .mx-xl--2 {\r\n margin-left: -0.5rem !important;\r\n }\r\n\r\n .m-xl--1 {\r\n margin: -0.25rem !important;\r\n }\r\n\r\n .mt-xl--1,\r\n .my-xl--1 {\r\n margin-top: -0.25rem !important;\r\n }\r\n\r\n .mr-xl--1,\r\n .mx-xl--1 {\r\n margin-right: -0.25rem !important;\r\n }\r\n\r\n .mb-xl--1,\r\n .my-xl--1 {\r\n margin-bottom: -0.25rem !important;\r\n }\r\n\r\n .ml-xl--1,\r\n .mx-xl--1 {\r\n margin-left: -0.25rem !important;\r\n }\r\n\r\n .m-xl-6 {\r\n margin: 4.5rem !important;\r\n }\r\n\r\n .mt-xl-6,\r\n .my-xl-6 {\r\n margin-top: 4.5rem !important;\r\n }\r\n\r\n .mr-xl-6,\r\n .mx-xl-6 {\r\n margin-right: 4.5rem !important;\r\n }\r\n\r\n .mb-xl-6,\r\n .my-xl-6 {\r\n margin-bottom: 4.5rem !important;\r\n }\r\n\r\n .ml-xl-6,\r\n .mx-xl-6 {\r\n margin-left: 4.5rem !important;\r\n }\r\n\r\n .m-xl-7 {\r\n margin: 6rem !important;\r\n }\r\n\r\n .mt-xl-7,\r\n .my-xl-7 {\r\n margin-top: 6rem !important;\r\n }\r\n\r\n .mr-xl-7,\r\n .mx-xl-7 {\r\n margin-right: 6rem !important;\r\n }\r\n\r\n .mb-xl-7,\r\n .my-xl-7 {\r\n margin-bottom: 6rem !important;\r\n }\r\n\r\n .ml-xl-7,\r\n .mx-xl-7 {\r\n margin-left: 6rem !important;\r\n }\r\n\r\n .m-xl-8 {\r\n margin: 8rem !important;\r\n }\r\n\r\n .mt-xl-8,\r\n .my-xl-8 {\r\n margin-top: 8rem !important;\r\n }\r\n\r\n .mr-xl-8,\r\n .mx-xl-8 {\r\n margin-right: 8rem !important;\r\n }\r\n\r\n .mb-xl-8,\r\n .my-xl-8 {\r\n margin-bottom: 8rem !important;\r\n }\r\n\r\n .ml-xl-8,\r\n .mx-xl-8 {\r\n margin-left: 8rem !important;\r\n }\r\n\r\n .m-xl-9 {\r\n margin: 10rem !important;\r\n }\r\n\r\n .mt-xl-9,\r\n .my-xl-9 {\r\n margin-top: 10rem !important;\r\n }\r\n\r\n .mr-xl-9,\r\n .mx-xl-9 {\r\n margin-right: 10rem !important;\r\n }\r\n\r\n .mb-xl-9,\r\n .my-xl-9 {\r\n margin-bottom: 10rem !important;\r\n }\r\n\r\n .ml-xl-9,\r\n .mx-xl-9 {\r\n margin-left: 10rem !important;\r\n }\r\n\r\n .p-xl-0 {\r\n padding: 0 !important;\r\n }\r\n\r\n .pt-xl-0,\r\n .py-xl-0 {\r\n padding-top: 0 !important;\r\n }\r\n\r\n .pr-xl-0,\r\n .px-xl-0 {\r\n padding-right: 0 !important;\r\n }\r\n\r\n .pb-xl-0,\r\n .py-xl-0 {\r\n padding-bottom: 0 !important;\r\n }\r\n\r\n .pl-xl-0,\r\n .px-xl-0 {\r\n padding-left: 0 !important;\r\n }\r\n\r\n .p-xl-1 {\r\n padding: 0.25rem !important;\r\n }\r\n\r\n .pt-xl-1,\r\n .py-xl-1 {\r\n padding-top: 0.25rem !important;\r\n }\r\n\r\n .pr-xl-1,\r\n .px-xl-1 {\r\n padding-right: 0.25rem !important;\r\n }\r\n\r\n .pb-xl-1,\r\n .py-xl-1 {\r\n padding-bottom: 0.25rem !important;\r\n }\r\n\r\n .pl-xl-1,\r\n .px-xl-1 {\r\n padding-left: 0.25rem !important;\r\n }\r\n\r\n .p-xl-2 {\r\n padding: 0.5rem !important;\r\n }\r\n\r\n .pt-xl-2,\r\n .py-xl-2 {\r\n padding-top: 0.5rem !important;\r\n }\r\n\r\n .pr-xl-2,\r\n .px-xl-2 {\r\n padding-right: 0.5rem !important;\r\n }\r\n\r\n .pb-xl-2,\r\n .py-xl-2 {\r\n padding-bottom: 0.5rem !important;\r\n }\r\n\r\n .pl-xl-2,\r\n .px-xl-2 {\r\n padding-left: 0.5rem !important;\r\n }\r\n\r\n .p-xl-3 {\r\n padding: 1rem !important;\r\n }\r\n\r\n .pt-xl-3,\r\n .py-xl-3 {\r\n padding-top: 1rem !important;\r\n }\r\n\r\n .pr-xl-3,\r\n .px-xl-3 {\r\n padding-right: 1rem !important;\r\n }\r\n\r\n .pb-xl-3,\r\n .py-xl-3 {\r\n padding-bottom: 1rem !important;\r\n }\r\n\r\n .pl-xl-3,\r\n .px-xl-3 {\r\n padding-left: 1rem !important;\r\n }\r\n\r\n .p-xl-4 {\r\n padding: 1.5rem !important;\r\n }\r\n\r\n .pt-xl-4,\r\n .py-xl-4 {\r\n padding-top: 1.5rem !important;\r\n }\r\n\r\n .pr-xl-4,\r\n .px-xl-4 {\r\n padding-right: 1.5rem !important;\r\n }\r\n\r\n .pb-xl-4,\r\n .py-xl-4 {\r\n padding-bottom: 1.5rem !important;\r\n }\r\n\r\n .pl-xl-4,\r\n .px-xl-4 {\r\n padding-left: 1.5rem !important;\r\n }\r\n\r\n .p-xl-5 {\r\n padding: 3rem !important;\r\n }\r\n\r\n .pt-xl-5,\r\n .py-xl-5 {\r\n padding-top: 3rem !important;\r\n }\r\n\r\n .pr-xl-5,\r\n .px-xl-5 {\r\n padding-right: 3rem !important;\r\n }\r\n\r\n .pb-xl-5,\r\n .py-xl-5 {\r\n padding-bottom: 3rem !important;\r\n }\r\n\r\n .pl-xl-5,\r\n .px-xl-5 {\r\n padding-left: 3rem !important;\r\n }\r\n\r\n .p-xl--9 {\r\n padding: -10rem !important;\r\n }\r\n\r\n .pt-xl--9,\r\n .py-xl--9 {\r\n padding-top: -10rem !important;\r\n }\r\n\r\n .pr-xl--9,\r\n .px-xl--9 {\r\n padding-right: -10rem !important;\r\n }\r\n\r\n .pb-xl--9,\r\n .py-xl--9 {\r\n padding-bottom: -10rem !important;\r\n }\r\n\r\n .pl-xl--9,\r\n .px-xl--9 {\r\n padding-left: -10rem !important;\r\n }\r\n\r\n .p-xl--8 {\r\n padding: -8rem !important;\r\n }\r\n\r\n .pt-xl--8,\r\n .py-xl--8 {\r\n padding-top: -8rem !important;\r\n }\r\n\r\n .pr-xl--8,\r\n .px-xl--8 {\r\n padding-right: -8rem !important;\r\n }\r\n\r\n .pb-xl--8,\r\n .py-xl--8 {\r\n padding-bottom: -8rem !important;\r\n }\r\n\r\n .pl-xl--8,\r\n .px-xl--8 {\r\n padding-left: -8rem !important;\r\n }\r\n\r\n .p-xl--7 {\r\n padding: -6rem !important;\r\n }\r\n\r\n .pt-xl--7,\r\n .py-xl--7 {\r\n padding-top: -6rem !important;\r\n }\r\n\r\n .pr-xl--7,\r\n .px-xl--7 {\r\n padding-right: -6rem !important;\r\n }\r\n\r\n .pb-xl--7,\r\n .py-xl--7 {\r\n padding-bottom: -6rem !important;\r\n }\r\n\r\n .pl-xl--7,\r\n .px-xl--7 {\r\n padding-left: -6rem !important;\r\n }\r\n\r\n .p-xl--6 {\r\n padding: -4.5rem !important;\r\n }\r\n\r\n .pt-xl--6,\r\n .py-xl--6 {\r\n padding-top: -4.5rem !important;\r\n }\r\n\r\n .pr-xl--6,\r\n .px-xl--6 {\r\n padding-right: -4.5rem !important;\r\n }\r\n\r\n .pb-xl--6,\r\n .py-xl--6 {\r\n padding-bottom: -4.5rem !important;\r\n }\r\n\r\n .pl-xl--6,\r\n .px-xl--6 {\r\n padding-left: -4.5rem !important;\r\n }\r\n\r\n .p-xl--5 {\r\n padding: -3rem !important;\r\n }\r\n\r\n .pt-xl--5,\r\n .py-xl--5 {\r\n padding-top: -3rem !important;\r\n }\r\n\r\n .pr-xl--5,\r\n .px-xl--5 {\r\n padding-right: -3rem !important;\r\n }\r\n\r\n .pb-xl--5,\r\n .py-xl--5 {\r\n padding-bottom: -3rem !important;\r\n }\r\n\r\n .pl-xl--5,\r\n .px-xl--5 {\r\n padding-left: -3rem !important;\r\n }\r\n\r\n .p-xl--4 {\r\n padding: -1.5rem !important;\r\n }\r\n\r\n .pt-xl--4,\r\n .py-xl--4 {\r\n padding-top: -1.5rem !important;\r\n }\r\n\r\n .pr-xl--4,\r\n .px-xl--4 {\r\n padding-right: -1.5rem !important;\r\n }\r\n\r\n .pb-xl--4,\r\n .py-xl--4 {\r\n padding-bottom: -1.5rem !important;\r\n }\r\n\r\n .pl-xl--4,\r\n .px-xl--4 {\r\n padding-left: -1.5rem !important;\r\n }\r\n\r\n .p-xl--3 {\r\n padding: -1rem !important;\r\n }\r\n\r\n .pt-xl--3,\r\n .py-xl--3 {\r\n padding-top: -1rem !important;\r\n }\r\n\r\n .pr-xl--3,\r\n .px-xl--3 {\r\n padding-right: -1rem !important;\r\n }\r\n\r\n .pb-xl--3,\r\n .py-xl--3 {\r\n padding-bottom: -1rem !important;\r\n }\r\n\r\n .pl-xl--3,\r\n .px-xl--3 {\r\n padding-left: -1rem !important;\r\n }\r\n\r\n .p-xl--2 {\r\n padding: -0.5rem !important;\r\n }\r\n\r\n .pt-xl--2,\r\n .py-xl--2 {\r\n padding-top: -0.5rem !important;\r\n }\r\n\r\n .pr-xl--2,\r\n .px-xl--2 {\r\n padding-right: -0.5rem !important;\r\n }\r\n\r\n .pb-xl--2,\r\n .py-xl--2 {\r\n padding-bottom: -0.5rem !important;\r\n }\r\n\r\n .pl-xl--2,\r\n .px-xl--2 {\r\n padding-left: -0.5rem !important;\r\n }\r\n\r\n .p-xl--1 {\r\n padding: -0.25rem !important;\r\n }\r\n\r\n .pt-xl--1,\r\n .py-xl--1 {\r\n padding-top: -0.25rem !important;\r\n }\r\n\r\n .pr-xl--1,\r\n .px-xl--1 {\r\n padding-right: -0.25rem !important;\r\n }\r\n\r\n .pb-xl--1,\r\n .py-xl--1 {\r\n padding-bottom: -0.25rem !important;\r\n }\r\n\r\n .pl-xl--1,\r\n .px-xl--1 {\r\n padding-left: -0.25rem !important;\r\n }\r\n\r\n .p-xl-6 {\r\n padding: 4.5rem !important;\r\n }\r\n\r\n .pt-xl-6,\r\n .py-xl-6 {\r\n padding-top: 4.5rem !important;\r\n }\r\n\r\n .pr-xl-6,\r\n .px-xl-6 {\r\n padding-right: 4.5rem !important;\r\n }\r\n\r\n .pb-xl-6,\r\n .py-xl-6 {\r\n padding-bottom: 4.5rem !important;\r\n }\r\n\r\n .pl-xl-6,\r\n .px-xl-6 {\r\n padding-left: 4.5rem !important;\r\n }\r\n\r\n .p-xl-7 {\r\n padding: 6rem !important;\r\n }\r\n\r\n .pt-xl-7,\r\n .py-xl-7 {\r\n padding-top: 6rem !important;\r\n }\r\n\r\n .pr-xl-7,\r\n .px-xl-7 {\r\n padding-right: 6rem !important;\r\n }\r\n\r\n .pb-xl-7,\r\n .py-xl-7 {\r\n padding-bottom: 6rem !important;\r\n }\r\n\r\n .pl-xl-7,\r\n .px-xl-7 {\r\n padding-left: 6rem !important;\r\n }\r\n\r\n .p-xl-8 {\r\n padding: 8rem !important;\r\n }\r\n\r\n .pt-xl-8,\r\n .py-xl-8 {\r\n padding-top: 8rem !important;\r\n }\r\n\r\n .pr-xl-8,\r\n .px-xl-8 {\r\n padding-right: 8rem !important;\r\n }\r\n\r\n .pb-xl-8,\r\n .py-xl-8 {\r\n padding-bottom: 8rem !important;\r\n }\r\n\r\n .pl-xl-8,\r\n .px-xl-8 {\r\n padding-left: 8rem !important;\r\n }\r\n\r\n .p-xl-9 {\r\n padding: 10rem !important;\r\n }\r\n\r\n .pt-xl-9,\r\n .py-xl-9 {\r\n padding-top: 10rem !important;\r\n }\r\n\r\n .pr-xl-9,\r\n .px-xl-9 {\r\n padding-right: 10rem !important;\r\n }\r\n\r\n .pb-xl-9,\r\n .py-xl-9 {\r\n padding-bottom: 10rem !important;\r\n }\r\n\r\n .pl-xl-9,\r\n .px-xl-9 {\r\n padding-left: 10rem !important;\r\n }\r\n\r\n .m-xl-auto {\r\n margin: auto !important;\r\n }\r\n\r\n .mt-xl-auto,\r\n .my-xl-auto {\r\n margin-top: auto !important;\r\n }\r\n\r\n .mr-xl-auto,\r\n .mx-xl-auto {\r\n margin-right: auto !important;\r\n }\r\n\r\n .mb-xl-auto,\r\n .my-xl-auto {\r\n margin-bottom: auto !important;\r\n }\r\n\r\n .ml-xl-auto,\r\n .mx-xl-auto {\r\n margin-left: auto !important;\r\n }\r\n }\r\n\r\n .font-weight-bold {\r\n font-weight: 600 !important;\r\n }\r\n\r\n .text-default {\r\n color: ${colors.bootstrap.default} !important;\r\n }\r\n\r\n a.text-default:hover,\r\n a.text-default:focus {\r\n color: #0b1526 !important;\r\n }\r\n\r\n .text-white {\r\n color: ${colors.neutrals.min} !important;\r\n }\r\n\r\n a.text-white:hover,\r\n a.text-white:focus {\r\n color: ${colors.neutrals.n400} !important;\r\n }\r\n\r\n .text-neutral {\r\n color: ${colors.neutrals.min} !important;\r\n }\r\n\r\n a.text-neutral:hover,\r\n a.text-neutral:focus {\r\n color: ${colors.neutrals.n400} !important;\r\n }\r\n\r\n .text-darker {\r\n color: ${colors.neutrals.max} !important;\r\n }\r\n\r\n a.text-darker:hover,\r\n a.text-darker:focus {\r\n color: ${colors.neutrals.max} !important;\r\n }\r\n\r\n .text-hide {\r\n font: 0/0 a;\r\n color: ${colors.transparent};\r\n text-shadow: none;\r\n background-color: ${colors.transparent};\r\n border: 0;\r\n }\r\n\r\n .visible {\r\n visibility: visible !important;\r\n }\r\n\r\n .invisible {\r\n visibility: hidden !important;\r\n }\r\n\r\n @media print {\r\n *,\r\n *::before,\r\n *::after {\r\n text-shadow: none !important;\r\n box-shadow: none !important;\r\n }\r\n\r\n a:not(.btn) {\r\n text-decoration: underline;\r\n }\r\n\r\n abbr[title]::after {\r\n content: \" (\" attr(title) \")\";\r\n }\r\n\r\n pre {\r\n white-space: pre-wrap !important;\r\n }\r\n\r\n pre,\r\n blockquote {\r\n border: 1px solid #adb5bd;\r\n page-break-inside: avoid;\r\n }\r\n\r\n thead {\r\n display: table-header-group;\r\n }\r\n\r\n tr,\r\n img {\r\n page-break-inside: avoid;\r\n }\r\n\r\n p,\r\n h2,\r\n h3 {\r\n orphans: 3;\r\n widows: 3;\r\n }\r\n\r\n h2,\r\n h3 {\r\n page-break-after: avoid;\r\n }\r\n\r\n @page {\r\n size: a3;\r\n }\r\n\r\n body {\r\n min-width: 992px !important;\r\n }\r\n\r\n .container {\r\n min-width: 992px !important;\r\n }\r\n\r\n .navbar {\r\n display: none;\r\n }\r\n\r\n .badge {\r\n border: 1px solid #000;\r\n }\r\n\r\n .table {\r\n border-collapse: collapse !important;\r\n }\r\n\r\n .table td,\r\n .table th {\r\n background-color: ${colors.neutrals.min} !important;\r\n }\r\n\r\n .table-bordered th,\r\n .table-bordered td {\r\n border: 1px solid #dee2e6 !important;\r\n }\r\n\r\n .table-dark {\r\n color: inherit;\r\n }\r\n\r\n .table-dark th,\r\n .table-dark td,\r\n .table-dark thead th,\r\n .table-dark tbody + tbody {\r\n border-color: ${colors.neutrals.n200};\r\n }\r\n\r\n .table .thead-dark th {\r\n color: inherit;\r\n border-color: ${colors.neutrals.n200};\r\n }\r\n }\r\n\r\n iframe {\r\n border: 0;\r\n }\r\n\r\n figcaption,\r\n figure,\r\n main {\r\n display: block;\r\n }\r\n\r\n main {\r\n overflow: hidden;\r\n }\r\n\r\n .bg-blue {\r\n background-color: ${colors.bootstrap.primary} !important;\r\n }\r\n\r\n a.bg-blue:hover,\r\n a.bg-blue:focus,\r\n button.bg-blue:hover,\r\n button.bg-blue:focus {\r\n background-color: #324cdd !important;\r\n }\r\n\r\n .bg-indigo {\r\n background-color: ${colors.hues.indigo} !important;\r\n }\r\n\r\n a.bg-indigo:hover,\r\n a.bg-indigo:focus,\r\n button.bg-indigo:hover,\r\n button.bg-indigo:focus {\r\n background-color: #3d027b !important;\r\n }\r\n\r\n .bg-purple {\r\n background-color: ${colors.hues.violet} !important;\r\n }\r\n\r\n a.bg-purple:hover,\r\n a.bg-purple:focus,\r\n button.bg-purple:hover,\r\n button.bg-purple:focus {\r\n background-color: #683bd7 !important;\r\n }\r\n\r\n .bg-pink {\r\n background-color: ${colors.hues.pink} !important;\r\n }\r\n\r\n a.bg-pink:hover,\r\n a.bg-pink:focus,\r\n button.bg-pink:hover,\r\n button.bg-pink:focus {\r\n background-color: #ed7790 !important;\r\n }\r\n\r\n .bg-red {\r\n background-color: ${colors.hues.red} !important;\r\n }\r\n\r\n a.bg-red:hover,\r\n a.bg-red:focus,\r\n button.bg-red:hover,\r\n button.bg-red:focus {\r\n background-color: #ec0c38 !important;\r\n }\r\n\r\n .bg-orange {\r\n background-color: ${colors.hues.orange} !important;\r\n }\r\n\r\n a.bg-orange:hover,\r\n a.bg-orange:focus,\r\n button.bg-orange:hover,\r\n button.bg-orange:focus {\r\n background-color: #fa3a0e !important;\r\n }\r\n\r\n .bg-yellow {\r\n background-color: #ffd600 !important;\r\n }\r\n\r\n a.bg-yellow:hover,\r\n a.bg-yellow:focus,\r\n button.bg-yellow:hover,\r\n button.bg-yellow:focus {\r\n background-color: #ccab00 !important;\r\n }\r\n\r\n .bg-green {\r\n background-color: ${colors.hues.green} !important;\r\n }\r\n\r\n a.bg-green:hover,\r\n a.bg-green:focus,\r\n button.bg-green:hover,\r\n button.bg-green:focus {\r\n background-color: ${colors.hues.green} !important;\r\n }\r\n\r\n .bg-teal {\r\n background-color: ${colors.hues.teal} !important;\r\n }\r\n\r\n a.bg-teal:hover,\r\n a.bg-teal:focus,\r\n button.bg-teal:hover,\r\n button.bg-teal:focus {\r\n background-color: #0da5c0 !important;\r\n }\r\n\r\n .bg-cyan {\r\n background-color: ${colors.hues.cyan} !important;\r\n }\r\n\r\n a.bg-cyan:hover,\r\n a.bg-cyan:focus,\r\n button.bg-cyan:hover,\r\n button.bg-cyan:focus {\r\n background-color: ${colors.hues.cyan} !important;\r\n }\r\n\r\n .bg-white {\r\n background-color: ${colors.neutrals.min} !important;\r\n }\r\n\r\n a.bg-white:hover,\r\n a.bg-white:focus,\r\n button.bg-white:hover,\r\n button.bg-white:focus {\r\n background-color: ${colors.neutrals.n400} !important;\r\n }\r\n\r\n .bg-gray {\r\n background-color: ${colors.neutrals.n600} !important;\r\n }\r\n\r\n a.bg-gray:hover,\r\n a.bg-gray:focus,\r\n button.bg-gray:hover,\r\n button.bg-gray:focus {\r\n background-color: #6a7e95 !important;\r\n }\r\n\r\n .bg-gray-dark {\r\n background-color: ${colors.neutrals.n800} !important;\r\n }\r\n\r\n a.bg-gray-dark:hover,\r\n a.bg-gray-dark:focus,\r\n button.bg-gray-dark:hover,\r\n button.bg-gray-dark:focus {\r\n background-color: #20203c !important;\r\n }\r\n\r\n .bg-light {\r\n background-color: ${colors.neutrals.n400} !important;\r\n }\r\n\r\n a.bg-light:hover,\r\n a.bg-light:focus,\r\n button.bg-light:hover,\r\n button.bg-light:focus {\r\n background-color: #b1bbc4 !important;\r\n }\r\n\r\n .bg-lighter {\r\n background-color: ${colors.neutrals.n200} !important;\r\n }\r\n\r\n a.bg-lighter:hover,\r\n a.bg-lighter:focus,\r\n button.bg-lighter:hover,\r\n button.bg-lighter:focus {\r\n background-color: #cbd3da !important;\r\n }\r\n\r\n .bg-gradient-secondary {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.bootstrap.secondary} 0,\r\n ${colors.bootstrap.secondaryLow} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-success {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.bootstrap.success} 0,\r\n ${colors.bootstrap.successLow} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-info {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.bootstrap.info} 0,\r\n ${colors.bootstrap.infoLow} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-warning {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.bootstrap.warning} 0,\r\n ${colors.bootstrap.warningLow} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-danger {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.bootstrap.danger} 0,\r\n ${colors.bootstrap.dangerLow} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-light {\r\n background: linear-gradient(87deg, #adb5bd 0, #adaebd 100%) !important;\r\n }\r\n\r\n .bg-gradient-dark {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.neutrals.n900} 0,\r\n ${colors.neutrals.n600} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-default {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.bootstrap.default} 0,\r\n ${colors.bootstrap.defaultLow} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-white {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.neutrals.min} 0,\r\n ${colors.neutrals.n200} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-neutral {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.neutrals.min} 0,\r\n white 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-darker {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.neutrals.max} 0,\r\n ${colors.neutrals.max} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-blue {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.hues.blue} 0,\r\n #825ee4 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-indigo {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.hues.indigo} 0,\r\n #9d03ad 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-purple {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.hues.violet} 0,\r\n #bc65e0 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-pink {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.hues.pink} 0,\r\n #f3b4a4 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-red {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.hues.red} 0,\r\n #f56036 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-orange {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.hues.orange} 0,\r\n #fbb140 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-yellow {\r\n background: linear-gradient(87deg, #ffd600 0, #beff00 100%) !important;\r\n }\r\n\r\n .bg-gradient-green {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.hues.green} 0,\r\n #2dcecc 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-teal {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.hues.teal} 0,\r\n #1171ef 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-cyan {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.hues.cyan} 0,\r\n #2be0ff 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-white {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.neutrals.min} 0,\r\n white 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-gray {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.neutrals.n600} 0,\r\n #888aaa 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-gray-dark {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.neutrals.n800} 0,\r\n #44325d 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-light {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.neutrals.n400} 0,\r\n #cecfda 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-lighter {\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.neutrals.n200} 0,\r\n #e9eaef 100%\r\n ) !important;\r\n }\r\n\r\n .bg-translucent-primary {\r\n background-color: rgba(63, 87, 223, 0.6) !important;\r\n }\r\n\r\n a.bg-translucent-primary:hover,\r\n a.bg-translucent-primary:focus,\r\n button.bg-translucent-primary:hover,\r\n button.bg-translucent-primary:focus {\r\n background-color: rgba(42, 68, 219, 0.6) !important;\r\n }\r\n\r\n .bg-translucent-secondary {\r\n background-color: rgba(221, 234, 242, 0.6) !important;\r\n }\r\n\r\n a.bg-translucent-secondary:hover,\r\n a.bg-translucent-secondary:focus,\r\n button.bg-translucent-secondary:hover,\r\n button.bg-translucent-secondary:focus {\r\n background-color: rgba(202, 222, 235, 0.6) !important;\r\n }\r\n\r\n .bg-translucent-success {\r\n background-color: rgba(39, 177, 118, 0.6) !important;\r\n }\r\n\r\n a.bg-translucent-success:hover,\r\n a.bg-translucent-success:focus,\r\n button.bg-translucent-success:hover,\r\n button.bg-translucent-success:focus {\r\n background-color: rgba(34, 156, 104, 0.6) !important;\r\n }\r\n\r\n .bg-translucent-info {\r\n background-color: rgba(14, 177, 206, 0.6) !important;\r\n }\r\n\r\n a.bg-translucent-info:hover,\r\n a.bg-translucent-info:focus,\r\n button.bg-translucent-info:hover,\r\n button.bg-translucent-info:focus {\r\n background-color: rgba(12, 156, 183, 0.6) !important;\r\n }\r\n\r\n .bg-translucent-warning {\r\n background-color: rgba(250, 70, 29, 0.6) !important;\r\n }\r\n\r\n a.bg-translucent-warning:hover,\r\n a.bg-translucent-warning:focus,\r\n button.bg-translucent-warning:hover,\r\n button.bg-translucent-warning:focus {\r\n background-color: rgba(249, 51, 5, 0.6) !important;\r\n }\r\n\r\n .bg-translucent-danger {\r\n background-color: rgba(243, 20, 64, 0.6) !important;\r\n }\r\n\r\n a.bg-translucent-danger:hover,\r\n a.bg-translucent-danger:focus,\r\n button.bg-translucent-danger:hover,\r\n button.bg-translucent-danger:focus {\r\n background-color: rgba(227, 11, 54, 0.6) !important;\r\n }\r\n\r\n .bg-translucent-light {\r\n background-color: rgba(153, 163, 173, 0.6) !important;\r\n }\r\n\r\n a.bg-translucent-light:hover,\r\n a.bg-translucent-light:focus,\r\n button.bg-translucent-light:hover,\r\n button.bg-translucent-light:focus {\r\n background-color: rgba(139, 150, 162, 0.6) !important;\r\n }\r\n\r\n .bg-translucent-dark {\r\n background-color: rgba(17, 19, 21, 0.6) !important;\r\n }\r\n\r\n a.bg-translucent-dark:hover,\r\n a.bg-translucent-dark:focus,\r\n button.bg-translucent-dark:hover,\r\n button.bg-translucent-dark:focus {\r\n background-color: rgba(6, 6, 7, 0.6) !important;\r\n }\r\n\r\n .bg-translucent-default {\r\n background-color: rgba(15, 28, 50, 0.6) !important;\r\n }\r\n\r\n a.bg-translucent-default:hover,\r\n a.bg-translucent-default:focus,\r\n button.bg-translucent-default:hover,\r\n button.bg-translucent-default:focus {\r\n background-color: rgba(9, 17, 30, 0.6) !important;\r\n }\r\n\r\n .bg-translucent-white {\r\n background-color: rgba(237, 237, 237, 0.6) !important;\r\n }\r\n\r\n a.bg-translucent-white:hover,\r\n a.bg-translucent-white:focus,\r\n button.bg-translucent-white:hover,\r\n button.bg-translucent-white:focus {\r\n background-color: rgba(224, 224, 224, 0.6) !important;\r\n }\r\n\r\n .bg-translucent-neutral {\r\n background-color: rgba(237, 237, 237, 0.6) !important;\r\n }\r\n\r\n a.bg-translucent-neutral:hover,\r\n a.bg-translucent-neutral:focus,\r\n button.bg-translucent-neutral:hover,\r\n button.bg-translucent-neutral:focus {\r\n background-color: rgba(224, 224, 224, 0.6) !important;\r\n }\r\n\r\n .bg-translucent-darker {\r\n background-color: rgba(0, 0, 0, 0.6) !important;\r\n }\r\n\r\n a.bg-translucent-darker:hover,\r\n a.bg-translucent-darker:focus,\r\n button.bg-translucent-darker:hover,\r\n button.bg-translucent-darker:focus {\r\n background-color: rgba(0, 0, 0, 0.6) !important;\r\n }\r\n\r\n .section-primary {\r\n background-color: ${colors.neutrals.background} !important;\r\n }\r\n\r\n a.section-primary:hover,\r\n a.section-primary:focus,\r\n button.section-primary:hover,\r\n button.section-primary:focus {\r\n background-color: #cbd3f8 !important;\r\n }\r\n\r\n .section-secondary {\r\n background-color: ${colors.bootstrap.secondary} !important;\r\n }\r\n\r\n a.section-secondary:hover,\r\n a.section-secondary:focus,\r\n button.section-secondary:hover,\r\n button.section-secondary:focus {\r\n background-color: #d2e3ee !important;\r\n }\r\n\r\n .section-light {\r\n background-color: ${colors.neutrals.n400} !important;\r\n }\r\n\r\n a.section-light:hover,\r\n a.section-light:focus,\r\n button.section-light:hover,\r\n button.section-light:focus {\r\n background-color: #b1bbc4 !important;\r\n }\r\n\r\n .section-dark {\r\n background-color: ${colors.neutrals.n900} !important;\r\n }\r\n\r\n a.section-dark:hover,\r\n a.section-dark:focus,\r\n button.section-dark:hover,\r\n button.section-dark:focus {\r\n background-color: #0a0c0d !important;\r\n }\r\n\r\n .section-darker {\r\n background-color: ${colors.neutrals.max} !important;\r\n }\r\n\r\n a.section-darker:hover,\r\n a.section-darker:focus,\r\n button.section-darker:hover,\r\n button.section-darker:focus {\r\n background-color: ${colors.neutrals.max} !important;\r\n }\r\n\r\n .bg-gradient-primary {\r\n color: ${colors.neutrals.min};\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.brand.second} 0,\r\n ${colors.brand.first} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-secondary {\r\n color: ${colors.neutrals.min};\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.bootstrap.secondary} 0,\r\n #f7f8fc 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-success {\r\n color: ${colors.neutrals.min};\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.bootstrap.success} 0,\r\n ${colors.bootstrap.successLow} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-info {\r\n color: ${colors.neutrals.min};\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.bootstrap.info} 0,\r\n ${colors.bootstrap.infoLow} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-warning {\r\n color: ${colors.neutrals.min};\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.bootstrap.warning} 0,\r\n ${colors.bootstrap.warningLow} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-danger {\r\n color: ${colors.neutrals.min};\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.bootstrap.danger} 0,\r\n ${colors.bootstrap.dangerLow} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-default {\r\n color: ${colors.neutrals.min};\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.bootstrap.default} 0,\r\n ${colors.bootstrap.defaultLow} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-white {\r\n color: ${colors.neutrals.max};\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.neutrals.min} 0,\r\n ${colors.neutrals.n200} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-light {\r\n color: ${colors.neutrals.max};\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.neutrals.n200} 0,\r\n ${colors.neutrals.n400} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-neutral {\r\n color: ${colors.neutrals.max};\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.neutrals.n400} 0,\r\n ${colors.neutrals.n600} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-dark {\r\n color: ${colors.neutrals.min};\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.neutrals.n600} 0,\r\n ${colors.neutrals.n800} 100%\r\n ) !important;\r\n }\r\n\r\n .bg-gradient-darker {\r\n color: ${colors.neutrals.min};\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.neutrals.n800} 0,\r\n ${colors.neutrals.max} 100%\r\n ) !important;\r\n }\r\n\r\n .fill-primary {\r\n fill: ${colors.bootstrap.primary};\r\n }\r\n\r\n .stroke-primary {\r\n stroke: ${colors.bootstrap.primary};\r\n }\r\n\r\n .fill-secondary {\r\n fill: ${colors.bootstrap.secondary};\r\n }\r\n\r\n .stroke-secondary {\r\n stroke: ${colors.bootstrap.secondary};\r\n }\r\n\r\n .fill-success {\r\n fill: ${colors.bootstrap.success};\r\n }\r\n\r\n .stroke-success {\r\n stroke: ${colors.bootstrap.success};\r\n }\r\n\r\n .fill-info {\r\n fill: ${colors.bootstrap.info};\r\n }\r\n\r\n .stroke-info {\r\n stroke: ${colors.bootstrap.info};\r\n }\r\n\r\n .fill-warning {\r\n fill: ${colors.bootstrap.warning};\r\n }\r\n\r\n .stroke-warning {\r\n stroke: ${colors.bootstrap.warning};\r\n }\r\n\r\n .fill-danger {\r\n fill: ${colors.bootstrap.danger};\r\n }\r\n\r\n .stroke-danger {\r\n stroke: ${colors.bootstrap.danger};\r\n }\r\n\r\n .fill-light {\r\n fill: #adb5bd;\r\n }\r\n\r\n .stroke-light {\r\n stroke: #adb5bd;\r\n }\r\n\r\n .fill-dark {\r\n fill: ${colors.neutrals.n900};\r\n }\r\n\r\n .stroke-dark {\r\n stroke: ${colors.neutrals.n900};\r\n }\r\n\r\n .fill-default {\r\n fill: ${colors.neutrals.background};\r\n }\r\n\r\n .stroke-default {\r\n stroke: ${colors.neutrals.background};\r\n }\r\n\r\n .fill-white {\r\n fill: ${colors.neutrals.min};\r\n }\r\n\r\n .stroke-white {\r\n stroke: ${colors.neutrals.min};\r\n }\r\n\r\n .fill-neutral {\r\n fill: ${colors.neutrals.min};\r\n }\r\n\r\n .stroke-neutral {\r\n stroke: ${colors.neutrals.min};\r\n }\r\n\r\n .fill-darker {\r\n fill: ${colors.neutrals.max};\r\n }\r\n\r\n .stroke-darker {\r\n stroke: ${colors.neutrals.max};\r\n }\r\n\r\n .fill-opacity-8 {\r\n fill-opacity: 0.8;\r\n }\r\n\r\n .floating {\r\n animation: floating 3s ease infinite;\r\n will-change: transform;\r\n }\r\n\r\n .floating:hover {\r\n animation-play-state: paused;\r\n }\r\n\r\n .floating-lg {\r\n animation: floating-lg 3s ease infinite;\r\n }\r\n\r\n .floating-sm {\r\n animation: floating-sm 3s ease infinite;\r\n }\r\n\r\n @keyframes floating-lg {\r\n 0% {\r\n transform: translateY(0px);\r\n }\r\n\r\n 50% {\r\n transform: translateY(15px);\r\n }\r\n\r\n 100% {\r\n transform: translateY(0px);\r\n }\r\n }\r\n\r\n @keyframes floating {\r\n 0% {\r\n transform: translateY(0px);\r\n }\r\n\r\n 50% {\r\n transform: translateY(10px);\r\n }\r\n\r\n 100% {\r\n transform: translateY(0px);\r\n }\r\n }\r\n\r\n @keyframes floating-sm {\r\n 0% {\r\n transform: translateY(0px);\r\n }\r\n\r\n 50% {\r\n transform: translateY(5px);\r\n }\r\n\r\n 100% {\r\n transform: translateY(0px);\r\n }\r\n }\r\n\r\n .floatfix:before,\r\n .floatfix:after {\r\n content: \"\";\r\n display: table;\r\n }\r\n\r\n .floatfix:after {\r\n clear: both;\r\n }\r\n\r\n .img-center {\r\n display: block;\r\n margin-left: auto;\r\n margin-right: auto;\r\n }\r\n\r\n .opacity-1 {\r\n opacity: 0.1 !important;\r\n }\r\n\r\n .opacity-2 {\r\n opacity: 0.2 !important;\r\n }\r\n\r\n .opacity-3 {\r\n opacity: 0.3 !important;\r\n }\r\n\r\n .opacity-4 {\r\n opacity: 0.4 !important;\r\n }\r\n\r\n .opacity-5 {\r\n opacity: 0.5 !important;\r\n }\r\n\r\n .opacity-6 {\r\n opacity: 0.6 !important;\r\n }\r\n\r\n .opacity-7 {\r\n opacity: 0.7 !important;\r\n }\r\n\r\n .opacity-8 {\r\n opacity: 0.8 !important;\r\n }\r\n\r\n .opacity-8 {\r\n opacity: 0.9 !important;\r\n }\r\n\r\n .opacity-10 {\r\n opacity: 1 !important;\r\n }\r\n\r\n .overflow-visible {\r\n overflow: visible !important;\r\n }\r\n\r\n .overflow-hidden {\r\n overflow: hidden !important;\r\n }\r\n\r\n .top-0 {\r\n top: 0;\r\n }\r\n\r\n .right-0 {\r\n right: 0;\r\n }\r\n\r\n .bottom-0 {\r\n bottom: 0;\r\n }\r\n\r\n .left-0 {\r\n left: 0;\r\n }\r\n\r\n .top-1 {\r\n top: 0.25rem;\r\n }\r\n\r\n .right-1 {\r\n right: 0.25rem;\r\n }\r\n\r\n .bottom-1 {\r\n bottom: 0.25rem;\r\n }\r\n\r\n .left-1 {\r\n left: 0.25rem;\r\n }\r\n\r\n .top-2 {\r\n top: 0.5rem;\r\n }\r\n\r\n .right-2 {\r\n right: 0.5rem;\r\n }\r\n\r\n .bottom-2 {\r\n bottom: 0.5rem;\r\n }\r\n\r\n .left-2 {\r\n left: 0.5rem;\r\n }\r\n\r\n .top-3 {\r\n top: 1rem;\r\n }\r\n\r\n .right-3 {\r\n right: 1rem;\r\n }\r\n\r\n .bottom-3 {\r\n bottom: 1rem;\r\n }\r\n\r\n .left-3 {\r\n left: 1rem;\r\n }\r\n\r\n .top-4 {\r\n top: 1.5rem;\r\n }\r\n\r\n .right-4 {\r\n right: 1.5rem;\r\n }\r\n\r\n .bottom-4 {\r\n bottom: 1.5rem;\r\n }\r\n\r\n .left-4 {\r\n left: 1.5rem;\r\n }\r\n\r\n .top-5 {\r\n top: 3rem;\r\n }\r\n\r\n .right-5 {\r\n right: 3rem;\r\n }\r\n\r\n .bottom-5 {\r\n bottom: 3rem;\r\n }\r\n\r\n .left-5 {\r\n left: 3rem;\r\n }\r\n\r\n .top--9 {\r\n top: -10rem;\r\n }\r\n\r\n .right--9 {\r\n right: -10rem;\r\n }\r\n\r\n .bottom--9 {\r\n bottom: -10rem;\r\n }\r\n\r\n .left--9 {\r\n left: -10rem;\r\n }\r\n\r\n .top--8 {\r\n top: -8rem;\r\n }\r\n\r\n .right--8 {\r\n right: -8rem;\r\n }\r\n\r\n .bottom--8 {\r\n bottom: -8rem;\r\n }\r\n\r\n .left--8 {\r\n left: -8rem;\r\n }\r\n\r\n .top--7 {\r\n top: -6rem;\r\n }\r\n\r\n .right--7 {\r\n right: -6rem;\r\n }\r\n\r\n .bottom--7 {\r\n bottom: -6rem;\r\n }\r\n\r\n .left--7 {\r\n left: -6rem;\r\n }\r\n\r\n .top--6 {\r\n top: -4.5rem;\r\n }\r\n\r\n .right--6 {\r\n right: -4.5rem;\r\n }\r\n\r\n .bottom--6 {\r\n bottom: -4.5rem;\r\n }\r\n\r\n .left--6 {\r\n left: -4.5rem;\r\n }\r\n\r\n .top--5 {\r\n top: -3rem;\r\n }\r\n\r\n .right--5 {\r\n right: -3rem;\r\n }\r\n\r\n .bottom--5 {\r\n bottom: -3rem;\r\n }\r\n\r\n .left--5 {\r\n left: -3rem;\r\n }\r\n\r\n .top--4 {\r\n top: -1.5rem;\r\n }\r\n\r\n .right--4 {\r\n right: -1.5rem;\r\n }\r\n\r\n .bottom--4 {\r\n bottom: -1.5rem;\r\n }\r\n\r\n .left--4 {\r\n left: -1.5rem;\r\n }\r\n\r\n .top--3 {\r\n top: -1rem;\r\n }\r\n\r\n .right--3 {\r\n right: -1rem;\r\n }\r\n\r\n .bottom--3 {\r\n bottom: -1rem;\r\n }\r\n\r\n .left--3 {\r\n left: -1rem;\r\n }\r\n\r\n .top--2 {\r\n top: -0.5rem;\r\n }\r\n\r\n .right--2 {\r\n right: -0.5rem;\r\n }\r\n\r\n .bottom--2 {\r\n bottom: -0.5rem;\r\n }\r\n\r\n .left--2 {\r\n left: -0.5rem;\r\n }\r\n\r\n .top--1 {\r\n top: -0.25rem;\r\n }\r\n\r\n .right--1 {\r\n right: -0.25rem;\r\n }\r\n\r\n .bottom--1 {\r\n bottom: -0.25rem;\r\n }\r\n\r\n .left--1 {\r\n left: -0.25rem;\r\n }\r\n\r\n .top-6 {\r\n top: 4.5rem;\r\n }\r\n\r\n .right-6 {\r\n right: 4.5rem;\r\n }\r\n\r\n .bottom-6 {\r\n bottom: 4.5rem;\r\n }\r\n\r\n .left-6 {\r\n left: 4.5rem;\r\n }\r\n\r\n .top-7 {\r\n top: 6rem;\r\n }\r\n\r\n .right-7 {\r\n right: 6rem;\r\n }\r\n\r\n .bottom-7 {\r\n bottom: 6rem;\r\n }\r\n\r\n .left-7 {\r\n left: 6rem;\r\n }\r\n\r\n .top-8 {\r\n top: 8rem;\r\n }\r\n\r\n .right-8 {\r\n right: 8rem;\r\n }\r\n\r\n .bottom-8 {\r\n bottom: 8rem;\r\n }\r\n\r\n .left-8 {\r\n left: 8rem;\r\n }\r\n\r\n .top-9 {\r\n top: 10rem;\r\n }\r\n\r\n .right-9 {\r\n right: 10rem;\r\n }\r\n\r\n .bottom-9 {\r\n bottom: 10rem;\r\n }\r\n\r\n .left-9 {\r\n left: 10rem;\r\n }\r\n\r\n .center {\r\n left: 50%;\r\n transform: translateX(-50%);\r\n }\r\n\r\n .h-100vh {\r\n height: 100vh !important;\r\n }\r\n\r\n .row.row-grid > [class*=\"col-\"] + [class*=\"col-\"] {\r\n margin-top: 3rem;\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .row.row-grid > [class*=\"col-lg-\"] + [class*=\"col-lg-\"] {\r\n margin-top: 0;\r\n }\r\n }\r\n\r\n @media (min-width: 768px) {\r\n .row.row-grid > [class*=\"col-md-\"] + [class*=\"col-md-\"] {\r\n margin-top: 0;\r\n }\r\n }\r\n\r\n @media (min-width: 576px) {\r\n .row.row-grid > [class*=\"col-sm-\"] + [class*=\"col-sm-\"] {\r\n margin-top: 0;\r\n }\r\n }\r\n\r\n .row-grid + .row-grid {\r\n margin-top: 3rem;\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .mt--100 {\r\n margin-top: -100px !important;\r\n }\r\n\r\n .mr--100 {\r\n margin-right: -100px !important;\r\n }\r\n\r\n .mb--100 {\r\n margin-bottom: -100px !important;\r\n }\r\n\r\n .ml--100 {\r\n margin-left: -100px !important;\r\n }\r\n\r\n .mt--150 {\r\n margin-top: -150px !important;\r\n }\r\n\r\n .mb--150 {\r\n margin-bottom: -150px !important;\r\n }\r\n\r\n .mt--200 {\r\n margin-top: -200px !important;\r\n }\r\n\r\n .mb--200 {\r\n margin-bottom: -200px !important;\r\n }\r\n\r\n .mt--300 {\r\n margin-top: -300px !important;\r\n }\r\n\r\n .mb--300 {\r\n margin-bottom: -300px !important;\r\n }\r\n\r\n .pt-100 {\r\n padding-top: 100px !important;\r\n }\r\n\r\n .pb-100 {\r\n padding-bottom: 100px !important;\r\n }\r\n\r\n .pt-150 {\r\n padding-top: 150px !important;\r\n }\r\n\r\n .pb-150 {\r\n padding-bottom: 150px !important;\r\n }\r\n\r\n .pt-200 {\r\n padding-top: 200px !important;\r\n }\r\n\r\n .pb-200 {\r\n padding-bottom: 200px !important;\r\n }\r\n\r\n .pt-250 {\r\n padding-top: 250px !important;\r\n }\r\n\r\n .pb-250 {\r\n padding-bottom: 250px !important;\r\n }\r\n\r\n .pt-300 {\r\n padding-top: 300px !important;\r\n }\r\n\r\n .pb-300 {\r\n padding-bottom: 300px !important;\r\n }\r\n }\r\n\r\n [class*=\"shadow\"] {\r\n transition: all 0.15s ease;\r\n }\r\n\r\n .shadow-sm--hover:hover {\r\n box-shadow: 0 0 0.5rem rgba(136, 152, 170, 0.075) !important;\r\n }\r\n\r\n .shadow--hover:hover {\r\n box-shadow: 0 0 2rem 0 rgba(136, 152, 170, 0.15) !important;\r\n }\r\n\r\n .shadow-lg--hover:hover {\r\n box-shadow: 0 0 3rem rgba(136, 152, 170, 0.175) !important;\r\n }\r\n\r\n .shadow-none--hover:hover {\r\n box-shadow: none !important;\r\n }\r\n\r\n .font-weight-300 {\r\n font-weight: 300 !important;\r\n }\r\n\r\n .font-weight-400 {\r\n font-weight: 400 !important;\r\n }\r\n\r\n .font-weight-500 {\r\n font-weight: 500 !important;\r\n }\r\n\r\n .font-weight-600 {\r\n font-weight: 600 !important;\r\n }\r\n\r\n .font-weight-700 {\r\n font-weight: 700 !important;\r\n }\r\n\r\n .font-weight-800 {\r\n font-weight: 800 !important;\r\n }\r\n\r\n .font-weight-900 {\r\n font-weight: 900 !important;\r\n }\r\n\r\n .text-underline {\r\n text-decoration: underline;\r\n }\r\n\r\n .text-through {\r\n text-decoration: line-through;\r\n }\r\n\r\n .text-xs {\r\n font-size: 0.75rem !important;\r\n }\r\n\r\n .text-sm {\r\n font-size: 0.875rem !important;\r\n }\r\n\r\n .text-lg {\r\n font-size: 1.25rem !important;\r\n }\r\n\r\n .text-xl {\r\n font-size: 1.5rem !important;\r\n }\r\n\r\n .lh-100 {\r\n line-height: 1;\r\n }\r\n\r\n .lh-110 {\r\n line-height: 1.1;\r\n }\r\n\r\n .lh-120 {\r\n line-height: 1.2;\r\n }\r\n\r\n .lh-130 {\r\n line-height: 1.3;\r\n }\r\n\r\n .lh-140 {\r\n line-height: 1.4;\r\n }\r\n\r\n .lh-150 {\r\n line-height: 1.5;\r\n }\r\n\r\n .lh-160 {\r\n line-height: 1.6;\r\n }\r\n\r\n .lh-170 {\r\n line-height: 1.7;\r\n }\r\n\r\n .lh-180 {\r\n line-height: 1.8;\r\n }\r\n\r\n .ls-1 {\r\n letter-spacing: 0.0625rem;\r\n }\r\n\r\n .ls-15 {\r\n letter-spacing: 0.09375rem;\r\n }\r\n\r\n .ls-2 {\r\n letter-spacing: 0.125rem;\r\n }\r\n\r\n .text-blue {\r\n color: ${colors.bootstrap.primary} !important;\r\n }\r\n\r\n a.text-blue:hover,\r\n a.text-blue:focus {\r\n color: #324cdd !important;\r\n }\r\n\r\n .text-indigo {\r\n color: ${colors.hues.indigo} !important;\r\n }\r\n\r\n a.text-indigo:hover,\r\n a.text-indigo:focus {\r\n color: #3d027b !important;\r\n }\r\n\r\n .text-purple {\r\n color: ${colors.hues.violet} !important;\r\n }\r\n\r\n a.text-purple:hover,\r\n a.text-purple:focus {\r\n color: #683bd7 !important;\r\n }\r\n\r\n .text-pink {\r\n color: ${colors.hues.pink} !important;\r\n }\r\n\r\n a.text-pink:hover,\r\n a.text-pink:focus {\r\n color: #ed7790 !important;\r\n }\r\n\r\n .text-red {\r\n color: ${colors.hues.red} !important;\r\n }\r\n\r\n a.text-red:hover,\r\n a.text-red:focus {\r\n color: #ec0c38 !important;\r\n }\r\n\r\n .text-orange {\r\n color: ${colors.hues.orange} !important;\r\n }\r\n\r\n a.text-orange:hover,\r\n a.text-orange:focus {\r\n color: #fa3a0e !important;\r\n }\r\n\r\n .text-yellow {\r\n color: #ffd600 !important;\r\n }\r\n\r\n a.text-yellow:hover,\r\n a.text-yellow:focus {\r\n color: #ccab00 !important;\r\n }\r\n\r\n .text-green {\r\n color: ${colors.hues.green} !important;\r\n }\r\n\r\n a.text-green:hover,\r\n a.text-green:focus {\r\n color: ${colors.hues.green} !important;\r\n }\r\n\r\n .text-teal {\r\n color: ${colors.hues.teal} !important;\r\n }\r\n\r\n a.text-teal:hover,\r\n a.text-teal:focus {\r\n color: #0da5c0 !important;\r\n }\r\n\r\n .text-cyan {\r\n color: ${colors.hues.cyan} !important;\r\n }\r\n\r\n a.text-cyan:hover,\r\n a.text-cyan:focus {\r\n color: ${colors.hues.cyan} !important;\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .transform-perspective-right {\r\n transform: scale(1) perspective(1040px) rotateY(-11deg) rotateX(2deg)\r\n rotate(2deg);\r\n }\r\n\r\n .transform-perspective-left {\r\n transform: scale(1) perspective(2000px) rotateY(11deg) rotateX(2deg)\r\n rotate(-2deg);\r\n }\r\n }\r\n\r\n .alert {\r\n font-size: 0.875rem;\r\n }\r\n\r\n .alert-heading {\r\n font-weight: 600;\r\n font-size: 0.9375rem;\r\n margin-top: 0.15rem;\r\n }\r\n\r\n .alert-icon {\r\n font-size: 1.25rem;\r\n margin-right: 1.25rem;\r\n display: inline-block;\r\n vertical-align: middle;\r\n }\r\n\r\n .alert-icon i.ni {\r\n position: relative;\r\n top: 1px;\r\n }\r\n\r\n .alert-text {\r\n display: inline-block;\r\n vertical-align: middle;\r\n }\r\n\r\n [class*=\"alert-\"] .alert-link {\r\n color: ${colors.neutrals.min};\r\n border-bottom: 1px dotted rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n .alert-dismissible .close {\r\n top: 50%;\r\n right: 1.5rem;\r\n padding: 0;\r\n transform: translateY(-50%);\r\n color: rgba(255, 255, 255, 0.6);\r\n opacity: 1;\r\n }\r\n\r\n .alert-dismissible .close:hover,\r\n .alert-dismissible .close:focus {\r\n color: rgba(255, 255, 255, 0.9);\r\n opacity: 1 !important;\r\n }\r\n\r\n @media (max-width: 575.98px) {\r\n .alert-dismissible .close {\r\n top: 1rem;\r\n right: 0.5rem;\r\n }\r\n }\r\n\r\n .alert-dismissible .close > span:not(.sr-only) {\r\n font-size: 1.5rem;\r\n background-color: ${colors.transparent};\r\n color: rgba(255, 255, 255, 0.6);\r\n }\r\n\r\n .alert-dismissible .close:hover > span:not(.sr-only),\r\n .alert-dismissible .close:focus > span:not(.sr-only) {\r\n background-color: ${colors.transparent};\r\n color: rgba(255, 255, 255, 0.9);\r\n }\r\n\r\n .avatar {\r\n color: ${colors.neutrals.min};\r\n background-color: #adb5bd;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 1rem;\r\n border-radius: 50%;\r\n height: 48px;\r\n width: 48px;\r\n }\r\n\r\n .avatar img {\r\n width: 100%;\r\n border-radius: 50%;\r\n }\r\n\r\n .avatar + .avatar-content {\r\n display: inline-block;\r\n margin-left: 0.75rem;\r\n }\r\n\r\n .avatar-lg {\r\n width: 58px;\r\n height: 58px;\r\n font-size: 0.875rem;\r\n }\r\n\r\n .avatar-sm {\r\n width: 36px;\r\n height: 36px;\r\n font-size: 0.875rem;\r\n }\r\n\r\n .avatar-group .avatar {\r\n position: relative;\r\n z-index: 2;\r\n border: 2px solid ${colors.neutrals.min};\r\n }\r\n\r\n .avatar-group .avatar:hover {\r\n z-index: 3;\r\n }\r\n\r\n .avatar-group .avatar + .avatar {\r\n margin-left: -1rem;\r\n }\r\n\r\n .badge {\r\n text-transform: uppercase;\r\n }\r\n\r\n .badge a {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .badge-md {\r\n padding: 0.65em 1em;\r\n }\r\n\r\n .badge-lg {\r\n padding: 0.85em 1.375em;\r\n }\r\n\r\n .badge-inline {\r\n margin-right: 0.625rem;\r\n }\r\n\r\n .badge-inline + span {\r\n top: 2px;\r\n position: relative;\r\n }\r\n\r\n .badge-inline + span > a {\r\n text-decoration: underline;\r\n }\r\n\r\n .btn .badge:not(:first-of-type) {\r\n margin-left: 0.5rem;\r\n }\r\n\r\n .btn .badge:not(:last-child) {\r\n margin-right: 0.5rem;\r\n }\r\n\r\n .badge-circle {\r\n text-align: center;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 50%;\r\n width: 2rem;\r\n height: 2rem;\r\n font-size: 0.875rem;\r\n }\r\n\r\n .badge-dot {\r\n padding-left: 0;\r\n padding-right: 0;\r\n background: ${colors.transparent};\r\n font-weight: 400;\r\n font-size: 0.875rem;\r\n text-transform: none;\r\n }\r\n\r\n .badge-dot strong {\r\n color: ${colors.neutrals.n800};\r\n }\r\n\r\n .badge-dot i {\r\n display: inline-block;\r\n vertical-align: middle;\r\n width: 0.375rem;\r\n height: 0.375rem;\r\n border-radius: 50%;\r\n margin-right: 0.375rem;\r\n }\r\n\r\n .badge-dot.badge-md i {\r\n width: 0.5rem;\r\n height: 0.5rem;\r\n }\r\n\r\n .badge-dot.badge-lg i {\r\n width: 0.625rem;\r\n height: 0.625rem;\r\n }\r\n\r\n .btn {\r\n position: relative;\r\n text-transform: none;\r\n transition: all 0.15s ease;\r\n letter-spacing: 0.025em;\r\n font-size: 0.875rem;\r\n will-change: transform;\r\n }\r\n\r\n .btn:hover:not(:disabled):not(.disabled) {\r\n box-shadow: 0 7px 14px rgba(50, 50, 93, 0.1),\r\n 0 3px 6px rgba(0, 0, 0, 0.08);\r\n transform: translateY(-1px);\r\n }\r\n\r\n .btn:not(:last-child) {\r\n margin-right: 0.5rem;\r\n }\r\n\r\n .btn i:not(:first-of-type),\r\n .btn svg:not(:first-of-type) {\r\n margin-left: 0.5rem;\r\n }\r\n\r\n .btn i:not(:last-child),\r\n .btn svg:not(:last-child) {\r\n margin-right: 0.5rem;\r\n }\r\n\r\n .btn-group .btn,\r\n .input-group .btn {\r\n margin-right: 0;\r\n transform: translateY(0);\r\n }\r\n\r\n .btn-sm,\r\n .btn-group-sm > .btn {\r\n font-size: 0.75rem;\r\n }\r\n\r\n .btn-lg,\r\n .btn-group-lg > .btn {\r\n font-size: 0.875rem;\r\n }\r\n\r\n [class*=\"btn-outline-\"] {\r\n border-width: 1px;\r\n }\r\n\r\n .btn-inner--icon i:not(.fa) {\r\n position: relative;\r\n top: 1px;\r\n }\r\n\r\n .btn-link {\r\n font-weight: 600;\r\n box-shadow: none;\r\n }\r\n\r\n .btn-link:hover {\r\n box-shadow: none;\r\n transform: none;\r\n }\r\n\r\n .btn-neutral {\r\n color: ${colors.bootstrap.primary};\r\n }\r\n\r\n .btn-icon .btn-inner--icon img {\r\n width: 20px;\r\n }\r\n\r\n .btn-icon .btn-inner--text:not(:last-child) {\r\n margin-right: 0.75em;\r\n }\r\n\r\n .btn-icon-only {\r\n width: 2.375rem;\r\n height: 2.375rem;\r\n padding: 0;\r\n }\r\n\r\n a.btn-icon-only {\r\n line-height: 2.5;\r\n }\r\n\r\n .btn-icon-only.btn-sm,\r\n .btn-group-sm > .btn-icon-only.btn {\r\n width: 2rem;\r\n height: 2rem;\r\n }\r\n\r\n .btn-icon-clipboard {\r\n margin: 0;\r\n padding: 1.5rem;\r\n font-size: 1rem;\r\n font-weight: 400;\r\n line-height: 1.25;\r\n color: ${colors.neutrals.n800};\r\n background-color: ${colors.neutrals.n100};\r\n border-radius: 0.375rem;\r\n border: 0;\r\n text-align: left;\r\n font-family: inherit;\r\n display: inline-block;\r\n vertical-align: middle;\r\n text-decoration: none;\r\n -moz-appearance: none;\r\n cursor: pointer;\r\n width: 100%;\r\n margin: 0.5rem 0;\r\n }\r\n\r\n .btn-icon-clipboard:hover {\r\n background-color: ${colors.neutrals.min};\r\n box-shadow: rgba(0, 0, 0, 0.1) 0 0 0 1px, rgba(0, 0, 0, 0.1) 0 4px 16px;\r\n }\r\n\r\n .btn-icon-clipboard > div {\r\n align-items: center;\r\n display: flex;\r\n }\r\n\r\n .btn-icon-clipboard i {\r\n box-sizing: content-box;\r\n color: ${colors.bootstrap.primary};\r\n vertical-align: middle;\r\n font-size: 1.5rem;\r\n }\r\n\r\n .btn-icon-clipboard span {\r\n display: inline-block;\r\n font-size: 0.875rem;\r\n line-height: 1.5;\r\n margin-left: 16px;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n vertical-align: middle;\r\n }\r\n\r\n .btn-facebook {\r\n color: ${colors.neutrals.min};\r\n background-color: #3b5999;\r\n border-color: #3b5999;\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .btn-facebook:hover {\r\n color: ${colors.neutrals.min};\r\n background-color: #3b5999;\r\n border-color: #3b5999;\r\n }\r\n\r\n .btn-facebook:focus,\r\n .btn-facebook.focus {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 0 rgba(59, 89, 153, 0.5);\r\n }\r\n\r\n .btn-facebook.disabled,\r\n .btn-facebook:disabled {\r\n color: ${colors.neutrals.min};\r\n background-color: #3b5999;\r\n border-color: #3b5999;\r\n }\r\n\r\n .btn-facebook:not(:disabled):not(.disabled):active,\r\n .btn-facebook:not(:disabled):not(.disabled).active,\r\n .show > .btn-facebook.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: #2d4474;\r\n border-color: #3b5999;\r\n }\r\n\r\n .btn-facebook:not(:disabled):not(.disabled):active:focus,\r\n .btn-facebook:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-facebook.dropdown-toggle:focus {\r\n box-shadow: none, 0 0 0 0 rgba(59, 89, 153, 0.5);\r\n }\r\n\r\n .btn-twitter {\r\n color: ${colors.neutrals.min};\r\n background-color: #1da1f2;\r\n border-color: #1da1f2;\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .btn-twitter:hover {\r\n color: ${colors.neutrals.min};\r\n background-color: #1da1f2;\r\n border-color: #1da1f2;\r\n }\r\n\r\n .btn-twitter:focus,\r\n .btn-twitter.focus {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 0 rgba(29, 161, 242, 0.5);\r\n }\r\n\r\n .btn-twitter.disabled,\r\n .btn-twitter:disabled {\r\n color: ${colors.neutrals.min};\r\n background-color: #1da1f2;\r\n border-color: #1da1f2;\r\n }\r\n\r\n .btn-twitter:not(:disabled):not(.disabled):active,\r\n .btn-twitter:not(:disabled):not(.disabled).active,\r\n .show > .btn-twitter.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: #0c85d0;\r\n border-color: #1da1f2;\r\n }\r\n\r\n .btn-twitter:not(:disabled):not(.disabled):active:focus,\r\n .btn-twitter:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-twitter.dropdown-toggle:focus {\r\n box-shadow: none, 0 0 0 0 rgba(29, 161, 242, 0.5);\r\n }\r\n\r\n .btn-google-plus {\r\n color: ${colors.neutrals.min};\r\n background-color: #dd4b39;\r\n border-color: #dd4b39;\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .btn-google-plus:hover {\r\n color: ${colors.neutrals.min};\r\n background-color: #dd4b39;\r\n border-color: #dd4b39;\r\n }\r\n\r\n .btn-google-plus:focus,\r\n .btn-google-plus.focus {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 0 rgba(221, 75, 57, 0.5);\r\n }\r\n\r\n .btn-google-plus.disabled,\r\n .btn-google-plus:disabled {\r\n color: ${colors.neutrals.min};\r\n background-color: #dd4b39;\r\n border-color: #dd4b39;\r\n }\r\n\r\n .btn-google-plus:not(:disabled):not(.disabled):active,\r\n .btn-google-plus:not(:disabled):not(.disabled).active,\r\n .show > .btn-google-plus.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: #c23321;\r\n border-color: #dd4b39;\r\n }\r\n\r\n .btn-google-plus:not(:disabled):not(.disabled):active:focus,\r\n .btn-google-plus:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-google-plus.dropdown-toggle:focus {\r\n box-shadow: none, 0 0 0 0 rgba(221, 75, 57, 0.5);\r\n }\r\n\r\n .btn-instagram {\r\n color: ${colors.neutrals.min};\r\n background-color: #e4405f;\r\n border-color: #e4405f;\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .btn-instagram:hover {\r\n color: ${colors.neutrals.min};\r\n background-color: #e4405f;\r\n border-color: #e4405f;\r\n }\r\n\r\n .btn-instagram:focus,\r\n .btn-instagram.focus {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 0 rgba(228, 64, 95, 0.5);\r\n }\r\n\r\n .btn-instagram.disabled,\r\n .btn-instagram:disabled {\r\n color: ${colors.neutrals.min};\r\n background-color: #e4405f;\r\n border-color: #e4405f;\r\n }\r\n\r\n .btn-instagram:not(:disabled):not(.disabled):active,\r\n .btn-instagram:not(:disabled):not(.disabled).active,\r\n .show > .btn-instagram.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: #d31e40;\r\n border-color: #e4405f;\r\n }\r\n\r\n .btn-instagram:not(:disabled):not(.disabled):active:focus,\r\n .btn-instagram:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-instagram.dropdown-toggle:focus {\r\n box-shadow: none, 0 0 0 0 rgba(228, 64, 95, 0.5);\r\n }\r\n\r\n .btn-pinterest {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.hues.red};\r\n border-color: ${colors.hues.red};\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .btn-pinterest:hover {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.hues.red};\r\n border-color: ${colors.hues.red};\r\n }\r\n\r\n .btn-pinterest:focus,\r\n .btn-pinterest.focus {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 0 rgba(189, 8, 28, 0.5);\r\n }\r\n\r\n .btn-pinterest.disabled,\r\n .btn-pinterest:disabled {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.hues.red};\r\n border-color: ${colors.hues.red};\r\n }\r\n\r\n .btn-pinterest:not(:disabled):not(.disabled):active,\r\n .btn-pinterest:not(:disabled):not(.disabled).active,\r\n .show > .btn-pinterest.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: #8c0615;\r\n border-color: ${colors.hues.red};\r\n }\r\n\r\n .btn-pinterest:not(:disabled):not(.disabled):active:focus,\r\n .btn-pinterest:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-pinterest.dropdown-toggle:focus {\r\n box-shadow: none, 0 0 0 0 rgba(189, 8, 28, 0.5);\r\n }\r\n\r\n .btn-youtube {\r\n color: ${colors.neutrals.min};\r\n background-color: #cd201f;\r\n border-color: #cd201f;\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .btn-youtube:hover {\r\n color: ${colors.neutrals.min};\r\n background-color: #cd201f;\r\n border-color: #cd201f;\r\n }\r\n\r\n .btn-youtube:focus,\r\n .btn-youtube.focus {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 0 rgba(205, 32, 31, 0.5);\r\n }\r\n\r\n .btn-youtube.disabled,\r\n .btn-youtube:disabled {\r\n color: ${colors.neutrals.min};\r\n background-color: #cd201f;\r\n border-color: #cd201f;\r\n }\r\n\r\n .btn-youtube:not(:disabled):not(.disabled):active,\r\n .btn-youtube:not(:disabled):not(.disabled).active,\r\n .show > .btn-youtube.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: #a11918;\r\n border-color: #cd201f;\r\n }\r\n\r\n .btn-youtube:not(:disabled):not(.disabled):active:focus,\r\n .btn-youtube:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-youtube.dropdown-toggle:focus {\r\n box-shadow: none, 0 0 0 0 rgba(205, 32, 31, 0.5);\r\n }\r\n\r\n .btn-slack {\r\n color: ${colors.neutrals.min};\r\n background-color: #3aaf85;\r\n border-color: #3aaf85;\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .btn-slack:hover {\r\n color: ${colors.neutrals.min};\r\n background-color: #3aaf85;\r\n border-color: #3aaf85;\r\n }\r\n\r\n .btn-slack:focus,\r\n .btn-slack.focus {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 0 rgba(58, 175, 133, 0.5);\r\n }\r\n\r\n .btn-slack.disabled,\r\n .btn-slack:disabled {\r\n color: ${colors.neutrals.min};\r\n background-color: #3aaf85;\r\n border-color: #3aaf85;\r\n }\r\n\r\n .btn-slack:not(:disabled):not(.disabled):active,\r\n .btn-slack:not(:disabled):not(.disabled).active,\r\n .show > .btn-slack.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: #2d8968;\r\n border-color: #3aaf85;\r\n }\r\n\r\n .btn-slack:not(:disabled):not(.disabled):active:focus,\r\n .btn-slack:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-slack.dropdown-toggle:focus {\r\n box-shadow: none, 0 0 0 0 rgba(58, 175, 133, 0.5);\r\n }\r\n\r\n .btn-dribbble {\r\n color: ${colors.neutrals.min};\r\n background-color: #ea4c89;\r\n border-color: #ea4c89;\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .btn-dribbble:hover {\r\n color: ${colors.neutrals.min};\r\n background-color: #ea4c89;\r\n border-color: #ea4c89;\r\n }\r\n\r\n .btn-dribbble:focus,\r\n .btn-dribbble.focus {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 0 rgba(234, 76, 137, 0.5);\r\n }\r\n\r\n .btn-dribbble.disabled,\r\n .btn-dribbble:disabled {\r\n color: ${colors.neutrals.min};\r\n background-color: #ea4c89;\r\n border-color: #ea4c89;\r\n }\r\n\r\n .btn-dribbble:not(:disabled):not(.disabled):active,\r\n .btn-dribbble:not(:disabled):not(.disabled).active,\r\n .show > .btn-dribbble.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: #e51e6b;\r\n border-color: #ea4c89;\r\n }\r\n\r\n .btn-dribbble:not(:disabled):not(.disabled):active:focus,\r\n .btn-dribbble:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-dribbble.dropdown-toggle:focus {\r\n box-shadow: none, 0 0 0 0 rgba(234, 76, 137, 0.5);\r\n }\r\n\r\n .btn-github {\r\n color: ${colors.neutrals.min};\r\n background-color: #222222;\r\n border-color: #222222;\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .btn-github:hover {\r\n color: ${colors.neutrals.min};\r\n background-color: #222222;\r\n border-color: #222222;\r\n }\r\n\r\n .btn-github:focus,\r\n .btn-github.focus {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 0 rgba(34, 34, 34, 0.5);\r\n }\r\n\r\n .btn-github.disabled,\r\n .btn-github:disabled {\r\n color: ${colors.neutrals.min};\r\n background-color: #222222;\r\n border-color: #222222;\r\n }\r\n\r\n .btn-github:not(:disabled):not(.disabled):active,\r\n .btn-github:not(:disabled):not(.disabled).active,\r\n .show > .btn-github.dropdown-toggle {\r\n color: ${colors.neutrals.min};\r\n background-color: #090909;\r\n border-color: #222222;\r\n }\r\n\r\n .btn-github:not(:disabled):not(.disabled):active:focus,\r\n .btn-github:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-github.dropdown-toggle:focus {\r\n box-shadow: none, 0 0 0 0 rgba(34, 34, 34, 0.5);\r\n }\r\n .card-translucent {\r\n background-color: rgba(18, 91, 152, 0.08);\r\n }\r\n\r\n .card-profile-image {\r\n position: relative;\r\n }\r\n\r\n .card-profile-image img {\r\n max-width: 180px;\r\n border-radius: 0.375rem;\r\n transform: translate(-50%, -30%);\r\n position: absolute;\r\n left: 50%;\r\n transition: all 0.15s ease;\r\n }\r\n\r\n .card-profile-image img:hover {\r\n transform: translate(-50%, -33%);\r\n }\r\n\r\n .card-profile-stats {\r\n padding: 1rem 0;\r\n }\r\n\r\n .card-profile-stats > div {\r\n text-align: center;\r\n margin-right: 1rem;\r\n padding: 0.875rem;\r\n }\r\n\r\n .card-profile-stats > div:last-child {\r\n margin-right: 0;\r\n }\r\n\r\n .card-profile-stats > div .heading {\r\n font-size: 1.1rem;\r\n font-weight: bold;\r\n display: block;\r\n }\r\n\r\n .card-profile-stats > div .description {\r\n font-size: 0.875rem;\r\n color: #adb5bd;\r\n }\r\n\r\n .card-profile-actions {\r\n padding: 0.875rem;\r\n }\r\n\r\n .card-lift--hover:hover {\r\n transform: translateY(-20px);\r\n transition: all 0.15s ease;\r\n }\r\n\r\n @media screen and (prefers-reduced-motion: reduce) {\r\n .card-lift--hover:hover {\r\n transition: none;\r\n }\r\n }\r\n\r\n .sb-kpi-card .card-body {\r\n padding: 1rem 1.5rem;\r\n }\r\n\r\n .sb-kpi-card .card-status-bullet {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n transform: translate(50%, -50%);\r\n }\r\n\r\n .sb-kpi-card .icon {\r\n position: absolute;\r\n right: 1rem;\r\n top: 1rem;\r\n z-index: 0;\r\n }\r\n\r\n .chart {\r\n position: relative;\r\n /*height: 350px;*/\r\n }\r\n\r\n .chart-sm {\r\n height: 230px;\r\n }\r\n\r\n .chart-legend {\r\n display: flex;\r\n justify-content: center;\r\n margin-top: 2.5rem;\r\n font-size: 0.875rem;\r\n text-align: center;\r\n color: ${colors.neutrals.n600};\r\n }\r\n\r\n .chart-legend-item {\r\n display: inline-flex;\r\n align-items: center;\r\n }\r\n\r\n .chart-legend-item + .chart-legend-item {\r\n margin-left: 1rem;\r\n }\r\n\r\n .chart-legend-indicator {\r\n display: inline-block;\r\n width: 0.5rem;\r\n height: 0.5rem;\r\n margin-right: 0.375rem;\r\n border-radius: 50%;\r\n }\r\n\r\n #chart-tooltip {\r\n z-index: 0;\r\n }\r\n\r\n #chart-tooltip .arrow {\r\n top: 100%;\r\n left: 50%;\r\n transform: translateX(-50%) translateX(-0.5rem);\r\n }\r\n\r\n .chart-info-overlay {\r\n position: absolute;\r\n top: 0;\r\n left: 5%;\r\n max-width: 350px;\r\n padding: 20px;\r\n z-index: 1;\r\n }\r\n\r\n .close {\r\n transition: all 0.15s ease;\r\n }\r\n\r\n .close > span:not(.sr-only) {\r\n background-color: ${colors.transparent};\r\n color: rgba(0, 0, 0, 0.6);\r\n line-height: 17px;\r\n height: 1.25rem;\r\n width: 1.25rem;\r\n border-radius: 50%;\r\n font-size: 1.25rem;\r\n display: block;\r\n transition: all 0.15s ease;\r\n }\r\n\r\n .close:hover,\r\n .close:focus {\r\n background-color: ${colors.transparent};\r\n color: rgba(0, 0, 0, 0.9);\r\n outline: none;\r\n }\r\n\r\n .close:hover span:not(.sr-only),\r\n .close:focus span:not(.sr-only) {\r\n background-color: ${colors.transparent};\r\n }\r\n\r\n .main-content {\r\n position: relative;\r\n }\r\n\r\n .main-content .navbar-top {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n z-index: 1;\r\n background-color: ${colors.transparent};\r\n padding-left: 0 !important;\r\n padding-right: 0 !important;\r\n }\r\n\r\n @media (min-width: 768px) {\r\n .main-content .container-fluid {\r\n padding-left: 39px !important;\r\n padding-right: 39px !important;\r\n }\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs.fixed-left + .main-content {\r\n margin-left: 250px;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs.fixed-right + .main-content {\r\n margin-right: 250px;\r\n }\r\n\r\n @media only screen and (min-width: 576px) {\r\n .navbar-vertical.navbar-expand-sm.fixed-left + .main-content {\r\n margin-left: 250px;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-sm.fixed-right + .main-content {\r\n margin-right: 250px;\r\n }\r\n }\r\n\r\n @media only screen and (min-width: 768px) {\r\n .navbar-vertical.navbar-expand-md.fixed-left + .main-content {\r\n margin-left: 250px;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-md.fixed-right + .main-content {\r\n margin-right: 250px;\r\n }\r\n }\r\n\r\n @media only screen and (min-width: 992px) {\r\n .navbar-vertical.navbar-expand-lg.fixed-left + .main-content {\r\n margin-left: 250px;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-lg.fixed-right + .main-content {\r\n margin-right: 250px;\r\n }\r\n }\r\n\r\n @media only screen and (min-width: 1200px) {\r\n .navbar-vertical.navbar-expand-xl.fixed-left + .main-content {\r\n margin-left: 250px;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xl.fixed-right + .main-content {\r\n margin-right: 250px;\r\n }\r\n }\r\n\r\n .custom-checkbox .custom-control-input ~ .custom-control-label {\r\n cursor: pointer;\r\n font-size: 0.875rem;\r\n }\r\n\r\n .custom-checkbox\r\n .custom-control-input:checked\r\n ~ .custom-control-label::before {\r\n border-color: ${colors.bootstrap.primary};\r\n }\r\n\r\n .custom-checkbox\r\n .custom-control-input:checked\r\n ~ .custom-control-label::after {\r\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\r\n }\r\n\r\n .custom-checkbox\r\n .custom-control-input:disabled\r\n ~ .custom-control-label::before {\r\n border-color: ${colors.neutrals.n200};\r\n }\r\n\r\n .custom-checkbox .custom-control-input:disabled:checked::before {\r\n border-color: rgba(94, 114, 228, 0.5);\r\n }\r\n\r\n .custom-control-label::before {\r\n border: 1px solid ${colors.neutrals.n500};\r\n transition: all 0.2s cubic-bezier(0.68, -0.55, 0.265, 1.55);\r\n }\r\n\r\n .custom-control-label span {\r\n position: relative;\r\n top: 2px;\r\n }\r\n\r\n .custom-control-label {\r\n margin-bottom: 0;\r\n }\r\n\r\n .custom-control-alternative .custom-control-label::before {\r\n border: 0;\r\n box-shadow: 0 1px 3px rgba(50, 50, 93, 0.15), 0 1px 0 rgba(0, 0, 0, 0.02);\r\n }\r\n\r\n .custom-control-alternative\r\n .custom-control-input:checked\r\n ~ .custom-control-label::before {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .custom-control-alternative\r\n .custom-control-input:active\r\n ~ .custom-control-label::before,\r\n .custom-control-alternative\r\n .custom-control-input:focus\r\n ~ .custom-control-label::before {\r\n box-shadow: 0 1px 3px rgba(50, 50, 93, 0.15), 0 1px 0 rgba(0, 0, 0, 0.02);\r\n }\r\n\r\n .custom-checkbox .custom-control-input ~ .custom-control-label {\r\n cursor: pointer;\r\n font-size: 0.875rem;\r\n }\r\n\r\n .custom-checkbox\r\n .custom-control-input:checked\r\n ~ .custom-control-label::before {\r\n border-color: ${colors.bootstrap.primary};\r\n }\r\n\r\n .custom-checkbox\r\n .custom-control-input:checked\r\n ~ .custom-control-label::after {\r\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\r\n }\r\n\r\n .custom-checkbox\r\n .custom-control-input:disabled\r\n ~ .custom-control-label::before {\r\n border-color: ${colors.neutrals.n200};\r\n }\r\n\r\n .custom-checkbox .custom-control-input:disabled:checked::before {\r\n border-color: rgba(94, 114, 228, 0.5);\r\n }\r\n\r\n .custom-radio .custom-control-input ~ .custom-control-label {\r\n cursor: pointer;\r\n font-size: 0.875rem;\r\n }\r\n\r\n .custom-radio\r\n .custom-control-input:checked\r\n ~ .custom-control-label::before {\r\n border-color: ${colors.bootstrap.primary};\r\n }\r\n\r\n .custom-radio .custom-control-input:checked ~ .custom-control-label::after {\r\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");\r\n }\r\n\r\n .custom-radio\r\n .custom-control-input:disabled\r\n ~ .custom-control-label::before {\r\n border-color: ${colors.neutrals.n200};\r\n }\r\n\r\n .custom-radio .custom-control-input:disabled:checked::before {\r\n border-color: rgba(94, 114, 228, 0.5);\r\n }\r\n\r\n .custom-toggle {\r\n position: relative;\r\n display: inline-block;\r\n width: 50px;\r\n height: 1.5rem;\r\n }\r\n\r\n .custom-toggle input {\r\n display: none;\r\n }\r\n\r\n .custom-toggle input:checked + .custom-toggle-slider {\r\n border: 1px solid ${colors.bootstrap.primary};\r\n }\r\n\r\n .custom-toggle:hover input:checked + .custom-toggle-slider {\r\n border: 1px solid ${colors.bootstrap.primaryHigh};\r\n }\r\n\r\n .custom-toggle input:checked + .custom-toggle-slider:before {\r\n background: ${colors.bootstrap.primary};\r\n transform: translateX(1.625rem);\r\n }\r\n\r\n .custom-toggle:hover input:checked + .custom-toggle-slider:before {\r\n background: ${colors.bootstrap.primaryHigh};\r\n }\r\n\r\n .custom-toggle input:disabled + .custom-toggle-slider {\r\n border: 1px solid ${colors.neutrals.n400};\r\n }\r\n\r\n .custom-toggle:hover input:disabled + .custom-toggle-slider {\r\n border: 1px solid ${colors.neutrals.n400};\r\n }\r\n\r\n .custom-toggle-slider {\r\n background-color: ${colors.transparent};\r\n border: 1px solid ${colors.bootstrap.secondary};\r\n border-radius: 34px !important;\r\n bottom: 0;\r\n cursor: pointer;\r\n left: 0;\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n transition: all 0.2s cubic-bezier(0.68, -0.55, 0.265, 1.55);\r\n }\r\n\r\n .custom-toggle:hover .custom-toggle-slider {\r\n background-color: ${colors.transparent};\r\n border: 1px solid ${colors.bootstrap.secondaryHigh};\r\n }\r\n\r\n .custom-toggle-slider:before {\r\n background-color: ${colors.bootstrap.secondary};\r\n border-radius: 50% !important;\r\n bottom: 2px;\r\n content: \"\";\r\n height: 18px;\r\n left: 2px;\r\n position: absolute;\r\n transition: all 0.2s cubic-bezier(0.68, -0.55, 0.265, 1.55);\r\n width: 18px;\r\n }\r\n\r\n .custom-toggle:hover .custom-toggle-slider:before {\r\n background-color: ${colors.bootstrap.secondaryHigh};\r\n }\r\n\r\n .custom-toggle input:disabled + .custom-toggle-slider:before {\r\n background-color: ${colors.neutrals.n400};\r\n }\r\n\r\n .dropdown,\r\n .dropup,\r\n .dropright,\r\n .dropleft {\r\n display: inline-block;\r\n }\r\n\r\n .dropdown-menu {\r\n min-width: 12rem;\r\n }\r\n\r\n .dropdown-menu .dropdown-item {\r\n padding: 0.5rem 1rem;\r\n font-size: 0.875rem;\r\n }\r\n\r\n .dropdown-menu .dropdown-item > i,\r\n .dropdown-menu .dropdown-item > svg {\r\n margin-right: 1rem;\r\n font-size: 1rem;\r\n vertical-align: -17%;\r\n }\r\n\r\n .dropdown-header {\r\n padding-left: 1rem;\r\n padding-right: 1rem;\r\n color: ${colors.neutrals.n100};\r\n font-size: 0.625rem;\r\n text-transform: uppercase;\r\n font-weight: 700;\r\n }\r\n\r\n .dropdown-menu a.media > div:first-of-type {\r\n line-height: 1;\r\n }\r\n\r\n .dropdown-menu a.media p {\r\n color: ${colors.neutrals.n600};\r\n }\r\n\r\n .dropdown-menu a.media:hover .heading,\r\n .dropdown-menu a.media:hover p {\r\n color: ${colors.bootstrap.default} !important;\r\n }\r\n\r\n .dropdown-menu-sm {\r\n min-width: 100px;\r\n border: 0.4375rem;\r\n }\r\n\r\n .dropdown-menu-lg {\r\n min-width: 260px;\r\n border-radius: 0.4375rem;\r\n }\r\n\r\n .dropdown-menu-xl {\r\n min-width: 450px;\r\n border-radius: 0.4375rem;\r\n }\r\n\r\n .footer {\r\n background: ${colors.neutrals.background};\r\n padding: 2.5rem 0;\r\n }\r\n\r\n .footer .col-footer .heading {\r\n color: ${colors.neutrals.n600};\r\n letter-spacing: 0;\r\n font-size: 0.875rem;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n margin-bottom: 1rem;\r\n }\r\n\r\n .footer .nav .nav-item .nav-link,\r\n .footer .footer-link {\r\n color: ${colors.neutrals.n600} !important;\r\n }\r\n\r\n .footer .nav .nav-item .nav-link:hover,\r\n .footer .footer-link:hover {\r\n color: ${colors.neutrals.n700} !important;\r\n }\r\n\r\n .footer .list-unstyled li a {\r\n display: inline-block;\r\n padding: 0.125rem 0;\r\n color: ${colors.neutrals.n600};\r\n font-size: 0.85rem;\r\n }\r\n\r\n .footer .list-unstyled li a:hover {\r\n color: ${colors.neutrals.n700};\r\n }\r\n\r\n .footer .copyright {\r\n font-size: 0.875rem;\r\n }\r\n\r\n .footer-dark .col-footer .heading {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .nav-footer .nav-link {\r\n font-size: 0.875rem;\r\n }\r\n\r\n .nav-footer .nav-item:last-child .nav-link {\r\n padding-right: 0;\r\n }\r\n\r\n .footer.has-cards {\r\n overflow: hidden;\r\n padding-top: 500px;\r\n margin-top: -420px;\r\n position: relative;\r\n background: ${colors.transparent};\r\n pointer-events: none;\r\n }\r\n\r\n .footer.has-cards:before {\r\n content: \"\";\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n top: 600px;\r\n height: 2000px;\r\n background: ${colors.neutrals.background};\r\n transform: skew(0, -8deg);\r\n }\r\n\r\n .footer.has-cards .container {\r\n pointer-events: auto;\r\n position: relative;\r\n }\r\n\r\n .form-control-label {\r\n color: ${colors.neutrals.n700};\r\n font-size: 0.875rem;\r\n font-weight: 600;\r\n }\r\n\r\n .form-control {\r\n font-size: 0.875rem;\r\n }\r\n\r\n textarea[resize=\"none\"] {\r\n resize: none !important;\r\n }\r\n\r\n textarea[resize=\"both\"] {\r\n resize: both !important;\r\n }\r\n\r\n textarea[resize=\"vertical\"] {\r\n resize: vertical !important;\r\n }\r\n\r\n textarea[resize=\"horizontal\"] {\r\n resize: horizontal !important;\r\n }\r\n\r\n .form-control-muted {\r\n background-color: #f7fafe;\r\n border-color: #f7fafe;\r\n box-shadow: none;\r\n }\r\n\r\n .form-control-muted:focus {\r\n background-color: #fcfdff;\r\n }\r\n\r\n .form-control-alternative {\r\n box-shadow: 0 1px 3px rgba(50, 50, 93, 0.15), 0 1px 0 rgba(0, 0, 0, 0.02);\r\n border: 0;\r\n transition: box-shadow 0.15s ease;\r\n }\r\n\r\n .form-control-alternative:focus {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .form-control-lg {\r\n font-size: 1rem;\r\n }\r\n\r\n .has-success,\r\n .has-danger {\r\n position: relative;\r\n }\r\n\r\n .has-success:after,\r\n .has-danger:after {\r\n width: 19px;\r\n height: 19px;\r\n line-height: 19px;\r\n text-align: center;\r\n font-family: \"NucleoIcons\";\r\n display: inline-block;\r\n position: absolute;\r\n right: 15px;\r\n top: 2px;\r\n transform: translateY(50%);\r\n border-radius: 50%;\r\n font-size: 9px;\r\n opacity: 1;\r\n }\r\n\r\n .has-success:after {\r\n content: \"\\\\ea26\";\r\n color: darken(${colors.hues.green}, 18%);\r\n background-color: #69deac;\r\n }\r\n\r\n .has-success .form-control {\r\n background-color: ${colors.neutrals.min};\r\n }\r\n\r\n .has-success .form-control:focus {\r\n border-color: rgba(50, 151, 211, 0.25);\r\n }\r\n\r\n .has-success .form-control::placeholder {\r\n color: ${colors.hues.green};\r\n }\r\n\r\n .has-danger:after {\r\n content: \"\\\\ea53\";\r\n color: darken(${colors.bootstrap.danger}, 18%);\r\n background-color: #fda08b;\r\n }\r\n\r\n .has-danger .form-control {\r\n background-color: ${colors.neutrals.min};\r\n }\r\n\r\n .has-danger .form-control:focus {\r\n border-color: rgba(50, 151, 211, 0.25);\r\n }\r\n\r\n .has-danger .form-control::placeholder {\r\n color: ${colors.bootstrap.warning};\r\n }\r\n\r\n .input-group {\r\n box-shadow: none;\r\n border-radius: 0.375rem;\r\n transition: all 0.15s ease;\r\n }\r\n\r\n .input-group[aria-disabled=\"true\"] {\r\n background-color: ${colors.neutrals.n200};\r\n border-color: ${colors.neutrals.n500};\r\n }\r\n\r\n .input-group[aria-disabled=\"true\"]:hover {\r\n border-color: ${colors.neutrals.n500};\r\n }\r\n\r\n .input-group[aria-disabled=\"true\"] .input-group-text {\r\n background-color: ${colors.neutrals.n200};\r\n }\r\n\r\n .input-group[aria-disabled=\"true\"] .form-control::placeholder {\r\n color: ${colors.neutrals.n600};\r\n }\r\n\r\n .input-group .form-control {\r\n box-shadow: none;\r\n }\r\n\r\n .input-group .form-control:not(:first-child) {\r\n border-left: 0;\r\n padding-left: 0;\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n\r\n .input-group .form-control:not(:last-child) {\r\n border-right: 0;\r\n padding-right: 0;\r\n }\r\n\r\n .input-group .form-control:focus {\r\n box-shadow: none;\r\n }\r\n\r\n .input-group-text {\r\n transition: all 0.2s cubic-bezier(0.68, -0.55, 0.265, 1.55);\r\n }\r\n\r\n .input-group-alternative {\r\n box-shadow: 0 1px 3px rgba(50, 50, 93, 0.15), 0 1px 0 rgba(0, 0, 0, 0.02);\r\n border: 0;\r\n transition: box-shadow 0.15s ease;\r\n }\r\n\r\n .input-group-alternative .form-control,\r\n .input-group-alternative .input-group-text {\r\n border: 0;\r\n box-shadow: none;\r\n }\r\n\r\n .focused .input-group-alternative {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08) !important;\r\n }\r\n\r\n .focused .input-group {\r\n box-shadow: none;\r\n }\r\n\r\n .focused .input-group-text {\r\n color: ${colors.neutrals.n600};\r\n background-color: ${colors.neutrals.min};\r\n border-color: rgba(50, 151, 211, 0.25);\r\n }\r\n\r\n .focused .form-control {\r\n border-color: rgba(50, 151, 211, 0.25);\r\n }\r\n\r\n .header {\r\n position: relative;\r\n }\r\n\r\n .icon {\r\n width: 3rem;\r\n height: 3rem;\r\n }\r\n\r\n .icon i,\r\n .icon svg {\r\n font-size: 2.25rem;\r\n }\r\n\r\n .icon + .icon-text {\r\n padding-left: 1rem;\r\n width: calc(100% - 3rem - 1);\r\n }\r\n\r\n .icon-shape {\r\n padding: 12px;\r\n text-align: center;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 50%;\r\n }\r\n\r\n .icon-shape i,\r\n .icon-shape svg {\r\n font-size: 1.25rem;\r\n }\r\n\r\n .icon-shape.icon-lg i,\r\n .icon-shape.icon-lg svg {\r\n font-size: 1.625rem;\r\n }\r\n\r\n .icon-shape.icon-sm i,\r\n .icon-shape.icon-sm svg {\r\n font-size: 0.875rem;\r\n }\r\n\r\n .icon-shape svg {\r\n width: 30px;\r\n height: 30px;\r\n }\r\n\r\n .icon-shape-primary {\r\n color: #2643e9;\r\n background-color: rgba(138, 152, 235, 0.5);\r\n }\r\n\r\n .icon-shape-secondary {\r\n color: #cfe3f1;\r\n background-color: rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n .icon-shape-success {\r\n color: #1aae6f;\r\n background-color: rgba(84, 218, 161, 0.5);\r\n }\r\n\r\n .icon-shape-info {\r\n color: #03acca;\r\n background-color: rgba(65, 215, 242, 0.5);\r\n }\r\n\r\n .icon-shape-warning {\r\n color: #ff3709;\r\n background-color: rgba(252, 140, 114, 0.5);\r\n }\r\n\r\n .icon-shape-danger {\r\n color: #f80031;\r\n background-color: rgba(247, 103, 131, 0.5);\r\n }\r\n\r\n .icon-shape-light {\r\n color: #879cb0;\r\n background-color: rgba(201, 207, 212, 0.5);\r\n }\r\n\r\n .icon-shape-dark {\r\n color: #090c0e;\r\n background-color: rgba(56, 63, 69, 0.5);\r\n }\r\n\r\n .icon-shape-default {\r\n color: #091428;\r\n background-color: rgba(35, 65, 116, 0.5);\r\n }\r\n\r\n .icon-shape-white {\r\n color: #e8e3e3;\r\n background-color: rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n .icon-shape-neutral {\r\n color: #e8e3e3;\r\n background-color: rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n .icon-shape-darker {\r\n color: ${colors.neutrals.max};\r\n background-color: rgba(26, 26, 26, 0.5);\r\n }\r\n\r\n .input-group {\r\n box-shadow: none;\r\n border-radius: 0.375rem;\r\n transition: all 0.15s ease;\r\n }\r\n\r\n .input-group .form-control {\r\n box-shadow: none;\r\n }\r\n\r\n .input-group .form-control:not(:first-of-type) {\r\n border-left: 0;\r\n padding-left: 0;\r\n }\r\n\r\n .input-group .form-control:not(:last-child) {\r\n border-right: 0;\r\n padding-right: 0;\r\n }\r\n\r\n .input-group .form-control:focus {\r\n box-shadow: none;\r\n }\r\n\r\n .input-group-text {\r\n transition: all 0.2s cubic-bezier(0.68, -0.55, 0.265, 1.55);\r\n }\r\n\r\n .input-group-alternative {\r\n box-shadow: 0 1px 3px rgba(50, 50, 93, 0.15), 0 1px 0 rgba(0, 0, 0, 0.02);\r\n border: 0;\r\n transition: box-shadow 0.15s ease;\r\n }\r\n\r\n .input-group-alternative .form-control,\r\n .input-group-alternative .input-group-text {\r\n border: 0;\r\n box-shadow: none;\r\n }\r\n\r\n .focused .input-group-alternative {\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08) !important;\r\n }\r\n\r\n .focused .input-group {\r\n box-shadow: none;\r\n }\r\n\r\n .focused .input-group-text {\r\n color: ${colors.neutrals.n600};\r\n background-color: ${colors.neutrals.min};\r\n border-color: rgba(50, 151, 211, 0.25);\r\n }\r\n\r\n .focused .form-control {\r\n border-color: rgba(50, 151, 211, 0.25);\r\n }\r\n\r\n .list-group-space .list-group-item {\r\n margin-bottom: 1.5rem;\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .list-group-img {\r\n width: 3rem;\r\n height: 3rem;\r\n border-radius: 50%;\r\n vertical-align: top;\r\n margin: -0.1rem 1.2rem 0 -0.2rem;\r\n }\r\n\r\n .list-group-content {\r\n flex: 1;\r\n min-width: 0;\r\n }\r\n\r\n .list-group-content > p {\r\n color: #adb5bd;\r\n line-height: 1.5;\r\n margin: 0.2rem 0 0;\r\n }\r\n\r\n .list-group-heading {\r\n font-size: 1rem;\r\n color: ${colors.neutrals.n800};\r\n }\r\n\r\n .list-group-heading > small {\r\n float: right;\r\n color: #adb5bd;\r\n font-weight: 500;\r\n }\r\n\r\n .map-canvas {\r\n position: relative;\r\n width: 100%;\r\n height: 500px;\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .mask {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n transition: all 0.15s ease;\r\n }\r\n\r\n @media screen and (prefers-reduced-motion: reduce) {\r\n .mask {\r\n transition: none;\r\n }\r\n }\r\n\r\n .modal-fluid .modal-dialog {\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n }\r\n\r\n .modal-fluid .modal-content {\r\n border-radius: 0;\r\n }\r\n\r\n .modal-primary .modal-title {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-primary .modal-header,\r\n .modal-primary .modal-footer {\r\n border-color: rgba(255, 255, 255, 0.075);\r\n }\r\n\r\n .modal-primary .modal-content {\r\n background-color: ${colors.bootstrap.primary};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-primary .modal-content .heading {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-primary .close > span:not(.sr-only) {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-secondary .modal-title {\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n .modal-secondary .modal-header,\r\n .modal-secondary .modal-footer {\r\n border-color: rgba(33, 37, 41, 0.075);\r\n }\r\n\r\n .modal-secondary .modal-content {\r\n background-color: ${colors.bootstrap.secondary};\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n .modal-secondary .modal-content .heading {\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n .modal-secondary .close > span:not(.sr-only) {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-success .modal-title {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-success .modal-header,\r\n .modal-success .modal-footer {\r\n border-color: rgba(255, 255, 255, 0.075);\r\n }\r\n\r\n .modal-success .modal-content {\r\n background-color: ${colors.bootstrap.success};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-success .modal-content .heading {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-success .close > span:not(.sr-only) {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-info .modal-title {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-info .modal-header,\r\n .modal-info .modal-footer {\r\n border-color: rgba(255, 255, 255, 0.075);\r\n }\r\n\r\n .modal-info .modal-content {\r\n background-color: ${colors.bootstrap.info};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-info .modal-content .heading {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-info .close > span:not(.sr-only) {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-warning .modal-title {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-warning .modal-header,\r\n .modal-warning .modal-footer {\r\n border-color: rgba(255, 255, 255, 0.075);\r\n }\r\n\r\n .modal-warning .modal-content {\r\n background-color: ${colors.bootstrap.warning};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-warning .modal-content .heading {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-warning .close > span:not(.sr-only) {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-danger .modal-title {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-danger .modal-header,\r\n .modal-danger .modal-footer {\r\n border-color: rgba(255, 255, 255, 0.075);\r\n }\r\n\r\n .modal-danger .modal-content {\r\n background-color: ${colors.bootstrap.danger};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-danger .modal-content .heading {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-danger .close > span:not(.sr-only) {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-light .modal-title {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-light .modal-header,\r\n .modal-light .modal-footer {\r\n border-color: rgba(255, 255, 255, 0.075);\r\n }\r\n\r\n .modal-light .modal-content {\r\n background-color: #adb5bd;\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-light .modal-content .heading {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-light .close > span:not(.sr-only) {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-dark .modal-title {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-dark .modal-header,\r\n .modal-dark .modal-footer {\r\n border-color: rgba(255, 255, 255, 0.075);\r\n }\r\n\r\n .modal-dark .modal-content {\r\n background-color: ${colors.neutrals.n900};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-dark .modal-content .heading {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-dark .close > span:not(.sr-only) {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-default .modal-title {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-default .modal-header,\r\n .modal-default .modal-footer {\r\n border-color: rgba(255, 255, 255, 0.075);\r\n }\r\n\r\n .modal-default .modal-content {\r\n background-color: ${colors.bootstrap.default};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-default .modal-content .heading {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-default .close > span:not(.sr-only) {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-white .modal-title {\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n .modal-white .modal-header,\r\n .modal-white .modal-footer {\r\n border-color: rgba(33, 37, 41, 0.075);\r\n }\r\n\r\n .modal-white .modal-content {\r\n background-color: ${colors.neutrals.min};\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n .modal-white .modal-content .heading {\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n .modal-white .close > span:not(.sr-only) {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-neutral .modal-title {\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n .modal-neutral .modal-header,\r\n .modal-neutral .modal-footer {\r\n border-color: rgba(33, 37, 41, 0.075);\r\n }\r\n\r\n .modal-neutral .modal-content {\r\n background-color: ${colors.neutrals.min};\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n .modal-neutral .modal-content .heading {\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n .modal-neutral .close > span:not(.sr-only) {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-darker .modal-title {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-darker .modal-header,\r\n .modal-darker .modal-footer {\r\n border-color: rgba(255, 255, 255, 0.075);\r\n }\r\n\r\n .modal-darker .modal-content {\r\n background-color: ${colors.neutrals.max};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-darker .modal-content .heading {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .modal-darker .close > span:not(.sr-only) {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .nav-wrapper {\r\n padding: 1rem 0;\r\n border-top-left-radius: 0.375rem;\r\n border-top-right-radius: 0.375rem;\r\n }\r\n\r\n .nav-wrapper + .card {\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0.375rem;\r\n border-bottom-left-radius: 0.375rem;\r\n }\r\n\r\n .nav-link {\r\n color: ${colors.neutrals.n700};\r\n }\r\n\r\n .nav-link:hover {\r\n color: ${colors.bootstrap.primaryHigh};\r\n }\r\n\r\n .nav-link i.ni {\r\n position: relative;\r\n top: 2px;\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .nav-item.active-pro {\r\n position: absolute;\r\n width: 100%;\r\n bottom: 10px;\r\n background: ${colors.neutrals.n100};\r\n }\r\n }\r\n\r\n .nav-pills .nav-item:not(:last-child) {\r\n padding-right: 1rem;\r\n }\r\n\r\n .nav-pills .nav-link {\r\n padding: 0.75rem 1rem;\r\n color: ${colors.bootstrap.primary};\r\n font-weight: 500;\r\n font-size: 0.875rem;\r\n box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11),\r\n 0 1px 3px rgba(0, 0, 0, 0.08);\r\n background-color: ${colors.neutrals.min};\r\n transition: all 0.15s ease;\r\n }\r\n\r\n .nav-pills .nav-link:hover {\r\n color: #485fe0;\r\n }\r\n\r\n .nav-pills .nav-link.active,\r\n .nav-pills .show > .nav-link {\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.primary};\r\n }\r\n\r\n @media (max-width: 575.98px) {\r\n .nav-pills .nav-item {\r\n margin-bottom: 1rem;\r\n }\r\n }\r\n\r\n @media (max-width: 767.98px) {\r\n .nav-pills:not(.nav-pills-circle) .nav-item {\r\n padding-right: 0;\r\n }\r\n }\r\n\r\n .nav-pills-circle .nav-link {\r\n text-align: center;\r\n height: 60px;\r\n width: 60px;\r\n padding: 0;\r\n line-height: 60px;\r\n border-radius: 50%;\r\n }\r\n\r\n .nav-pills-circle .nav-link-icon i,\r\n .nav-pills-circle .nav-link-icon svg {\r\n font-size: 1rem;\r\n }\r\n\r\n .navbar-horizontal .navbar-nav .nav-link {\r\n font-size: 0.9rem;\r\n font-weight: 400;\r\n text-transform: normal;\r\n letter-spacing: 0;\r\n transition: all 0.15s linear;\r\n }\r\n\r\n @media screen and (prefers-reduced-motion: reduce) {\r\n .navbar-horizontal .navbar-nav .nav-link {\r\n transition: none;\r\n }\r\n }\r\n\r\n .navbar-horizontal .navbar-nav .nav-link .nav-link-inner--text {\r\n margin-left: 0.25rem;\r\n }\r\n\r\n .navbar-horizontal .navbar-brand {\r\n font-size: 0.875rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n font-size: 0.875rem;\r\n letter-spacing: 0.05px;\r\n }\r\n\r\n .navbar-horizontal .navbar-brand img {\r\n height: 30px;\r\n }\r\n\r\n .navbar-horizontal .navbar-dark .navbar-brand {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .navbar-horizontal .navbar-light .navbar-brand {\r\n color: ${colors.neutrals.midground};\r\n }\r\n\r\n .navbar-horizontal .navbar-nav .nav-item .media:not(:last-child) {\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .navbar-horizontal .navbar-nav .nav-item {\r\n margin-right: 0.5rem;\r\n }\r\n\r\n .navbar-horizontal .navbar-nav .nav-item [data-toggle=\"dropdown\"]::after {\r\n transition: all 0.15s ease;\r\n }\r\n\r\n .navbar-horizontal\r\n .navbar-nav\r\n .nav-item.show\r\n [data-toggle=\"dropdown\"]::after {\r\n transform: rotate(180deg);\r\n }\r\n\r\n .navbar-horizontal .navbar-nav .nav-link {\r\n padding-top: 1rem;\r\n padding-bottom: 1rem;\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .navbar-horizontal .navbar-nav .nav-link i {\r\n margin-right: 0.625rem;\r\n }\r\n\r\n .navbar-horizontal .navbar-nav .nav-link-icon {\r\n padding-left: 0.5rem !important;\r\n padding-right: 0.5rem !important;\r\n font-size: 1rem;\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .navbar-horizontal .navbar-nav .nav-link-icon i {\r\n margin-right: 0;\r\n }\r\n }\r\n\r\n .navbar-horizontal .navbar-transparent {\r\n position: absolute;\r\n top: 0;\r\n width: 100%;\r\n z-index: 100;\r\n background-color: ${colors.transparent};\r\n border: 0;\r\n box-shadow: none;\r\n }\r\n\r\n .navbar-horizontal .navbar-transparent .navbar-brand {\r\n color: white;\r\n }\r\n\r\n .navbar-horizontal .navbar-transparent .navbar-toggler {\r\n color: white;\r\n }\r\n\r\n .navbar-horizontal .navbar-transparent .navbar-toggler-icon {\r\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.95)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\r\n }\r\n\r\n @media (min-width: 768px) {\r\n .navbar-horizontal .navbar-transparent .navbar-nav .nav-link {\r\n color: rgba(255, 255, 255, 0.95);\r\n }\r\n\r\n .navbar-horizontal .navbar-transparent .navbar-nav .nav-link:hover,\r\n .navbar-horizontal .navbar-transparent .navbar-nav .nav-link:focus {\r\n color: rgba(255, 255, 255, 0.65);\r\n }\r\n\r\n .navbar-horizontal .navbar-transparent .navbar-nav .nav-link.disabled {\r\n color: rgba(255, 255, 255, 0.25);\r\n }\r\n\r\n .navbar-horizontal .navbar-transparent .navbar-nav .show > .nav-link,\r\n .navbar-horizontal .navbar-transparent .navbar-nav .active > .nav-link,\r\n .navbar-horizontal .navbar-transparent .navbar-nav .nav-link.show,\r\n .navbar-horizontal .navbar-transparent .navbar-nav .nav-link.active {\r\n color: rgba(255, 255, 255, 0.65);\r\n }\r\n\r\n .navbar-horizontal .navbar-transparent .navbar-brand {\r\n color: rgba(255, 255, 255, 0.95);\r\n }\r\n\r\n .navbar-horizontal .navbar-transparent .navbar-brand:hover,\r\n .navbar-horizontal .navbar-transparent .navbar-brand:focus {\r\n color: rgba(255, 255, 255, 0.95);\r\n }\r\n }\r\n\r\n .navbar-vertical {\r\n box-shadow: 0 0 2rem 0 rgba(136, 152, 170, 0.15) !important;\r\n }\r\n\r\n .navbar-vertical .navbar {\r\n border-width: 0 0 1px 0;\r\n border-style: solid;\r\n }\r\n\r\n .navbar-vertical.navbar-light {\r\n background-color: ${colors.neutrals.midground};\r\n border-color: ${colors.neutrals.n100};\r\n }\r\n\r\n .navbar-vertical .navbar-brand {\r\n margin-right: 0;\r\n }\r\n\r\n .navbar-vertical .navbar-brand-img,\r\n .navbar-vertical .navbar-brand-img-mini {\r\n max-width: 100%;\r\n max-height: 3rem;\r\n }\r\n\r\n @media (min-width: 768px) {\r\n .navbar-vertical .navbar-brand-img,\r\n .navbar-vertical .navbar-brand-img-mini {\r\n max-height: 5rem;\r\n padding-bottom: 1rem;\r\n }\r\n }\r\n\r\n @media (min-width: 768px) {\r\n .navbar-vertical .navbar-collapse {\r\n margin-left: -1rem;\r\n margin-right: -1rem;\r\n padding-left: 1rem;\r\n padding-right: 1rem;\r\n }\r\n }\r\n\r\n .navbar-vertical .navbar-nav {\r\n margin-left: -1rem;\r\n margin-right: -1rem;\r\n }\r\n\r\n .navbar-vertical .navbar-nav .nav-link {\r\n padding-left: 1rem;\r\n padding-right: 1rem;\r\n font-size: 0.9rem;\r\n }\r\n\r\n .navbar-vertical .navbar-nav .nav-link.active {\r\n position: relative;\r\n }\r\n\r\n .navbar-vertical .navbar-nav .nav-link.active:before {\r\n content: \"\";\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n border-left: 4px solid ${colors.bootstrap.primary};\r\n }\r\n\r\n .navbar-vertical .navbar-nav .nav-link > i {\r\n min-width: 2.25rem;\r\n font-size: 0.9375rem;\r\n line-height: 1.5rem;\r\n }\r\n\r\n .navbar-vertical .navbar-nav .nav-link .dropdown-menu {\r\n border: none;\r\n }\r\n\r\n .navbar-vertical .navbar-nav .nav-link .dropdown-menu .dropdown-menu {\r\n margin-left: 0.75rem;\r\n }\r\n\r\n .navbar-vertical .navbar-nav .nav-link {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .navbar-vertical .navbar-nav .nav-link[data-toggle=\"collapse\"]:after {\r\n display: inline-block;\r\n font-style: normal;\r\n font-variant: normal;\r\n text-rendering: auto;\r\n -webkit-font-smoothing: antialiased;\r\n font-family: \"Font Awesome 5 Free\";\r\n font-weight: 700;\r\n content: \"\\\\f105\";\r\n margin-left: auto;\r\n color: ${colors.neutrals.n600};\r\n transition: all 0.15s ease;\r\n }\r\n\r\n .navbar-vertical\r\n .navbar-nav\r\n .nav-link[data-toggle=\"collapse\"][aria-expanded=\"true\"]:after {\r\n transform: rotate(90deg);\r\n }\r\n\r\n .navbar-vertical .navbar-nav .nav .nav-link {\r\n padding-left: 3.25rem;\r\n }\r\n\r\n .navbar-vertical .navbar-nav .nav .nav .nav-link {\r\n padding-left: 3.75rem;\r\n }\r\n\r\n .navbar-vertical .navbar-heading {\r\n padding-top: 0.25rem;\r\n padding-bottom: 0.25rem;\r\n font-size: 0.75rem;\r\n text-transform: uppercase;\r\n letter-spacing: 0.04em;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs {\r\n display: block;\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n width: 100%;\r\n max-width: 250px;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n overflow-y: auto;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs > [class*=\"container\"] {\r\n flex-direction: column;\r\n align-items: stretch;\r\n min-height: 100%;\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n\r\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\r\n .navbar-vertical.navbar-expand-xs > [class*=\"container\"] {\r\n min-height: none;\r\n height: 100%;\r\n }\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs.fixed-left {\r\n left: 0;\r\n border-width: 0 1px 0 0;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs.fixed-right {\r\n right: 0;\r\n border-width: 0 0 0 1px;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs .navbar-collapse {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: stretch;\r\n margin-left: -1.5rem;\r\n margin-right: -1.5rem;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs .navbar-collapse > * {\r\n min-width: 100%;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs .navbar-nav {\r\n flex-direction: column;\r\n margin-left: -1.5rem;\r\n margin-right: -1.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs .navbar-nav .nav-link {\r\n padding: 0.65rem 1.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs .navbar-nav .nav-link.active:before {\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: auto;\r\n border-left: 4px solid ${colors.bootstrap.primary};\r\n border-bottom: 0;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs .navbar-nav .nav .nav-link {\r\n padding-left: 3.75rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs .navbar-nav .nav .nav .nav-link {\r\n padding-left: 4.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs .navbar-brand {\r\n display: block;\r\n text-align: center;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs .navbar-brand-img {\r\n max-height: 2.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs .navbar-user {\r\n margin-left: -1.5rem;\r\n margin-right: -1.5rem;\r\n padding-top: 1rem;\r\n padding-bottom: 0rem;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n border-top: 1px solid ${colors.neutrals.n200};\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xs .navbar-user .dropup .dropdown-menu {\r\n left: 50%;\r\n transform: translateX(-50%);\r\n }\r\n\r\n @media (min-width: 576px) {\r\n .navbar-vertical.navbar-expand-sm {\r\n display: block;\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n width: 100%;\r\n max-width: 250px;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n overflow-y: auto;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-sm > [class*=\"container\"] {\r\n flex-direction: column;\r\n align-items: stretch;\r\n min-height: 100%;\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n }\r\n\r\n @media all and (min-width: 576px) and (-ms-high-contrast: none),\r\n (min-width: 576px) and (-ms-high-contrast: active) {\r\n .navbar-vertical.navbar-expand-sm > [class*=\"container\"] {\r\n min-height: none;\r\n height: 100%;\r\n }\r\n }\r\n\r\n @media (min-width: 576px) {\r\n .navbar-vertical.navbar-expand-sm.fixed-left {\r\n left: 0;\r\n border-width: 0 1px 0 0;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-sm.fixed-right {\r\n right: 0;\r\n border-width: 0 0 0 1px;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-sm .navbar-collapse {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: stretch;\r\n margin-left: -1.5rem;\r\n margin-right: -1.5rem;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-sm .navbar-collapse > * {\r\n min-width: 100%;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-sm .navbar-nav {\r\n flex-direction: column;\r\n margin-left: -1.5rem;\r\n margin-right: -1.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-sm .navbar-nav .nav-link {\r\n padding: 0.65rem 1.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-sm .navbar-nav .nav-link.active:before {\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: auto;\r\n border-left: 4px solid ${colors.bootstrap.primary};\r\n border-bottom: 0;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-sm .navbar-nav .nav .nav-link {\r\n padding-left: 3.75rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-sm .navbar-nav .nav .nav .nav-link {\r\n padding-left: 4.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-sm .navbar-brand {\r\n display: block;\r\n text-align: center;\r\n padding-top: 1rem;\r\n padding-bottom: 1rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-sm .navbar-brand-img {\r\n max-height: 2.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-sm .navbar-user {\r\n margin-left: -1.5rem;\r\n margin-right: -1.5rem;\r\n padding-top: 1rem;\r\n padding-bottom: 0rem;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n border-top: 1px solid ${colors.neutrals.n200};\r\n }\r\n\r\n .navbar-vertical.navbar-expand-sm .navbar-user .dropup .dropdown-menu {\r\n left: 50%;\r\n transform: translateX(-50%);\r\n }\r\n }\r\n\r\n @media (min-width: 768px) {\r\n .navbar-vertical.navbar-expand-md {\r\n display: block;\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n width: 100%;\r\n max-width: 250px;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n overflow-y: auto;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-md > [class*=\"container\"] {\r\n flex-direction: column;\r\n align-items: stretch;\r\n min-height: 100%;\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n }\r\n\r\n @media all and (min-width: 768px) and (-ms-high-contrast: none),\r\n (min-width: 768px) and (-ms-high-contrast: active) {\r\n .navbar-vertical.navbar-expand-md > [class*=\"container\"] {\r\n min-height: none;\r\n height: 100%;\r\n }\r\n }\r\n\r\n @media (min-width: 768px) {\r\n .navbar-vertical.navbar-expand-md.fixed-left {\r\n left: 0;\r\n border-width: 0 1px 0 0;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-md.fixed-right {\r\n right: 0;\r\n border-width: 0 0 0 1px;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-md .navbar-collapse {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: stretch;\r\n margin-left: -1.5rem;\r\n margin-right: -1.5rem;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-md .navbar-collapse > * {\r\n min-width: 100%;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-md .navbar-nav {\r\n flex-direction: column;\r\n margin-left: -1.5rem;\r\n margin-right: -1.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-md .navbar-nav .nav-link {\r\n padding: 0.65rem 1.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-md .navbar-nav .nav-link.active:before {\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: auto;\r\n border-left: 4px solid ${colors.bootstrap.primary};\r\n border-bottom: 0;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-md .navbar-nav .nav .nav-link {\r\n padding-left: 3.75rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-md .navbar-nav .nav .nav .nav-link {\r\n padding-left: 4.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-md .navbar-brand {\r\n display: block;\r\n text-align: center;\r\n padding-top: 0;\r\n padding-bottom: 0;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-md .navbar-user {\r\n margin-left: -1.5rem;\r\n margin-right: -1.5rem;\r\n padding-top: 1rem;\r\n padding-bottom: 0rem;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n border-top: 1px solid ${colors.neutrals.n200};\r\n }\r\n\r\n .navbar-vertical.navbar-expand-md .navbar-user .dropup .dropdown-menu {\r\n left: 50%;\r\n transform: translateX(-50%);\r\n }\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .navbar-vertical.navbar-expand-lg {\r\n display: block;\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n width: 100%;\r\n max-width: 250px;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n overflow-y: auto;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-lg > [class*=\"container\"] {\r\n flex-direction: column;\r\n align-items: stretch;\r\n min-height: 100%;\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n }\r\n\r\n @media all and (min-width: 992px) and (-ms-high-contrast: none),\r\n (min-width: 992px) and (-ms-high-contrast: active) {\r\n .navbar-vertical.navbar-expand-lg > [class*=\"container\"] {\r\n min-height: none;\r\n height: 100%;\r\n }\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .navbar-vertical.navbar-expand-lg.fixed-left {\r\n left: 0;\r\n border-width: 0 1px 0 0;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-lg.fixed-right {\r\n right: 0;\r\n border-width: 0 0 0 1px;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-lg .navbar-collapse {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: stretch;\r\n margin-left: -1.5rem;\r\n margin-right: -1.5rem;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-lg .navbar-collapse > * {\r\n min-width: 100%;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-lg .navbar-nav {\r\n flex-direction: column;\r\n margin-left: -1.5rem;\r\n margin-right: -1.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-lg .navbar-nav .nav-link {\r\n padding: 0.65rem 1.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-lg .navbar-nav .nav-link.active:before {\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: auto;\r\n border-left: 4px solid ${colors.bootstrap.primary};\r\n border-bottom: 0;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-lg .navbar-nav .nav .nav-link {\r\n padding-left: 3.75rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-lg .navbar-nav .nav .nav .nav-link {\r\n padding-left: 4.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-lg .navbar-brand {\r\n display: block;\r\n text-align: center;\r\n padding-top: 1rem;\r\n padding-bottom: 1rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-lg .navbar-brand-img {\r\n max-height: 2.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-lg .navbar-user {\r\n margin-left: -1.5rem;\r\n margin-right: -1.5rem;\r\n padding-top: 1rem;\r\n padding-bottom: 0rem;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n border-top: 1px solid ${colors.neutrals.n200};\r\n }\r\n\r\n .navbar-vertical.navbar-expand-lg .navbar-user .dropup .dropdown-menu {\r\n left: 50%;\r\n transform: translateX(-50%);\r\n }\r\n }\r\n\r\n @media (min-width: 1200px) {\r\n .navbar-vertical.navbar-expand-xl {\r\n display: block;\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n width: 100%;\r\n max-width: 250px;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n overflow-y: auto;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xl > [class*=\"container\"] {\r\n flex-direction: column;\r\n align-items: stretch;\r\n min-height: 100%;\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n }\r\n\r\n @media all and (min-width: 1200px) and (-ms-high-contrast: none),\r\n (min-width: 1200px) and (-ms-high-contrast: active) {\r\n .navbar-vertical.navbar-expand-xl > [class*=\"container\"] {\r\n min-height: none;\r\n height: 100%;\r\n }\r\n }\r\n\r\n @media (min-width: 1200px) {\r\n .navbar-vertical.navbar-expand-xl.fixed-left {\r\n left: 0;\r\n border-width: 0 1px 0 0;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xl.fixed-right {\r\n right: 0;\r\n border-width: 0 0 0 1px;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xl .navbar-collapse {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: stretch;\r\n margin-left: -1.5rem;\r\n margin-right: -1.5rem;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xl .navbar-collapse > * {\r\n min-width: 100%;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xl .navbar-nav {\r\n flex-direction: column;\r\n margin-left: -1.5rem;\r\n margin-right: -1.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xl .navbar-nav .nav-link {\r\n padding: 0.65rem 1.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xl .navbar-nav .nav-link.active:before {\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: auto;\r\n border-left: 4px solid ${colors.bootstrap.primary};\r\n border-bottom: 0;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xl .navbar-nav .nav .nav-link {\r\n padding-left: 3.75rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xl .navbar-nav .nav .nav .nav-link {\r\n padding-left: 4.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xl .navbar-brand {\r\n display: block;\r\n text-align: center;\r\n padding-top: 1rem;\r\n padding-bottom: 1rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xl .navbar-brand-img {\r\n max-height: 2.5rem;\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xl .navbar-user {\r\n margin-left: -1.5rem;\r\n margin-right: -1.5rem;\r\n padding-top: 1rem;\r\n padding-bottom: 0rem;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n border-top: 1px solid ${colors.neutrals.n200};\r\n }\r\n\r\n .navbar-vertical.navbar-expand-xl .navbar-user .dropup .dropdown-menu {\r\n left: 50%;\r\n transform: translateX(-50%);\r\n }\r\n }\r\n\r\n .navbar-search .input-group {\r\n border-radius: 2rem;\r\n border: 2px solid;\r\n background-color: ${colors.transparent};\r\n }\r\n\r\n .navbar-search .input-group .input-group-text {\r\n background-color: ${colors.transparent};\r\n padding-left: 1rem;\r\n }\r\n\r\n .navbar-search .form-control {\r\n width: 270px;\r\n background-color: ${colors.transparent};\r\n }\r\n\r\n .navbar-search-dark .input-group {\r\n border-color: rgba(255, 255, 255, 0.6);\r\n }\r\n\r\n .navbar-search-dark .input-group-text {\r\n color: rgba(255, 255, 255, 0.6);\r\n }\r\n\r\n .navbar-search-dark .form-control {\r\n color: rgba(255, 255, 255, 0.9);\r\n }\r\n\r\n .navbar-search-dark .form-control::placeholder {\r\n color: rgba(255, 255, 255, 0.6);\r\n }\r\n\r\n .navbar-search-dark .focused .input-group {\r\n border-color: rgba(255, 255, 255, 0.9);\r\n }\r\n\r\n .navbar-search-light .input-group {\r\n border-color: rgba(0, 0, 0, 0.6);\r\n }\r\n\r\n .navbar-search-light .input-group-text {\r\n color: rgba(0, 0, 0, 0.6);\r\n }\r\n\r\n .navbar-search-light .form-control {\r\n color: rgba(0, 0, 0, 0.9);\r\n }\r\n\r\n .navbar-search-light .form-control::placeholder {\r\n color: rgba(0, 0, 0, 0.6);\r\n }\r\n\r\n .navbar-search-light .focused .input-group {\r\n border-color: rgba(0, 0, 0, 0.9);\r\n }\r\n\r\n @media (min-width: 768px) {\r\n .navbar .dropdown-menu {\r\n opacity: 0;\r\n pointer-events: none;\r\n margin: 0;\r\n }\r\n\r\n .navbar .dropdown-menu-arrow:before {\r\n background: ${colors.neutrals.min};\r\n box-shadow: none;\r\n content: \"\";\r\n display: block;\r\n height: 12px;\r\n width: 12px;\r\n left: 20px;\r\n position: absolute;\r\n bottom: 100%;\r\n transform: rotate(-45deg) translateY(12px);\r\n z-index: -5;\r\n border-radius: 2px;\r\n }\r\n\r\n .navbar .dropdown-menu-right:before {\r\n right: 20px;\r\n left: auto;\r\n }\r\n\r\n .navbar:not(.navbar-nav-hover) .dropdown-menu.show {\r\n opacity: 1;\r\n pointer-events: auto;\r\n animation: show-navbar-dropdown 0.25s ease forwards;\r\n }\r\n\r\n .navbar:not(.navbar-nav-hover) .dropdown-menu.close {\r\n display: block;\r\n animation: hide-navbar-dropdown 0.15s ease backwards;\r\n }\r\n\r\n .navbar.navbar-nav-hover .dropdown-menu {\r\n opacity: 0;\r\n display: block;\r\n pointer-events: none;\r\n transform: translate(0, 10px) perspective(200px) rotateX(-2deg);\r\n transition: visibility 0.25s, opacity 0.25s, transform 0.25s;\r\n }\r\n\r\n .navbar.navbar-nav-hover .nav-item.dropdown:hover > .dropdown-menu {\r\n display: block;\r\n opacity: 1;\r\n pointer-events: auto;\r\n visibility: visible;\r\n transform: translate(0, 0);\r\n animation: none;\r\n }\r\n\r\n .navbar .dropdown-menu-inner {\r\n position: relative;\r\n padding: 1rem;\r\n }\r\n\r\n @keyframes show-navbar-dropdown {\r\n 0% {\r\n opacity: 0;\r\n transform: translate(0, 10px) perspective(200px) rotateX(-2deg);\r\n transition: visibility 0.25s, opacity 0.25s, transform 0.25s;\r\n }\r\n\r\n 100% {\r\n transform: translate(0, 0);\r\n opacity: 1;\r\n }\r\n }\r\n\r\n @keyframes hide-navbar-dropdown {\r\n from {\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n opacity: 0;\r\n transform: translate(0, 10px);\r\n }\r\n }\r\n }\r\n\r\n .navbar-collapse-header {\r\n display: none;\r\n }\r\n\r\n @media (max-width: 767.98px) {\r\n .navbar-nav .nav-link {\r\n padding: 0.625rem 0;\r\n }\r\n\r\n .navbar-nav .dropdown-menu {\r\n box-shadow: none;\r\n min-width: auto;\r\n }\r\n\r\n .navbar-nav .dropdown-menu .media svg {\r\n width: 30px;\r\n }\r\n\r\n .navbar-collapse {\r\n width: calc(100% - 1.4rem);\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 1050;\r\n margin: 0.7rem;\r\n overflow-y: auto;\r\n height: auto !important;\r\n opacity: 0;\r\n }\r\n\r\n .navbar-collapse .navbar-toggler {\r\n width: 20px;\r\n height: 20px;\r\n position: relative;\r\n cursor: pointer;\r\n display: inline-block;\r\n padding: 0;\r\n }\r\n\r\n .navbar-collapse .navbar-toggler span {\r\n display: block;\r\n position: absolute;\r\n width: 100%;\r\n height: 2px;\r\n border-radius: 2px;\r\n opacity: 1;\r\n background: #283448;\r\n }\r\n\r\n .navbar-collapse .navbar-toggler :nth-of-type(1) {\r\n transform: rotate(135deg);\r\n }\r\n\r\n .navbar-collapse .navbar-toggler :nth-of-type(2) {\r\n transform: rotate(-135deg);\r\n }\r\n\r\n .navbar-collapse .navbar-collapse-header {\r\n display: block;\r\n padding-bottom: 1rem;\r\n margin-bottom: 1rem;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\r\n }\r\n\r\n .navbar-collapse .collapse-brand img {\r\n height: 36px;\r\n }\r\n\r\n .navbar-collapse .collapse-close {\r\n text-align: right;\r\n }\r\n\r\n .navbar-collapse.collapsing,\r\n .navbar-collapse.show {\r\n padding: 1.5rem;\r\n border-radius: 0.375rem;\r\n background: ${colors.neutrals.midground};\r\n box-shadow: 0 50px 100px rgba(50, 50, 93, 0.1),\r\n 0 15px 35px rgba(50, 50, 93, 0.15), 0 5px 15px rgba(0, 0, 0, 0.1);\r\n animation: show-navbar-collapse 0.2s ease forwards;\r\n }\r\n\r\n .navbar-collapse.collapsing-out {\r\n animation: hide-navbar-collapse 0.2s ease forwards;\r\n }\r\n }\r\n\r\n @keyframes show-navbar-collapse {\r\n 0% {\r\n opacity: 0;\r\n transform: scale(0.95);\r\n transform-origin: 100% 0;\r\n }\r\n\r\n 100% {\r\n opacity: 1;\r\n transform: scale(1);\r\n }\r\n }\r\n\r\n @keyframes hide-navbar-collapse {\r\n from {\r\n opacity: 1;\r\n transform: scale(1);\r\n transform-origin: 100% 0;\r\n }\r\n\r\n to {\r\n opacity: 0;\r\n transform: scale(0.95);\r\n }\r\n }\r\n\r\n .page-item.active .page-link {\r\n box-shadow: 0 7px 14px rgba(50, 50, 93, 0.1),\r\n 0 3px 6px rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n .page-item .page-link,\r\n .page-item span {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 0;\r\n margin: 0 3px;\r\n border-radius: 50% !important;\r\n width: 36px;\r\n height: 36px;\r\n font-size: 0.875rem;\r\n }\r\n\r\n .pagination-lg .page-item .page-link,\r\n .pagination-lg .page-item span {\r\n width: 46px;\r\n height: 46px;\r\n line-height: 46px;\r\n }\r\n\r\n .pagination-sm .page-item .page-link,\r\n .pagination-sm .page-item span {\r\n width: 30px;\r\n height: 30px;\r\n line-height: 30px;\r\n }\r\n\r\n .popover {\r\n border: 0;\r\n }\r\n\r\n .popover-header {\r\n font-weight: 600;\r\n }\r\n\r\n .popover-primary {\r\n background-color: ${colors.bootstrap.primary};\r\n }\r\n\r\n .popover-primary .popover-header {\r\n background-color: ${colors.bootstrap.primary};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-primary .popover-body {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-primary .popover-header {\r\n border-color: rgba(255, 255, 255, 0.2);\r\n }\r\n\r\n .popover-primary.bs-popover-top .arrow::after,\r\n .popover-primary.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\r\n border-top-color: ${colors.bootstrap.primary};\r\n }\r\n\r\n .popover-primary.bs-popover-right .arrow::after,\r\n .popover-primary.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\r\n border-right-color: ${colors.bootstrap.primary};\r\n }\r\n\r\n .popover-primary.bs-popover-bottom .arrow::after,\r\n .popover-primary.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\r\n border-bottom-color: ${colors.bootstrap.primary};\r\n }\r\n\r\n .popover-primary.bs-popover-left .arrow::after,\r\n .popover-primary.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\r\n border-left-color: ${colors.bootstrap.primary};\r\n }\r\n\r\n .popover-secondary {\r\n background-color: ${colors.bootstrap.secondary};\r\n }\r\n\r\n .popover-secondary .popover-header {\r\n background-color: ${colors.bootstrap.secondary};\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n .popover-secondary .popover-body {\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n .popover-secondary .popover-header {\r\n border-color: rgba(33, 37, 41, 0.2);\r\n }\r\n\r\n .popover-secondary.bs-popover-top .arrow::after,\r\n .popover-secondary.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\r\n border-top-color: ${colors.bootstrap.secondary};\r\n }\r\n\r\n .popover-secondary.bs-popover-right .arrow::after,\r\n .popover-secondary.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\r\n border-right-color: ${colors.bootstrap.secondary};\r\n }\r\n\r\n .popover-secondary.bs-popover-bottom .arrow::after,\r\n .popover-secondary.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\r\n border-bottom-color: ${colors.bootstrap.secondary};\r\n }\r\n\r\n .popover-secondary.bs-popover-left .arrow::after,\r\n .popover-secondary.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\r\n border-left-color: ${colors.bootstrap.secondary};\r\n }\r\n\r\n .popover-success {\r\n background-color: ${colors.bootstrap.success};\r\n }\r\n\r\n .popover-success .popover-header {\r\n background-color: ${colors.bootstrap.success};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-success .popover-body {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-success .popover-header {\r\n border-color: rgba(255, 255, 255, 0.2);\r\n }\r\n\r\n .popover-success.bs-popover-top .arrow::after,\r\n .popover-success.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\r\n border-top-color: ${colors.bootstrap.success};\r\n }\r\n\r\n .popover-success.bs-popover-right .arrow::after,\r\n .popover-success.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\r\n border-right-color: ${colors.bootstrap.success};\r\n }\r\n\r\n .popover-success.bs-popover-bottom .arrow::after,\r\n .popover-success.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\r\n border-bottom-color: ${colors.bootstrap.success};\r\n }\r\n\r\n .popover-success.bs-popover-left .arrow::after,\r\n .popover-success.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\r\n border-left-color: ${colors.bootstrap.success};\r\n }\r\n\r\n .popover-info {\r\n background-color: ${colors.bootstrap.info};\r\n }\r\n\r\n .popover-info .popover-header {\r\n background-color: ${colors.bootstrap.info};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-info .popover-body {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-info .popover-header {\r\n border-color: rgba(255, 255, 255, 0.2);\r\n }\r\n\r\n .popover-info.bs-popover-top .arrow::after,\r\n .popover-info.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\r\n border-top-color: ${colors.bootstrap.info};\r\n }\r\n\r\n .popover-info.bs-popover-right .arrow::after,\r\n .popover-info.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\r\n border-right-color: ${colors.bootstrap.info};\r\n }\r\n\r\n .popover-info.bs-popover-bottom .arrow::after,\r\n .popover-info.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\r\n border-bottom-color: ${colors.bootstrap.info};\r\n }\r\n\r\n .popover-info.bs-popover-left .arrow::after,\r\n .popover-info.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\r\n border-left-color: ${colors.bootstrap.info};\r\n }\r\n\r\n .popover-warning {\r\n background-color: ${colors.bootstrap.warning};\r\n }\r\n\r\n .popover-warning .popover-header {\r\n background-color: ${colors.bootstrap.warning};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-warning .popover-body {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-warning .popover-header {\r\n border-color: rgba(255, 255, 255, 0.2);\r\n }\r\n\r\n .popover-warning.bs-popover-top .arrow::after,\r\n .popover-warning.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\r\n border-top-color: ${colors.bootstrap.warning};\r\n }\r\n\r\n .popover-warning.bs-popover-right .arrow::after,\r\n .popover-warning.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\r\n border-right-color: ${colors.bootstrap.warning};\r\n }\r\n\r\n .popover-warning.bs-popover-bottom .arrow::after,\r\n .popover-warning.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\r\n border-bottom-color: ${colors.bootstrap.warning};\r\n }\r\n\r\n .popover-warning.bs-popover-left .arrow::after,\r\n .popover-warning.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\r\n border-left-color: ${colors.bootstrap.warning};\r\n }\r\n\r\n .popover-danger {\r\n background-color: ${colors.bootstrap.danger};\r\n }\r\n\r\n .popover-danger .popover-header {\r\n background-color: ${colors.bootstrap.danger};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-danger .popover-body {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-danger .popover-header {\r\n border-color: rgba(255, 255, 255, 0.2);\r\n }\r\n\r\n .popover-danger.bs-popover-top .arrow::after,\r\n .popover-danger.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\r\n border-top-color: ${colors.bootstrap.danger};\r\n }\r\n\r\n .popover-danger.bs-popover-right .arrow::after,\r\n .popover-danger.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\r\n border-right-color: ${colors.bootstrap.danger};\r\n }\r\n\r\n .popover-danger.bs-popover-bottom .arrow::after,\r\n .popover-danger.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\r\n border-bottom-color: ${colors.bootstrap.danger};\r\n }\r\n\r\n .popover-danger.bs-popover-left .arrow::after,\r\n .popover-danger.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\r\n border-left-color: ${colors.bootstrap.danger};\r\n }\r\n\r\n .popover-light {\r\n background-color: #adb5bd;\r\n }\r\n\r\n .popover-light .popover-header {\r\n background-color: #adb5bd;\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-light .popover-body {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-light .popover-header {\r\n border-color: rgba(255, 255, 255, 0.2);\r\n }\r\n\r\n .popover-light.bs-popover-top .arrow::after,\r\n .popover-light.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\r\n border-top-color: #adb5bd;\r\n }\r\n\r\n .popover-light.bs-popover-right .arrow::after,\r\n .popover-light.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\r\n border-right-color: #adb5bd;\r\n }\r\n\r\n .popover-light.bs-popover-bottom .arrow::after,\r\n .popover-light.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\r\n border-bottom-color: #adb5bd;\r\n }\r\n\r\n .popover-light.bs-popover-left .arrow::after,\r\n .popover-light.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\r\n border-left-color: #adb5bd;\r\n }\r\n\r\n .popover-dark {\r\n background-color: ${colors.neutrals.n900};\r\n }\r\n\r\n .popover-dark .popover-header {\r\n background-color: ${colors.neutrals.n900};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-dark .popover-body {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-dark .popover-header {\r\n border-color: rgba(255, 255, 255, 0.2);\r\n }\r\n\r\n .popover-dark.bs-popover-top .arrow::after,\r\n .popover-dark.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\r\n border-top-color: ${colors.neutrals.n900};\r\n }\r\n\r\n .popover-dark.bs-popover-right .arrow::after,\r\n .popover-dark.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\r\n border-right-color: ${colors.neutrals.n900};\r\n }\r\n\r\n .popover-dark.bs-popover-bottom .arrow::after,\r\n .popover-dark.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\r\n border-bottom-color: ${colors.neutrals.n900};\r\n }\r\n\r\n .popover-dark.bs-popover-left .arrow::after,\r\n .popover-dark.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\r\n border-left-color: ${colors.neutrals.n900};\r\n }\r\n\r\n .popover-default {\r\n background-color: ${colors.bootstrap.default};\r\n }\r\n\r\n .popover-default .popover-header {\r\n background-color: ${colors.bootstrap.default};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-default .popover-body {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-default .popover-header {\r\n border-color: rgba(255, 255, 255, 0.2);\r\n }\r\n\r\n .popover-default.bs-popover-top .arrow::after,\r\n .popover-default.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\r\n border-top-color: ${colors.bootstrap.default};\r\n }\r\n\r\n .popover-default.bs-popover-right .arrow::after,\r\n .popover-default.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\r\n border-right-color: ${colors.bootstrap.default};\r\n }\r\n\r\n .popover-default.bs-popover-bottom .arrow::after,\r\n .popover-default.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\r\n border-bottom-color: ${colors.bootstrap.default};\r\n }\r\n\r\n .popover-default.bs-popover-left .arrow::after,\r\n .popover-default.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\r\n border-left-color: ${colors.bootstrap.default};\r\n }\r\n\r\n .popover-white {\r\n background-color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-white .popover-header {\r\n background-color: ${colors.neutrals.min};\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n .popover-white .popover-body {\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n .popover-white .popover-header {\r\n border-color: rgba(33, 37, 41, 0.2);\r\n }\r\n\r\n .popover-white.bs-popover-top .arrow::after,\r\n .popover-white.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\r\n border-top-color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-white.bs-popover-right .arrow::after,\r\n .popover-white.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\r\n border-right-color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-white.bs-popover-bottom .arrow::after,\r\n .popover-white.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\r\n border-bottom-color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-white.bs-popover-left .arrow::after,\r\n .popover-white.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\r\n border-left-color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-neutral {\r\n background-color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-neutral .popover-header {\r\n background-color: ${colors.neutrals.min};\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n .popover-neutral .popover-body {\r\n color: ${colors.neutrals.n900};\r\n }\r\n\r\n .popover-neutral .popover-header {\r\n border-color: rgba(33, 37, 41, 0.2);\r\n }\r\n\r\n .popover-neutral.bs-popover-top .arrow::after,\r\n .popover-neutral.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\r\n border-top-color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-neutral.bs-popover-right .arrow::after,\r\n .popover-neutral.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\r\n border-right-color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-neutral.bs-popover-bottom .arrow::after,\r\n .popover-neutral.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\r\n border-bottom-color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-neutral.bs-popover-left .arrow::after,\r\n .popover-neutral.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\r\n border-left-color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-darker {\r\n background-color: ${colors.neutrals.max};\r\n }\r\n\r\n .popover-darker .popover-header {\r\n background-color: ${colors.neutrals.max};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-darker .popover-body {\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .popover-darker .popover-header {\r\n border-color: rgba(255, 255, 255, 0.2);\r\n }\r\n\r\n .popover-darker.bs-popover-top .arrow::after,\r\n .popover-darker.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\r\n border-top-color: ${colors.neutrals.max};\r\n }\r\n\r\n .popover-darker.bs-popover-right .arrow::after,\r\n .popover-darker.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\r\n border-right-color: ${colors.neutrals.max};\r\n }\r\n\r\n .popover-darker.bs-popover-bottom .arrow::after,\r\n .popover-darker.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\r\n border-bottom-color: ${colors.neutrals.max};\r\n }\r\n\r\n .popover-darker.bs-popover-left .arrow::after,\r\n .popover-darker.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\r\n border-left-color: ${colors.neutrals.max};\r\n }\r\n\r\n .progress-wrapper {\r\n position: relative;\r\n padding-top: 1.5rem;\r\n }\r\n\r\n .progress {\r\n height: 8px;\r\n margin-bottom: 1rem;\r\n overflow: hidden;\r\n border-radius: 0.25rem;\r\n background-color: ${colors.neutrals.n200};\r\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\r\n }\r\n\r\n .progress .sr-only {\r\n width: auto;\r\n height: 20px;\r\n margin: 0 0 0 30px;\r\n left: 0;\r\n clip: auto;\r\n line-height: 20px;\r\n font-size: 13px;\r\n }\r\n\r\n .progress-heading {\r\n font-size: 14px;\r\n font-weight: 500;\r\n margin: 0 0 2px;\r\n padding: 0;\r\n }\r\n\r\n .progress-bar {\r\n box-shadow: none;\r\n border-radius: 0;\r\n height: auto;\r\n }\r\n\r\n .progress-info {\r\n margin-bottom: 0.5rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n }\r\n\r\n .progress-label span {\r\n display: inline-block;\r\n color: ${colors.bootstrap.primary};\r\n font-size: 0.625rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n background: rgba(94, 114, 228, 0.1);\r\n padding: 0.25rem 1rem;\r\n border-radius: 30px;\r\n }\r\n\r\n .progress-percentage {\r\n text-align: right;\r\n }\r\n\r\n .progress-percentage span {\r\n display: inline-block;\r\n color: ${colors.neutrals.n600};\r\n font-size: 0.875rem;\r\n font-weight: 600;\r\n }\r\n\r\n .separator {\r\n position: absolute;\r\n top: auto;\r\n left: 0;\r\n right: 0;\r\n width: 100%;\r\n height: 150px;\r\n transform: translateZ(0);\r\n overflow: hidden;\r\n pointer-events: none;\r\n }\r\n\r\n .separator svg {\r\n position: absolute;\r\n pointer-events: none;\r\n }\r\n\r\n .separator-top {\r\n top: 0;\r\n bottom: auto;\r\n }\r\n\r\n .separator-top svg {\r\n top: 0;\r\n }\r\n\r\n .separator-bottom {\r\n top: auto;\r\n bottom: 0;\r\n }\r\n\r\n .separator-bottom svg {\r\n bottom: 0;\r\n }\r\n\r\n .separator-inverse {\r\n transform: rotate(180deg);\r\n }\r\n\r\n .separator-skew {\r\n height: 100px;\r\n }\r\n\r\n @media (min-width: 1200px) {\r\n .separator-skew {\r\n height: 100%;\r\n }\r\n }\r\n\r\n .table thead th {\r\n padding-top: 0.75rem;\r\n padding-bottom: 0.75rem;\r\n font-size: 0.65rem;\r\n text-transform: uppercase;\r\n letter-spacing: 1px;\r\n border-bottom: 1px solid ${colors.neutrals.n200};\r\n }\r\n\r\n .table th {\r\n font-weight: 600;\r\n }\r\n\r\n .table td .progress {\r\n height: 3px;\r\n width: 120px;\r\n margin: 0;\r\n }\r\n\r\n .table td,\r\n .table th {\r\n font-size: 0.8125rem;\r\n white-space: nowrap;\r\n }\r\n\r\n .table.align-items-center td,\r\n .table.align-items-center th {\r\n vertical-align: middle;\r\n }\r\n\r\n .table .thead-dark th {\r\n background-color: #1c345d;\r\n color: #4d7bca;\r\n }\r\n\r\n .table-hover tr {\r\n transition: all 0.15s ease;\r\n }\r\n\r\n @media screen and (prefers-reduced-motion: reduce) {\r\n .table-hover tr {\r\n transition: none;\r\n }\r\n }\r\n\r\n .table-flush td,\r\n .table-flush th {\r\n border-left: 0;\r\n border-right: 0;\r\n }\r\n\r\n .table-flush tbody tr:first-of-type td,\r\n .table-flush tbody tr:first-of-type th {\r\n border-top: 0;\r\n }\r\n\r\n .table-flush tbody tr:last-child td,\r\n .table-flush tbody tr:last-child th {\r\n border-bottom: 0;\r\n }\r\n\r\n .card .table {\r\n margin-bottom: 0;\r\n }\r\n\r\n .card .table td,\r\n .card .table th {\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n }\r\n\r\n p {\r\n font-size: 1rem;\r\n font-weight: 400;\r\n line-height: 1.5;\r\n }\r\n\r\n .lead {\r\n font-size: 1.25rem;\r\n font-weight: 300;\r\n line-height: 1.7;\r\n margin-top: 1.5rem;\r\n }\r\n\r\n .lead + .btn-wrapper {\r\n margin-top: 3rem;\r\n }\r\n\r\n .description {\r\n font-size: 0.875rem;\r\n }\r\n\r\n .heading {\r\n letter-spacing: 0.025em;\r\n font-size: 0.95rem;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n }\r\n\r\n .heading-small {\r\n padding-top: 0.25rem;\r\n padding-bottom: 0.25rem;\r\n font-size: 0.75rem;\r\n text-transform: uppercase;\r\n letter-spacing: 0.04em;\r\n }\r\n\r\n .heading-title {\r\n letter-spacing: 0.025em;\r\n font-size: 1.375rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n }\r\n\r\n .heading-section {\r\n letter-spacing: 0.025em;\r\n font-size: 1.375rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n }\r\n\r\n .heading-section img {\r\n display: block;\r\n width: 72px;\r\n height: 72px;\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n .heading-section.text-center img {\r\n margin-left: auto;\r\n margin-right: auto;\r\n }\r\n\r\n .display-1 span,\r\n .display-2 span,\r\n .display-3 span,\r\n .display-4 span {\r\n display: block;\r\n font-weight: 300;\r\n }\r\n\r\n article h4:not(:first-of-type),\r\n article h5:not(:first-of-type) {\r\n margin-top: 3rem;\r\n }\r\n\r\n article h4,\r\n article h5 {\r\n margin-bottom: 1.5rem;\r\n }\r\n\r\n article figure {\r\n margin: 3rem 0;\r\n }\r\n\r\n article h5 + figure {\r\n margin-top: 0;\r\n }\r\n\r\n .datepicker {\r\n border-radius: 0.375rem;\r\n direction: ltr;\r\n }\r\n\r\n .datepicker-inline {\r\n width: 220px;\r\n }\r\n\r\n .datepicker-rtl {\r\n direction: rtl;\r\n }\r\n\r\n .datepicker-rtl.dropdown-menu {\r\n left: auto;\r\n }\r\n\r\n .datepicker-rtl table tr td span {\r\n float: right;\r\n }\r\n\r\n .datepicker-dropdown {\r\n top: 0;\r\n left: 0;\r\n padding: 20px 22px;\r\n box-shadow: 0 50px 100px rgba(50, 50, 93, 0.1),\r\n 0 15px 35px rgba(50, 50, 93, 0.15), 0 5px 15px rgba(0, 0, 0, 0.1);\r\n }\r\n\r\n .datepicker-dropdown.datepicker-orient-left:before {\r\n left: 6px;\r\n }\r\n\r\n .datepicker-dropdown.datepicker-orient-left:after {\r\n left: 7px;\r\n }\r\n\r\n .datepicker-dropdown.datepicker-orient-right:before {\r\n right: 6px;\r\n }\r\n\r\n .datepicker-dropdown.datepicker-orient-right:after {\r\n right: 7px;\r\n }\r\n\r\n .datepicker-dropdown.datepicker-orient-bottom:before {\r\n top: -7px;\r\n }\r\n\r\n .datepicker-dropdown.datepicker-orient-bottom:after {\r\n top: -6px;\r\n }\r\n\r\n .datepicker-dropdown.datepicker-orient-top:before {\r\n bottom: -7px;\r\n border-bottom: 0;\r\n border-top: 7px solid white;\r\n }\r\n\r\n .datepicker-dropdown.datepicker-orient-top:after {\r\n bottom: -6px;\r\n border-bottom: 0;\r\n border-top: 6px solid ${colors.neutrals.min};\r\n }\r\n\r\n .datepicker table {\r\n margin: 0;\r\n -webkit-touch-callout: none;\r\n user-select: none;\r\n }\r\n\r\n .datepicker table tr td {\r\n border-radius: 50%;\r\n }\r\n\r\n .datepicker table tr th {\r\n border-radius: 0.375rem;\r\n font-weight: 500;\r\n }\r\n\r\n .datepicker table tr td,\r\n .datepicker table tr th {\r\n transition: all 0.15s ease;\r\n width: 36px;\r\n height: 36px;\r\n border: none;\r\n text-align: center;\r\n font-size: 0.875rem;\r\n }\r\n\r\n .table-striped .datepicker table tr td,\r\n .table-striped .datepicker table tr th {\r\n background-color: ${colors.transparent};\r\n }\r\n\r\n .datepicker table tr td.old,\r\n .datepicker table tr td.new {\r\n color: #adb5bd;\r\n }\r\n\r\n .datepicker table tr td.day:hover,\r\n .datepicker table tr td.focused {\r\n background: white;\r\n cursor: pointer;\r\n }\r\n\r\n .datepicker table tr td.disabled,\r\n .datepicker table tr td.disabled:hover {\r\n background: none;\r\n color: #dee2e6;\r\n cursor: default;\r\n }\r\n\r\n .datepicker table tr td.highlighted {\r\n border-radius: 0;\r\n }\r\n\r\n .datepicker table tr td.highlighted.focused {\r\n background: ${colors.bootstrap.primary};\r\n }\r\n\r\n .datepicker table tr td.highlighted.disabled,\r\n .datepicker table tr td.highlighted.disabled:active {\r\n background: ${colors.bootstrap.primary};\r\n color: ${colors.neutrals.n400};\r\n }\r\n\r\n .datepicker table tr td.today {\r\n background: white;\r\n }\r\n\r\n .datepicker table tr td.today.focused {\r\n background: white;\r\n }\r\n\r\n .datepicker table tr td.today.disabled,\r\n .datepicker table tr td.today.disabled:active {\r\n background: white;\r\n color: ${colors.neutrals.n600};\r\n }\r\n\r\n .datepicker table tr td.range {\r\n background: ${colors.bootstrap.primary};\r\n color: ${colors.neutrals.min};\r\n border-radius: 0;\r\n }\r\n\r\n .datepicker table tr td.range.focused {\r\n background: #3b53de;\r\n }\r\n\r\n .datepicker table tr td.range.disabled,\r\n .datepicker table tr td.range.disabled:active,\r\n .datepicker table tr td.range.day.disabled:hover {\r\n background: #324cdd;\r\n color: #8a98eb;\r\n }\r\n\r\n .datepicker table tr td.range.highlighted.focused {\r\n background: #cbd3da;\r\n }\r\n\r\n .datepicker table tr td.range.highlighted.disabled,\r\n .datepicker table tr td.range.highlighted.disabled:active {\r\n background: ${colors.neutrals.n200};\r\n color: #dee2e6;\r\n }\r\n\r\n .datepicker table tr td.range.today.disabled,\r\n .datepicker table tr td.range.today.disabled:active {\r\n background: ${colors.bootstrap.primary};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .datepicker table tr td.day.range-start {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n }\r\n\r\n .datepicker table tr td.day.range-end {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n\r\n .datepicker table tr td.day.range-start.range-end {\r\n border-radius: 50%;\r\n }\r\n\r\n .datepicker table tr td.selected,\r\n .datepicker table tr td.selected.highlighted,\r\n .datepicker table tr td.selected:hover,\r\n .datepicker table tr td.selected.highlighted:hover,\r\n .datepicker table tr td.day.range:hover {\r\n background: ${colors.bootstrap.primary};\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .datepicker table tr td.active,\r\n .datepicker table tr td.active.highlighted,\r\n .datepicker table tr td.active:hover,\r\n .datepicker table tr td.active.highlighted:hover {\r\n background: ${colors.bootstrap.primary};\r\n color: ${colors.neutrals.min};\r\n box-shadow: none;\r\n }\r\n\r\n .datepicker table tr td span {\r\n display: block;\r\n width: 23%;\r\n height: 54px;\r\n line-height: 54px;\r\n float: left;\r\n margin: 1%;\r\n cursor: pointer;\r\n border-radius: 4px;\r\n }\r\n\r\n .datepicker table tr td span:hover,\r\n .datepicker table tr td span.focused {\r\n background: ${colors.neutrals.n200};\r\n }\r\n\r\n .datepicker table tr td span.disabled,\r\n .datepicker table tr td span.disabled:hover {\r\n background: none;\r\n color: #dee2e6;\r\n cursor: default;\r\n }\r\n\r\n .datepicker table tr td span.active,\r\n .datepicker table tr td span.active:hover,\r\n .datepicker table tr td span.active.disabled,\r\n .datepicker table tr td span.active.disabled:hover {\r\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\r\n }\r\n\r\n .datepicker table tr td span.old,\r\n .datepicker table tr td span.new {\r\n color: ${colors.neutrals.n600};\r\n }\r\n\r\n .datepicker .datepicker-switch {\r\n width: 145px;\r\n }\r\n\r\n .datepicker .datepicker-switch,\r\n .datepicker .prev,\r\n .datepicker .next,\r\n .datepicker tfoot tr th {\r\n cursor: pointer;\r\n }\r\n\r\n .datepicker .datepicker-switch:hover,\r\n .datepicker .prev:hover,\r\n .datepicker .next:hover,\r\n .datepicker tfoot tr th:hover {\r\n background: ${colors.neutrals.n200};\r\n }\r\n\r\n .datepicker .prev.disabled,\r\n .datepicker .next.disabled {\r\n visibility: hidden;\r\n }\r\n\r\n .datepicker .cw {\r\n font-size: 10px;\r\n width: 12px;\r\n padding: 0 2px 0 5px;\r\n vertical-align: middle;\r\n }\r\n\r\n /*! nouislider - 14.0.1 - 6/21/2019 */\r\n /* Functional styling;\r\n * These styles are required for noUiSlider to function.\r\n * You don't need to change these rules to apply your design.\r\n */\r\n .noUi-target,\r\n .noUi-target * {\r\n -webkit-touch-callout: none;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n -webkit-user-select: none;\r\n -ms-touch-action: none;\r\n touch-action: none;\r\n -ms-user-select: none;\r\n -moz-user-select: none;\r\n user-select: none;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n }\r\n\r\n .noUi-target {\r\n position: relative;\r\n direction: ltr;\r\n }\r\n\r\n .noUi-base,\r\n .noUi-connects {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n z-index: 1;\r\n }\r\n\r\n /* Wrapper for all connect elements.\r\n */\r\n .noUi-connects {\r\n overflow: hidden;\r\n z-index: 0;\r\n }\r\n\r\n .noUi-connect,\r\n .noUi-origin {\r\n will-change: transform;\r\n position: absolute;\r\n z-index: 1;\r\n top: 0;\r\n left: 0;\r\n -ms-transform-origin: 0 0;\r\n -webkit-transform-origin: 0 0;\r\n -webkit-transform-style: preserve-3d;\r\n transform-origin: 0 0;\r\n transform-style: flat;\r\n }\r\n\r\n .noUi-connect {\r\n height: 100%;\r\n width: 100%;\r\n }\r\n\r\n .noUi-origin {\r\n height: 10%;\r\n width: 10%;\r\n }\r\n\r\n /* Offset direction\r\n */\r\n html:not([dir=\"rtl\"]) .noUi-horizontal .noUi-origin {\r\n left: auto;\r\n right: 0;\r\n }\r\n\r\n /* Give origins 0 height/width so they don't interfere with clicking the\r\n * connect elements.\r\n */\r\n .noUi-vertical .noUi-origin {\r\n width: 0;\r\n }\r\n\r\n .noUi-horizontal .noUi-origin {\r\n height: 0;\r\n }\r\n\r\n .noUi-handle {\r\n -webkit-backface-visibility: hidden;\r\n backface-visibility: hidden;\r\n position: absolute;\r\n }\r\n\r\n .noUi-touch-area {\r\n height: 100%;\r\n width: 100%;\r\n }\r\n\r\n .noUi-state-tap .noUi-connect,\r\n .noUi-state-tap .noUi-origin {\r\n -webkit-transition: transform 0.3s;\r\n transition: transform 0.3s;\r\n }\r\n\r\n .noUi-state-drag * {\r\n cursor: inherit !important;\r\n }\r\n\r\n /* Slider size and handle placement;\r\n */\r\n .noUi-horizontal {\r\n height: 18px;\r\n }\r\n\r\n .noUi-horizontal .noUi-handle {\r\n width: 34px;\r\n height: 28px;\r\n left: -17px;\r\n top: -6px;\r\n }\r\n\r\n .noUi-vertical {\r\n width: 18px;\r\n }\r\n\r\n .noUi-vertical .noUi-handle {\r\n width: 28px;\r\n height: 34px;\r\n left: -6px;\r\n top: -17px;\r\n }\r\n\r\n html:not([dir=\"rtl\"]) .noUi-horizontal .noUi-handle {\r\n right: -17px;\r\n left: auto;\r\n }\r\n\r\n /* Styling;\r\n * Giving the connect element a border radius causes issues with using transform: scale\r\n */\r\n .noUi-target {\r\n background: #fafafa;\r\n border-radius: 4px;\r\n border: 1px solid #d3d3d3;\r\n box-shadow: inset 0 1px 1px #f0f0f0, 0 3px 6px -5px #bbb;\r\n }\r\n\r\n .noUi-connects {\r\n border-radius: 3px;\r\n }\r\n\r\n .noUi-connect {\r\n background: #3fb8af;\r\n }\r\n\r\n /* Handles and cursors;\r\n */\r\n .noUi-draggable {\r\n cursor: ew-resize;\r\n }\r\n\r\n .noUi-vertical .noUi-draggable {\r\n cursor: ns-resize;\r\n }\r\n\r\n .noUi-handle {\r\n border: 1px solid #d9d9d9;\r\n border-radius: 3px;\r\n background: ${colors.neutrals.min};\r\n cursor: default;\r\n box-shadow: inset 0 0 1px ${colors.neutrals.min}, inset 0 1px 7px #ebebeb,\r\n 0 3px 6px -3px #bbb;\r\n }\r\n\r\n .noUi-active {\r\n box-shadow: inset 0 0 1px ${colors.neutrals.min}, inset 0 1px 7px #ddd,\r\n 0 3px 6px -3px #bbb;\r\n }\r\n\r\n /* Handle stripes;\r\n */\r\n .noUi-handle:before,\r\n .noUi-handle:after {\r\n content: \"\";\r\n display: block;\r\n position: absolute;\r\n height: 14px;\r\n width: 1px;\r\n background: #e8e7e6;\r\n left: 14px;\r\n top: 6px;\r\n }\r\n\r\n .noUi-handle:after {\r\n left: 17px;\r\n }\r\n\r\n .noUi-vertical .noUi-handle:before,\r\n .noUi-vertical .noUi-handle:after {\r\n width: 14px;\r\n height: 1px;\r\n left: 6px;\r\n top: 14px;\r\n }\r\n\r\n .noUi-vertical .noUi-handle:after {\r\n top: 17px;\r\n }\r\n\r\n /* Disabled state;\r\n */\r\n [disabled] .noUi-connect {\r\n background: #b8b8b8;\r\n }\r\n\r\n [disabled].noUi-target,\r\n [disabled].noUi-handle,\r\n [disabled] .noUi-handle {\r\n cursor: not-allowed;\r\n }\r\n\r\n /* Base;\r\n *\r\n */\r\n .noUi-pips,\r\n .noUi-pips * {\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n }\r\n\r\n .noUi-pips {\r\n position: absolute;\r\n color: #999;\r\n }\r\n\r\n /* Values;\r\n *\r\n */\r\n .noUi-value {\r\n position: absolute;\r\n white-space: nowrap;\r\n text-align: center;\r\n }\r\n\r\n .noUi-value-sub {\r\n color: #ccc;\r\n font-size: 10px;\r\n }\r\n\r\n /* Markings;\r\n *\r\n */\r\n .noUi-marker {\r\n position: absolute;\r\n background: #ccc;\r\n }\r\n\r\n .noUi-marker-sub {\r\n background: #aaa;\r\n }\r\n\r\n .noUi-marker-large {\r\n background: #aaa;\r\n }\r\n\r\n /* Horizontal layout;\r\n *\r\n */\r\n .noUi-pips-horizontal {\r\n padding: 10px 0;\r\n height: 80px;\r\n top: 100%;\r\n left: 0;\r\n width: 100%;\r\n }\r\n\r\n .noUi-value-horizontal {\r\n -webkit-transform: translate(-50%, 50%);\r\n transform: translate(-50%, 50%);\r\n }\r\n\r\n .noUi-rtl .noUi-value-horizontal {\r\n -webkit-transform: translate(50%, 50%);\r\n transform: translate(50%, 50%);\r\n }\r\n\r\n .noUi-marker-horizontal.noUi-marker {\r\n margin-left: -1px;\r\n width: 2px;\r\n height: 5px;\r\n }\r\n\r\n .noUi-marker-horizontal.noUi-marker-sub {\r\n height: 10px;\r\n }\r\n\r\n .noUi-marker-horizontal.noUi-marker-large {\r\n height: 15px;\r\n }\r\n\r\n /* Vertical layout;\r\n *\r\n */\r\n .noUi-pips-vertical {\r\n padding: 0 10px;\r\n height: 100%;\r\n top: 0;\r\n left: 100%;\r\n }\r\n\r\n .noUi-value-vertical {\r\n -webkit-transform: translate(0, -50%);\r\n transform: translate(0, -50%);\r\n padding-left: 25px;\r\n }\r\n\r\n .noUi-rtl .noUi-value-vertical {\r\n -webkit-transform: translate(0, 50%);\r\n transform: translate(0, 50%);\r\n }\r\n\r\n .noUi-marker-vertical.noUi-marker {\r\n width: 5px;\r\n height: 2px;\r\n margin-top: -1px;\r\n }\r\n\r\n .noUi-marker-vertical.noUi-marker-sub {\r\n width: 10px;\r\n }\r\n\r\n .noUi-marker-vertical.noUi-marker-large {\r\n width: 15px;\r\n }\r\n\r\n .noUi-tooltip {\r\n display: block;\r\n position: absolute;\r\n border: 1px solid #d9d9d9;\r\n border-radius: 3px;\r\n background: ${colors.neutrals.min};\r\n color: #000;\r\n padding: 5px;\r\n text-align: center;\r\n white-space: nowrap;\r\n }\r\n\r\n .noUi-horizontal .noUi-tooltip {\r\n -webkit-transform: translate(-50%, 0);\r\n transform: translate(-50%, 0);\r\n left: 50%;\r\n bottom: 120%;\r\n }\r\n\r\n .noUi-vertical .noUi-tooltip {\r\n -webkit-transform: translate(0, -50%);\r\n transform: translate(0, -50%);\r\n top: 50%;\r\n right: 120%;\r\n }\r\n\r\n .noUi-target {\r\n background: #eceeef;\r\n border-radius: 5px;\r\n border: 0;\r\n box-shadow: inset 0 1px 2px rgba(90, 97, 105, 0.1);\r\n margin: 15px 0;\r\n cursor: pointer;\r\n }\r\n\r\n .noUi-horizontal {\r\n height: 5px;\r\n }\r\n\r\n html:not([dir=\"rtl\"]) .noUi-horizontal .noUi-handle {\r\n right: -10px;\r\n }\r\n\r\n .noUi-vertical {\r\n width: 5px;\r\n }\r\n\r\n .noUi-connect {\r\n background: ${colors.bootstrap.primary};\r\n box-shadow: none;\r\n }\r\n\r\n .noUi-handle:after,\r\n .noUi-handle:before {\r\n content: none;\r\n }\r\n\r\n .noUi-handle:focus {\r\n outline: none;\r\n }\r\n\r\n .noUi-horizontal .noUi-handle,\r\n .noUi-vertical .noUi-handle {\r\n top: -5px;\r\n width: 15px;\r\n height: 15px;\r\n border-radius: 100%;\r\n box-shadow: none;\r\n cursor: pointer;\r\n background-color: ${colors.bootstrap.primary};\r\n border: 0;\r\n transition: box-shadow 0.15s, transform 0.15s;\r\n }\r\n\r\n .noUi-horizontal .noUi-handle.noUi-active,\r\n .noUi-vertical .noUi-handle.noUi-active {\r\n box-shadow: 0px 0px 0px 2px ${colors.bootstrap.primary};\r\n }\r\n\r\n .input-slider--cyan .noUi-connect {\r\n background: ${colors.hues.cyan};\r\n }\r\n\r\n /* Disabled state */\r\n [disabled] .noUi-connect,\r\n [disabled].noUi-connect {\r\n background: #b2b2b2;\r\n }\r\n\r\n [disabled] .noUi-handle,\r\n [disabled].noUi-origin {\r\n cursor: not-allowed;\r\n }\r\n\r\n /* Range slider value labels */\r\n .range-slider-value {\r\n font-size: 0.75rem;\r\n font-weight: 500;\r\n background-color: rgba(33, 37, 41, 0.7);\r\n color: ${colors.neutrals.min};\r\n border-radius: 10px;\r\n padding: 0.4em 0.8em 0.3em 0.85em;\r\n }\r\n\r\n .range-slider-wrapper .upper-info {\r\n font-weight: 400;\r\n margin-bottom: 5px;\r\n }\r\n\r\n .input-slider-value-output {\r\n background: #333;\r\n color: ${colors.neutrals.min};\r\n padding: 4px 8px;\r\n position: relative;\r\n top: 12px;\r\n font-size: 11px;\r\n border-radius: 2px;\r\n }\r\n\r\n .input-slider-value-output:after {\r\n bottom: 100%;\r\n left: 10px;\r\n border: solid ${colors.transparent};\r\n content: \" \";\r\n height: 0;\r\n width: 0;\r\n position: absolute;\r\n pointer-events: none;\r\n border-color: rgba(136, 183, 213, 0);\r\n border-bottom-color: #333;\r\n border-width: 4px;\r\n margin-left: -4px;\r\n }\r\n\r\n .input-slider-value-output.left:after {\r\n left: 10px;\r\n right: auto;\r\n }\r\n\r\n .input-slider-value-output.right:after {\r\n right: 10px;\r\n left: auto;\r\n }\r\n\r\n .scrollbar-inner {\r\n height: 100%;\r\n }\r\n\r\n .scrollbar-inner:not(:hover) .scroll-element {\r\n opacity: 0;\r\n }\r\n\r\n .scrollbar-inner .scroll-element {\r\n transition: opacity 300ms;\r\n margin-right: 2px;\r\n }\r\n\r\n .scrollbar-inner .scroll-element .scroll-bar,\r\n .scrollbar-inner .scroll-element .scroll-element_track {\r\n transition: background-color 300ms;\r\n }\r\n\r\n .scrollbar-inner .scroll-element .scroll-element_track {\r\n background-color: ${colors.transparent};\r\n }\r\n\r\n .scrollbar-inner .scroll-element.scroll-y {\r\n width: 3px;\r\n right: 0;\r\n }\r\n\r\n .scrollbar-inner .scroll-element.scroll-x {\r\n height: 3px;\r\n bottom: 0;\r\n }\r\n\r\n .github-corner {\r\n position: fixed;\r\n right: 0;\r\n z-index: 1080;\r\n }\r\n\r\n .github-corner:hover .octo-arm {\r\n animation: octocat-wave 560ms ease-in-out;\r\n }\r\n\r\n .github-corner svg {\r\n fill: ${colors.neutrals.min};\r\n color: ${colors.bootstrap.primary};\r\n }\r\n\r\n @keyframes octocat-wave {\r\n 0%,\r\n 100% {\r\n transform: rotate(0);\r\n }\r\n\r\n 20%,\r\n 60% {\r\n transform: rotate(-25deg);\r\n }\r\n\r\n 40%,\r\n 80% {\r\n transform: rotate(10deg);\r\n }\r\n }\r\n\r\n .btn-clipboard {\r\n position: absolute;\r\n top: 1rem;\r\n right: 1rem;\r\n z-index: 10;\r\n display: block;\r\n padding: 0.25rem 0.5rem;\r\n font-size: 75%;\r\n cursor: pointer;\r\n background-color: ${colors.transparent};\r\n border: 0;\r\n border-radius: 0.25rem;\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.bootstrap.primary};\r\n }\r\n\r\n .btn-clipboard:hover {\r\n color: ${colors.neutrals.min};\r\n background-color: #324cdd;\r\n }\r\n\r\n .modal {\r\n z-index: 1072;\r\n }\r\n\r\n .modal .tooltip,\r\n .modal .popover {\r\n z-index: 1073;\r\n }\r\n\r\n .modal-backdrop {\r\n z-index: 1071;\r\n }\r\n\r\n .tooltip-demo a {\r\n white-space: nowrap;\r\n }\r\n\r\n .scrollspy-example {\r\n position: relative;\r\n height: 200px;\r\n margin-top: 0.5rem;\r\n overflow: auto;\r\n }\r\n\r\n .scrollspy-example-2 {\r\n position: relative;\r\n height: 350px;\r\n overflow: auto;\r\n }\r\n\r\n .highlight {\r\n padding: 0;\r\n margin-top: 1rem;\r\n -ms-overflow-style: -ms-autohiding-scrollbar;\r\n }\r\n\r\n @media (min-width: 576px) {\r\n .highlight {\r\n padding: 0;\r\n }\r\n }\r\n\r\n .icon-examples {\r\n margin-top: 1rem;\r\n }\r\n\r\n code[class*=\"language-\"],\r\n pre[class*=\"language-\"] {\r\n font-family: Consolas, Menlo, Monaco, \"Andale Mono WT\", \"Andale Mono\",\r\n \"Lucida Console\", \"Lucida Sans Typewriter\", \"DejaVu Sans Mono\",\r\n \"Bitstream Vera Sans Mono\", \"Liberation Mono\", \"Nimbus Mono L\",\r\n \"Courier New\", Courier, monospace;\r\n font-size: 14px;\r\n line-height: 1.375;\r\n direction: ltr;\r\n text-align: left;\r\n white-space: pre;\r\n word-spacing: normal;\r\n word-break: normal;\r\n -moz-tab-size: 4;\r\n -o-tab-size: 4;\r\n tab-size: 4;\r\n -webkit-hyphens: none;\r\n -moz-hyphens: none;\r\n -ms-hyphens: none;\r\n hyphens: none;\r\n background: #f5f7ff;\r\n color: #5e6687;\r\n border-radius: 0.25rem;\r\n }\r\n\r\n pre[class*=\"language-\"]::-moz-selection,\r\n pre[class*=\"language-\"] ::-moz-selection,\r\n code[class*=\"language-\"]::-moz-selection,\r\n code[class*=\"language-\"] ::-moz-selection {\r\n text-shadow: none;\r\n background: #dfe2f1;\r\n }\r\n\r\n pre[class*=\"language-\"]::selection,\r\n pre[class*=\"language-\"] ::selection,\r\n code[class*=\"language-\"]::selection,\r\n code[class*=\"language-\"] ::selection {\r\n text-shadow: none;\r\n background: #dfe2f1;\r\n }\r\n\r\n /* Code blocks */\r\n pre[class*=\"language-\"] {\r\n padding: 1.25rem;\r\n margin: 0;\r\n overflow: auto;\r\n }\r\n\r\n /* Inline code */\r\n :not(pre) > code[class*=\"language-\"] {\r\n padding: 0.1em;\r\n border-radius: 0.3em;\r\n }\r\n\r\n .token.comment,\r\n .token.prolog,\r\n .token.doctype,\r\n .token.cdata {\r\n color: #898ea4;\r\n }\r\n\r\n .token.punctuation {\r\n color: #5e6687;\r\n }\r\n\r\n .token.namespace {\r\n opacity: 0.7;\r\n }\r\n\r\n .token.operator,\r\n .token.boolean,\r\n .token.number {\r\n color: #c76b29;\r\n }\r\n\r\n .token.property {\r\n color: #c08b30;\r\n }\r\n\r\n .token.tag {\r\n color: #3d8fd1;\r\n }\r\n\r\n .token.string {\r\n color: #22a2c9;\r\n }\r\n\r\n .token.selector {\r\n color: #6679cc;\r\n }\r\n\r\n .token.attr-name {\r\n color: #c76b29;\r\n }\r\n\r\n .token.entity,\r\n .token.url,\r\n .language-css .token.string,\r\n .style .token.string {\r\n color: #22a2c9;\r\n }\r\n\r\n .token.attr-value,\r\n .token.keyword,\r\n .token.control,\r\n .token.directive,\r\n .token.unit {\r\n color: #ac9739;\r\n }\r\n\r\n .token.statement,\r\n .token.regex,\r\n .token.atrule {\r\n color: #22a2c9;\r\n }\r\n\r\n .token.placeholder,\r\n .token.variable {\r\n color: #3d8fd1;\r\n }\r\n\r\n .token.deleted {\r\n text-decoration: line-through;\r\n }\r\n\r\n .token.inserted {\r\n border-bottom: 1px dotted #202746;\r\n text-decoration: none;\r\n }\r\n\r\n .token.italic {\r\n font-style: italic;\r\n }\r\n\r\n .token.important,\r\n .token.bold {\r\n font-weight: bold;\r\n }\r\n\r\n .token.important {\r\n color: #c94922;\r\n }\r\n\r\n .token.entity {\r\n cursor: help;\r\n }\r\n\r\n pre > code.highlight {\r\n outline: 0.4em solid #c94922;\r\n outline-offset: 0.4em;\r\n }\r\n\r\n /* overrides color-values for the Line Numbers plugin\r\n * http://prismjs.com/plugins/line-numbers/\r\n */\r\n .line-numbers .line-numbers-rows {\r\n border-right-color: #dfe2f1;\r\n }\r\n\r\n .line-numbers-rows > span:before {\r\n color: #979db4;\r\n }\r\n\r\n /* overrides color-values for the Line Highlight plugin\r\n * http://prismjs.com/plugins/line-highlight/\r\n */\r\n .line-highlight {\r\n background: rgba(107, 115, 148, 0.2);\r\n background: -webkit-linear-gradient(\r\n left,\r\n rgba(107, 115, 148, 0.2) 70%,\r\n rgba(107, 115, 148, 0)\r\n );\r\n background: linear-gradient(\r\n to right,\r\n rgba(107, 115, 148, 0.2) 70%,\r\n rgba(107, 115, 148, 0)\r\n );\r\n }\r\n\r\n .docs {\r\n background: ${colors.neutrals.min};\r\n }\r\n\r\n .docs h6 {\r\n font-size: 1rem;\r\n font-weight: 600;\r\n }\r\n\r\n .color-swatch {\r\n background-color: ${colors.neutrals.min};\r\n color: ${colors.neutrals.max};\r\n }\r\n\r\n .color-swatch-header {\r\n position: relative;\r\n height: 0;\r\n padding-bottom: 30px;\r\n border: 1px solid ${colors.transparent};\r\n }\r\n\r\n .color-swatch-body {\r\n padding: 10px;\r\n }\r\n\r\n .table-colors {\r\n font-weight: 600;\r\n font-size: 16px;\r\n width: 100%;\r\n }\r\n\r\n .table-colors td,\r\n .table-colors:first-of-type td,\r\n .table-colors td:first-of-type,\r\n .table-colors:first-of-type td:first-of-type,\r\n .table-colors td:last-child,\r\n .table-colors:first-of-type td:last-child {\r\n background: rgba(255, 255, 255, 0.9);\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\r\n padding: 10px;\r\n }\r\n\r\n .table-colors tr:last-child td,\r\n .table-colors:first-of-type tr:last-child td {\r\n border-bottom: none;\r\n }\r\n\r\n .table-colors td:nth-of-type(1),\r\n .table-colors:first-of-type td:nth-of-type(1) {\r\n line-height: 40px;\r\n }\r\n\r\n .table-colors .swatch,\r\n .table-colors:first-of-type .swatch {\r\n float: left;\r\n height: 40px;\r\n width: 40px;\r\n margin-right: 20px;\r\n display: inline-block;\r\n border-radius: 4px;\r\n border: 1px solid ${colors.transparent};\r\n }\r\n\r\n .table-colors .swatch.is-light,\r\n .table-colors:first-of-type .swatch.is-light {\r\n border-color: #c1c7d0;\r\n }\r\n\r\n .table-colors .lozenge,\r\n .table-colors:first-of-type .lozenge {\r\n float: left;\r\n margin: 5px 10px 0 0;\r\n font-size: 10px;\r\n display: inline-block;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n background: #97a0af;\r\n color: #042a53;\r\n padding: 2px 4px;\r\n line-height: 10px;\r\n border-radius: 4px;\r\n letter-spacing: 0.05em;\r\n }\r\n\r\n .section-nav {\r\n padding-left: 0;\r\n border-left: 1px solid #eee;\r\n }\r\n\r\n .section-nav ul {\r\n padding-left: 1rem;\r\n }\r\n\r\n .section-nav ul ul {\r\n display: none;\r\n }\r\n\r\n .toc-entry {\r\n display: block;\r\n font-size: 1rem;\r\n }\r\n\r\n .toc-entry a {\r\n display: block;\r\n padding: 0.125rem 1.5rem;\r\n color: #99979c;\r\n font-size: 90%;\r\n }\r\n\r\n .toc-entry a:hover {\r\n color: ${colors.bootstrap.primary};\r\n text-decoration: none;\r\n }\r\n\r\n /*!\r\n * https://github.com/YouCanBookMe/react-datetime\r\n */\r\n .rdt {\r\n position: relative;\r\n }\r\n\r\n .rdt .rdtPicker {\r\n -webkit-transition: all 150ms linear;\r\n -moz-transition: all 150ms linear;\r\n -o-transition: all 150ms linear;\r\n -ms-transition: all 150ms linear;\r\n transition: all 150ms linear;\r\n margin-top: -20px;\r\n visibility: hidden;\r\n display: block;\r\n opacity: 0;\r\n }\r\n\r\n .rdt.rdtOpen .rdtPicker {\r\n opacity: 1;\r\n visibility: visible;\r\n margin-top: 0;\r\n }\r\n\r\n .rdtPicker {\r\n display: none;\r\n position: absolute;\r\n padding: 20px;\r\n margin-top: 1px;\r\n z-index: 99999 !important;\r\n background: ${colors.neutrals.min};\r\n border-radius: 0.375rem;\r\n box-shadow: 0px 10px 50px 0px rgba(0, 0, 0, 0.2);\r\n -webkit-background-clip: padding-box;\r\n background-clip: padding-box;\r\n min-width: 160px;\r\n }\r\n\r\n .rdtPicker:before {\r\n display: inline-block;\r\n position: absolute;\r\n width: 0;\r\n height: 0;\r\n vertical-align: middle;\r\n content: \"\";\r\n top: -5px;\r\n left: 10px;\r\n right: auto;\r\n color: ${colors.neutrals.min}fff;\r\n border-bottom: 0.4em solid;\r\n border-right: 0.4em solid ${colors.transparent};\r\n border-left: 0.4em solid ${colors.transparent};\r\n }\r\n\r\n .rdtPicker:after {\r\n border-bottom: 0.4em solid ${colors.neutrals.min}fff;\r\n border-right: 0.4em solid ${colors.transparent};\r\n border-left: 0.4em solid ${colors.transparent};\r\n content: \"\";\r\n display: inline-block;\r\n position: absolute;\r\n top: -5px;\r\n left: 10px;\r\n }\r\n\r\n .rdtPicker {\r\n display: block;\r\n top: 40px;\r\n }\r\n\r\n .rdtStatic .rdtPicker {\r\n box-shadow: none;\r\n position: static;\r\n }\r\n\r\n .rdtPicker .rdtTimeToggle {\r\n text-align: center;\r\n padding: 10px;\r\n border-radius: 4px;\r\n visibility: hidden;\r\n position: relative;\r\n }\r\n\r\n .rdtPicker .rdtTimeToggle:before {\r\n visibility: visible;\r\n width: 100%;\r\n height: 100%;\r\n border-radius: 3px;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font: normal normal normal 1em/1 \"Nucleo\";\r\n font-size: 18px;\r\n content: \"\\\\EA5E\";\r\n }\r\n\r\n .rdtPicker table {\r\n width: 100%;\r\n margin: 0;\r\n border-color: ${colors.neutrals.min} !important;\r\n }\r\n\r\n .rdtPicker td,\r\n .rdtPicker th {\r\n text-align: center;\r\n padding: 1px;\r\n }\r\n\r\n .rdtPicker td {\r\n cursor: pointer;\r\n }\r\n\r\n .rdtDay {\r\n font-size: 0.875rem;\r\n width: 36px;\r\n height: 36px;\r\n transition: all 0.15s ease;\r\n text-align: center;\r\n border: none;\r\n border-radius: 50%;\r\n }\r\n\r\n .rdtDay.rdtToday.rdtActive,\r\n .rdtDay.rdtActive,\r\n .rdtDay.rdtActive:hover,\r\n .rdtDay.start-date,\r\n .rdtDay.end-date,\r\n .rdtDay.middle-date,\r\n .rdtDay.start-date:hover,\r\n .rdtDay.end-date:hover,\r\n .rdtDay.middle-date:hover {\r\n background-color: ${colors.bootstrap.primary} !important;\r\n color: ${colors.neutrals.min} !important;\r\n }\r\n\r\n .rdtDay.start-date {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n }\r\n\r\n .rdtDay.middle-date {\r\n border-radius: 0;\r\n }\r\n\r\n .rdtDay.end-date {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n\r\n .rdtDays tr .dow {\r\n text-align: center;\r\n font-size: 12px;\r\n font-weight: inherit;\r\n padding-bottom: 5px;\r\n padding-top: 10px;\r\n font-weight: 300;\r\n font-size: 0.875rem;\r\n width: 20px;\r\n height: 20px;\r\n }\r\n\r\n .rdtDays tr .rdtDay {\r\n color: ${colors.neutrals.n700};\r\n font-size: 0.875rem;\r\n }\r\n\r\n .rdtDays tr .rdtDay.rdtOld,\r\n .rdtDays tr .rdtDay.rdtNew {\r\n color: #adb5bd;\r\n font-weight: 300;\r\n }\r\n\r\n .rdtPicker td.rdtDay:hover,\r\n .rdtPicker td.rdtHour:hover,\r\n .rdtPicker td.rdtMinute:hover,\r\n .rdtPicker td.rdtSecond:hover,\r\n .rdtPicker .rdtTimeToggle:hover,\r\n .rdtPicker .rdtTimeToggle:hover:before {\r\n background: #eeeeee;\r\n cursor: pointer;\r\n }\r\n\r\n .rdtPicker td.rdtToday {\r\n position: relative;\r\n }\r\n\r\n .rdtPicker td.rdtActive.rdtToday:before {\r\n border-bottom-color: ${colors.neutrals.min};\r\n }\r\n\r\n .rdtPicker td.rdtDisabled,\r\n .rdtPicker td.rdtDisabled:hover {\r\n background: none;\r\n color: #999999;\r\n cursor: not-allowed;\r\n }\r\n\r\n .rdtPicker td span.rdtOld {\r\n color: #999999;\r\n }\r\n\r\n .rdtPicker td span.rdtDisabled,\r\n .rdtPicker td span.rdtDisabled:hover {\r\n background: none;\r\n color: #999999;\r\n cursor: not-allowed;\r\n }\r\n\r\n .rdtPicker tr .dow {\r\n width: 14.2857%;\r\n border-bottom: none;\r\n font-size: 0.875rem;\r\n width: 36px;\r\n height: 36px;\r\n transition: all 0.15s ease;\r\n text-align: center;\r\n border: none;\r\n font-weight: 500;\r\n border-radius: 0.375rem;\r\n }\r\n\r\n .rdtPicker th.rdtSwitch {\r\n font-weight: 500;\r\n border-radius: 0.375rem;\r\n font-size: 0.875rem;\r\n width: 145px;\r\n height: 36px;\r\n transition: all 0.15s ease;\r\n text-align: center;\r\n border: none;\r\n }\r\n\r\n .rdtPicker th.rdtNext,\r\n .rdtPicker th.rdtPrev {\r\n font-size: 0.875rem;\r\n width: 36px;\r\n height: 36px;\r\n transition: all 0.15s ease;\r\n text-align: center;\r\n border: none;\r\n border-radius: 0.375rem;\r\n cursor: pointer;\r\n }\r\n\r\n .rdtPicker .dow,\r\n .rdtPicker th.rdtSwitch,\r\n .rdtPicker th.rdtNext,\r\n .rdtPicker th.rdtPrev,\r\n .rdtPicker .rdtTimeToggle {\r\n color: ${colors.neutrals.n700};\r\n }\r\n\r\n .rdtPrev span,\r\n .rdtNext span {\r\n display: block;\r\n -webkit-touch-callout: none;\r\n /* iOS Safari */\r\n -webkit-user-select: none;\r\n /* Chrome/Safari/Opera */\r\n -khtml-user-select: none;\r\n /* Konqueror */\r\n -moz-user-select: none;\r\n /* Firefox */\r\n -ms-user-select: none;\r\n /* Internet Explorer/Edge */\r\n user-select: none;\r\n }\r\n\r\n .rdtPicker th.rdtDisabled,\r\n .rdtPicker th.rdtDisabled:hover {\r\n background: none;\r\n color: #999999;\r\n cursor: not-allowed;\r\n }\r\n\r\n .rdtPicker thead tr:first-of-type th {\r\n cursor: pointer;\r\n }\r\n\r\n .rdtPicker thead tr:first-of-type th:hover {\r\n background: #eeeeee;\r\n }\r\n\r\n .rdtPicker button {\r\n border: none;\r\n background: none;\r\n cursor: pointer;\r\n }\r\n\r\n .rdtPicker button:hover {\r\n background-color: #eee;\r\n }\r\n\r\n .rdtPicker thead button {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n td.rdtMonth,\r\n td.rdtYear {\r\n height: 50px;\r\n width: 25%;\r\n cursor: pointer;\r\n }\r\n\r\n td.rdtMonth:hover,\r\n td.rdtYear:hover {\r\n background: #eee;\r\n }\r\n\r\n .rdtCounters {\r\n display: inline-block;\r\n }\r\n\r\n .rdtCounters > div {\r\n float: left;\r\n width: 40px;\r\n font-weight: inherit;\r\n margin: 3px;\r\n border-radius: 50%;\r\n }\r\n\r\n .rdtCounters .rdtCounterSeparator {\r\n width: 0;\r\n border: 1px solid ${colors.transparent};\r\n }\r\n\r\n .rdtCounter {\r\n height: 100px;\r\n }\r\n\r\n .rdtCounter {\r\n width: 40px;\r\n }\r\n\r\n .rdtCounter .rdtCount {\r\n padding: 7px;\r\n height: 40px;\r\n border: 1px solid ${colors.transparent};\r\n }\r\n\r\n .rdtCounters .rdtCounter:last-child .rdtCount {\r\n color: ${colors.bootstrap.info};\r\n border-radius: 50%;\r\n border: 1px solid ${colors.bootstrap.info};\r\n }\r\n\r\n .rdtCounterSeparator {\r\n padding: 7px;\r\n line-height: 100px;\r\n }\r\n\r\n .rdtCounter .rdtBtn {\r\n line-height: 40px;\r\n cursor: pointer;\r\n display: block;\r\n border-radius: 50%;\r\n color: #adb5bd;\r\n -webkit-transition: all 60ms ease-in;\r\n -moz-transition: all 60ms ease-in;\r\n -o-transition: all 60ms ease-in;\r\n -ms-transition: all 60ms ease-in;\r\n transition: all 60ms ease-in;\r\n -webkit-touch-callout: none;\r\n /* iOS Safari */\r\n -webkit-user-select: none;\r\n /* Chrome/Safari/Opera */\r\n -khtml-user-select: none;\r\n /* Konqueror */\r\n -moz-user-select: none;\r\n /* Firefox */\r\n -ms-user-select: none;\r\n /* Internet Explorer/Edge */\r\n user-select: none;\r\n }\r\n\r\n .rdtCounter .rdtBtn:hover {\r\n background: #eee;\r\n color: #797979;\r\n }\r\n\r\n .rdtCounter .rdtCount {\r\n font-size: inherit;\r\n line-height: 25px;\r\n }\r\n\r\n .rdtMilli {\r\n vertical-align: middle;\r\n padding-left: 8px;\r\n width: 48px;\r\n }\r\n\r\n .rdtMilli input {\r\n width: 100%;\r\n font-size: inherit;\r\n margin-top: 37px;\r\n }\r\n\r\n .rdtMonths,\r\n .rdtYears {\r\n padding-bottom: 10px;\r\n }\r\n\r\n .rdtMonths .rdtMonth,\r\n .rdtMonths .rdtYear,\r\n .rdtYears .rdtMonth,\r\n .rdtYears .rdtYear {\r\n display: inline-block;\r\n width: 56px;\r\n height: 56px;\r\n line-height: 56px;\r\n margin: 3px 3px;\r\n cursor: pointer;\r\n border-radius: 50%;\r\n text-align: center;\r\n }\r\n\r\n .rdtMonths .rdtMonth.rdtActive,\r\n .rdtMonths .rdtMonth.start-date,\r\n .rdtMonths .rdtMonth.end-date,\r\n .rdtMonths .rdtMonth.middle-date,\r\n .rdtMonths .rdtYear.rdtActive,\r\n .rdtMonths .rdtYear.start-date,\r\n .rdtMonths .rdtYear.end-date,\r\n .rdtMonths .rdtYear.middle-date,\r\n .rdtYears .rdtMonth.rdtActive,\r\n .rdtYears .rdtMonth.start-date,\r\n .rdtYears .rdtMonth.end-date,\r\n .rdtYears .rdtMonth.middle-date,\r\n .rdtYears .rdtYear.rdtActive,\r\n .rdtYears .rdtYear.start-date,\r\n .rdtYears .rdtYear.end-date,\r\n .rdtYears .rdtYear.middle-date {\r\n background-color: ${colors.bootstrap.info} !important;\r\n color: ${colors.neutrals.min};\r\n }\r\n\r\n .input-group .input-group-prepend + .rdt .form-control {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n\r\n .input-group .input-group-prepend + .rdt .form-control {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n\r\n .input-group > .rdt:not(:last-child) .form-control {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n }\r\n\r\n .form-group .rdt {\r\n width: 1%;\r\n margin-bottom: 0;\r\n flex: 1 1 auto;\r\n }\r\n\r\n .btn .btn-inner--icon {\r\n margin-right: 4px;\r\n }\r\n\r\n .btn + .btn {\r\n margin-left: 4px;\r\n }\r\n\r\n button:focus,\r\n :focus {\r\n outline: none;\r\n }\r\n\r\n @keyframes show-navbar-dropdown {\r\n 0% {\r\n opacity: 0;\r\n transition: visibility 0.25s, opacity 0.25s;\r\n }\r\n\r\n 100% {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n .navbar .collapsing .navbar-toggler {\r\n pointer-events: none;\r\n }\r\n\r\n .navbar .nav-item .nav-link-icon.nav-link i {\r\n margin-right: 4px;\r\n }\r\n\r\n .table .avatar-group .avatar {\r\n margin-right: 4px;\r\n }\r\n\r\n .table .badge i {\r\n margin-right: 10px;\r\n }\r\n `;\r\n return argonStyles;\r\n};\r\n/**\r\n * Brings in the Dashboard style, which is based on the open source version of Argon Dashboard from Creative Tim\r\n * https://www.creative-tim.com/product/argon-dashboard\r\n * */\r\nclass SbDashboardStyles extends react_2.Component {\r\n constructor(props) {\r\n super(props);\r\n if (!props.disableRepeatWarning &&\r\n SbDashboardStyles.instance !== undefined) {\r\n console.warn(\"More than one instance of SbDashboardStyles detected; for performance reasons, it's best to include only one instance\");\r\n }\r\n SbDashboardStyles.instance = this;\r\n }\r\n render() {\r\n if (!this.props.disableRepeatWarning && SbDashboardStyles.hasRendered) {\r\n console.warn(\"More than one render of SbDashboardStyles detected; for performance reasons, it's best to place this at the highest level of the DOM such that it is never re-rendered\");\r\n }\r\n SbDashboardStyles.hasRendered = true;\r\n // If this is the live instance, render\r\n if (this === SbDashboardStyles.instance) {\r\n const styles = getStyles();\r\n return (0, react_1.jsx)(react_1.Global, { styles: styles });\r\n }\r\n else\r\n return (0, react_1.jsx)(react_2.default.Fragment, null);\r\n }\r\n}\r\nexports.SbDashboardStyles = SbDashboardStyles;\r\nSbDashboardStyles.hasRendered = false;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SbStyles = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = __importStar(require(\"react\"));\r\nconst GlobalTheme_1 = require(\"./GlobalTheme\");\r\nconst getStyles = () => {\r\n const colors = GlobalTheme_1.GlobalTheme.current.colors;\r\n const baseStyles = (0, react_1.css) `\r\n /* HTML Tags */\r\n\r\ncode {\r\n color: #e01a76;\r\n}\r\n\r\n.sb-record-btn, .sb-play-btn {\r\n width: 75px\r\n}\r\n\r\n.sb-delete-btn .btn-inner--text {\r\n display: none;\r\n}\r\n\r\n.modal-body:last-child {\r\n padding-bottom: 24px;\r\n}\r\n\r\n/* Argon and Bootstrap */\r\n\r\np:last-child {\r\n margin-bottom: 0;\r\n}\r\n\r\n.navbar-brand {\r\n font-weight: 300;\r\n font-size: 1.5rem;\r\n}\r\n\r\n@media (max-width: 360px) {\r\n .navbar-brand .navbar-brand-img {\r\n display: none;\r\n }\r\n}\r\n\r\n@media (min-width: 361px) {\r\n .navbar-brand .navbar-brand-img-mini {\r\n display: none;\r\n }\r\n}\r\n\r\n.sb-error {\r\n width: 100%;\r\n}\r\n\r\n.sb-error .alert {\r\n margin-left: auto;\r\n margin-right: auto;\r\n}\r\n\r\n.alert-danger-contents {\r\n background-color: ${colors.neutrals.foreground};\r\n border: 4px solid transparent;\r\n border-radius: 4px;\r\n color: ${colors.neutrals.n900};\r\n padding: 4px;\r\n overflow: hidden;\r\n}\r\n\r\n.alert-danger-contents p:first-of-type {\r\n margin-bottom: 0;\r\n}\r\n\r\n.alert-danger-contents h3 {\r\n padding-bottom: 0;\r\n margin-bottom: 0;\r\n}\r\n\r\n.sb-clickable {\r\n cursor: pointer;\r\n}\r\n\r\n.sb-card {\r\n padding: 1rem;\r\n color: ${colors.neutrals.n600};\r\n background-color: ${colors.neutrals.midground};\r\n border-radius: 0.375rem;\r\n border: 1px solid ${colors.neutrals.n600};\r\n margin-bottom: 1rem;\r\n}\r\n\r\n.sb-card .sb-play-button {\r\n margin-bottom: 1rem;\r\n}\r\n\r\n.sb-inline-logo {\r\n max-height: 3rem;\r\n}\r\n\r\n.sb-default-background {\r\n min-height: 100%;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n}\r\n\r\n.sb-header-logo {\r\n max-width: 300px;\r\n width: 100%;\r\n}\r\n\r\n.navbar-expand .navbar-collapse {\r\n padding: 0 15px;\r\n}\r\n\r\n.btn-inner--icon i:not(.fa) {\r\n top: 1px;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n .main-content .navbar-top {\r\n position: relative;\r\n padding-bottom: 0;\r\n }\r\n\r\n .main-content .navbar-top .container {\r\n padding: 0 15px;\r\n }\r\n}\r\n\r\n.sb-navigation-container {\r\n margin-top: -4rem;\r\n}\r\n\r\n.sidenav-header {\r\n padding-top: 1rem;\r\n}\r\n\r\n.dropdown-menu .dropdown-item {\r\n cursor: pointer;\r\n}\r\n\r\n.input-group-text {\r\n font-size: 14px !important;\r\n}\r\n\r\n.btn .btn-inner--icon {\r\n margin: 0;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n .btn.sb-no-small-title .btn-inner--icon svg {\r\n margin: 0;\r\n }\r\n}\r\n\r\n.input-group {\r\n border: 1px solid ${colors.neutrals.n500};\r\n}\r\n\r\n.input-group .form-control,\r\n.input-group .input-group-text {\r\n border: none;\r\n}\r\n\r\n.input-group:hover {\r\n border-color: ${colors.neutrals.n700};\r\n}\r\n\r\n.input-group:focus-within:not([aria-disabled=\"true\"]) {\r\n border-color: ${colors.bootstrap.primary};\r\n background-color: ${colors.neutrals.foreground};\r\n}\r\n\r\n.input-group:focus-within:not([aria-disabled=\"true\"]) .input-group-text {\r\n border-color: ${colors.bootstrap.primary};\r\n background-color: ${colors.neutrals.foreground};\r\n}\r\n\r\n.modal-header {\r\n padding: 1.5rem;\r\n}\r\n\r\n.modal-header h5 {\r\n color: ${colors.neutrals.min};\r\n}\r\n\r\n.modal-header .modal-title {\r\n font-size: 1.0625rem;\r\n}\r\n\r\n.close > span:not(.sr-only) {\r\n font-size: 2.25rem;\r\n}\r\n\r\n.modal-body {\r\n padding-bottom: 0;\r\n}\r\n\r\n.modal-body > div > .form-group:last-child,\r\n.modal-body > .form-group:last-child {\r\n margin-bottom: 0;\r\n}\r\n\r\n.modal-footer > * {\r\n margin: 0;\r\n}\r\n\r\n.modal-footer a {\r\n padding-right: 0.25rem;\r\n}\r\n\r\n.sb-new-session-modal .close {\r\n display: none;\r\n}\r\n\r\n/* Soundbite styles */\r\n.bg-gradient-brand {\r\n color: ${colors.neutrals.min};\r\n background: linear-gradient(\r\n 87deg,\r\n ${colors.brand.second} 0,\r\n ${colors.brand.first} 100%\r\n ) !important;\r\n}\r\n\r\n.bg-background {\r\n background-color: ${colors.neutrals.background}\r\n}\r\n\r\n.bg-midground {\r\n background-color: ${colors.neutrals.midground}\r\n}\r\n\r\n.bg-foreground {\r\n background-color: ${colors.neutrals.foreground}\r\n}\r\n\r\n.sb-progress-background {\r\n background: linear-gradient(\r\n 314deg,\r\n ${colors.brand.second},\r\n ${colors.brand.first}\r\n );\r\n background-size: 100% 100%;\r\n transition: all 3s;\r\n}\r\n\r\n.sb-progress-background-go {\r\n background-size: 150% 150%;\r\n -webkit-animation: AnimationName 6s ease infinite;\r\n -moz-animation: AnimationName 6s ease infinite;\r\n animation: AnimationName 6s ease infinite;\r\n}\r\n\r\n@-webkit-keyframes AnimationName {\r\n 0% {\r\n background-position: 9% 0%;\r\n }\r\n\r\n 50% {\r\n background-position: 92% 100%;\r\n }\r\n\r\n 100% {\r\n background-position: 9% 0%;\r\n }\r\n}\r\n\r\n@-moz-keyframes AnimationName {\r\n 0% {\r\n background-position: 9% 0%;\r\n }\r\n\r\n 50% {\r\n background-position: 92% 100%;\r\n }\r\n\r\n 100% {\r\n background-position: 9% 0%;\r\n }\r\n}\r\n\r\n@keyframes AnimationName {\r\n 0% {\r\n background-position: 9% 0%;\r\n }\r\n\r\n 50% {\r\n background-position: 92% 100%;\r\n }\r\n\r\n 100% {\r\n background-position: 9% 0%;\r\n }\r\n}\r\n\r\n.sb-loader {\r\n height: 36px;\r\n width: 36px;\r\n}\r\n\r\n.sb-loader .spinner-grow {\r\n height: 36px;\r\n width: 36px;\r\n}\r\n\r\n.sb-loader .spinner-grow.spinner-grow-sm {\r\n height: 18px;\r\n width: 18px;\r\n}\r\n\r\n.sb-loader .sb-avatar-loader {\r\n padding-top: 4px;\r\n}\r\n\r\n.sb-loader .spinner-grow.sb-spinner-default {\r\n background-color: ${colors.bootstrap.primary};\r\n}\r\n\r\n.sb-empty-card-with-border {\r\n border-collapse: collapse;\r\n border-top: 1px solid rgb(233, 236, 239) !important;\r\n}\r\n\r\n.sb-empty-card-body img {\r\n max-width: 50%;\r\n margin-top: 2rem;\r\n margin-bottom: 2rem;\r\n opacity: 0.6;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n .sb-empty-card-body img {\r\n max-width: 80%;\r\n }\r\n}\r\n\r\n/*Custom Width to start button stack based on current layout*/\r\n@media (max-width: 836px) {\r\n .sb-stackable-btn .btn {\r\n margin-right: 0;\r\n display: block;\r\n float: right;\r\n clear: both;\r\n width: 100%;\r\n }\r\n\r\n .sb-stackable-btn .btn:not(last-child) {\r\n margin-bottom: 1em;\r\n }\r\n}\r\n\r\n.sb-event-details-sm {\r\n font-weight: 400;\r\n margin-left: 1em;\r\n}\r\n\r\n.sb-imagepicker img {\r\n width: 48%;\r\n}\r\n\r\n.sb-imagepicker .btn-primary {\r\n margin-top: 1rem;\r\n}\r\n\r\n.sb-imagepicker .btn-primary:first-of-type {\r\n margin-top: 0;\r\n}\r\n\r\n.sb-brand {\r\n max-width: 240px;\r\n}\r\n\r\n.sb-team-link {\r\n position: relative;\r\n}\r\n\r\n.sb-team-link .sb-team-menu {\r\n position: absolute;\r\n right: 0;\r\n color: ${colors.neutrals.n600};\r\n}\r\n\r\n.sb-team-link .sb-team-menu:hover {\r\n color: ${colors.neutrals.n800};\r\n}\r\n\r\n.navbar-vertical.navbar-expand-xs\r\n .navbar-nav\r\n > .nav-item\r\n > .nav-link.active\r\n .sb-team-menu {\r\n right: -8px;\r\n}\r\n\r\n.navbar-nav\r\n > .nav-item\r\n > .nav-link.active {\r\n background-color: ${colors.neutrals.n200};\r\n}\r\n\r\n.sb-tabs {\r\n list-style-type: none;\r\n padding-left: 0;\r\n font-weight: 600;\r\n color: white;\r\n position: relative;\r\n}\r\n\r\n.sb-tabs h2 {\r\n margin: 0;\r\n}\r\n\r\n.sb-tabs a {\r\n color: white;\r\n}\r\n\r\n.sb-tabs a:active {\r\n color: white;\r\n}\r\n\r\n.sb-tabs li {\r\n display: inline-block;\r\n margin-right: 2em;\r\n}\r\n\r\n.sb-tabs li a.active h2 {\r\n border-bottom: 2px solid ${colors.neutrals.min};\r\n}\r\n\r\n.sb-big-dialog {\r\n max-width: 100%;\r\n margin: 0.5rem;\r\n}\r\n\r\n@media (min-width: 1200px) {\r\n .sb-big-dialog {\r\n margin: 1.75rem auto;\r\n max-width: 1200px;\r\n }\r\n}\r\n\r\n.sb-cover-dialog {\r\n max-width: 100%;\r\n margin: 0;\r\n}\r\n\r\n.sb-cover-dialog .modal-header {\r\n padding: 0.5rem 1.5rem;\r\n}\r\n\r\n.sb-cover-dialog .modal-header .close {\r\n display: none;\r\n}\r\n\r\n.sb-cover-dialog .modal-content video {\r\n max-height: 75vh;\r\n}\r\n\r\n.sb-cover-dialog .modal-body {\r\n max-width: 100%;\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n.sb-cover-dialog .sb-cover-modal-body {\r\n padding: 0 24px;\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n\r\n .sb-cover-dialog .modal-content {\r\n border: 0;\r\n border-radius: 0;\r\n border-image: none;\r\n min-height: 100vh;\r\n }\r\n\r\n .sb-cover-dialog .modal-header {\r\n border: 0;\r\n border-radius: 0;\r\n border-image: none;\r\n }\r\n}\r\n\r\n@media (min-width: 1200px) {\r\n .sb-cover-dialog {\r\n margin: 0.5rem auto;\r\n max-width: 1200px;\r\n }\r\n}\r\n\r\nselect.sb-input-group-height-fix:not([size]):not([multiple]) {\r\n height: calc(2.25rem + 10px);\r\n}\r\n\r\n.sb-select-description {\r\n font-size: 14px;\r\n margin-top: 12px;\r\n min-height: 21px;\r\n}\r\n\r\n.sb-modal-header-subtitle {\r\n font-weight: 300;\r\n font-size: 14px;\r\n display: block;\r\n line-height: 1.5;\r\n}\r\n\r\n.sb-meeting-title {\r\n display: block;\r\n}\r\n\r\n.sb-play-button,\r\n.sb-record-button {\r\n color: ${colors.bootstrap.primary};\r\n height: 40px;\r\n}\r\n\r\n.sb-vertical-center {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.sb-teamplayer .sb-play-button,\r\n.sb-teamplayer .sb-record-button {\r\n position: absolute;\r\n right: calc(50% - 30px);\r\n top: -8px;\r\n}\r\n\r\n.sb-recorder {\r\n min-height: 50px;\r\n margin-bottom: 1rem;\r\n position: relative;\r\n}\r\n\r\n.sb-recorder .sb-record-button {\r\n position: absolute;\r\n right: calc(50% - 30px);\r\n}\r\n\r\n.sb-recorder canvas {\r\n border-bottom: 1px solid ${colors.neutrals.n200};\r\n}\r\n\r\n.sb-recorder .sb-sound-scrubber {\r\n margin-top: 44px;\r\n min-height: 6px;\r\n}\r\n\r\n.sb-recorder .sb-timer {\r\n position: absolute;\r\n right: 1rem;\r\n top: 6px;\r\n background-color: ${colors.neutrals.n100};\r\n color: ${colors.neutrals.min};\r\n border-radius: 4px;\r\n padding: 2px 6px;\r\n}\r\n\r\n.sb-recorder .sb-record-button .pb-container {\r\n width: 60px;\r\n}\r\n\r\n.sb-recorder .sb-record-reset-btn {\r\n position: absolute;\r\n right: calc(50% - 66px);\r\n top: 6px;\r\n}\r\n\r\n.sb-recorder .sb-record-download-btn {\r\n left: calc(50% - 60px);\r\n margin-right: 0;\r\n position: absolute;\r\n top: 6px;\r\n}\r\n\r\n.sb-recorder .sb-recording-scrubber-row {\r\n height: 6px;\r\n padding-top: 12px;\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .sb-bottom-nav-item {\r\n bottom: 10px;\r\n width: 100%;\r\n margin-left: 0 !important;\r\n border-radius: 0 !important;\r\n background: ${colors.neutrals.midground};\r\n }\r\n}\r\n\r\n.sb-title-input-addon {\r\n width: 62px;\r\n}\r\n\r\n.sb-title-input-addon .input-group-text {\r\n padding: 10px 0;\r\n}\r\n\r\n.sb-tab-btn {\r\n cursor: pointer;\r\n background-color: ${colors.neutrals.midground};\r\n border: 1px solid ${colors.bootstrap.primary};\r\n color: ${colors.bootstrap.primary} !important;\r\n}\r\n\r\n.sb-tab-btn:hover, .sb-tab-btn.active:hover {\r\n color: ${colors.neutrals.min} !important;\r\n background-color: ${colors.bootstrap.primaryHigh};\r\n border: 1px solid ${colors.bootstrap.primaryHigh};\r\n}\r\n\r\n.sb-tab-btn.active {\r\n border: 1px solid ${colors.bootstrap.primary};\r\n background-color: ${colors.bootstrap.primary};\r\n color: ${colors.neutrals.min} !important;\r\n}\r\n\r\n.sb-3-tab .nav-item:first-of-type .sb-tab-btn {\r\n border-bottom-left-radius: 4px;\r\n border-top-left-radius: 4px;\r\n border-right: 0;\r\n}\r\n\r\n.sb-3-tab .nav-item:last-of-type .sb-tab-btn {\r\n border-bottom-right-radius: 4px;\r\n border-top-right-radius: 4px;\r\n border-left: 0;\r\n}\r\n\r\n@media (max-width: 1059px) {\r\n .sb-3-tab .nav-item {\r\n width: 100%;\r\n }\r\n\r\n .sb-3-tab .nav-item:first-of-type .sb-tab-btn {\r\n border-radius: 4px 4px 0 0;\r\n border-right: 1px solid ${colors.bootstrap.primary};\r\n border-bottom: 0;\r\n }\r\n\r\n .sb-3-tab .nav-item:last-of-type .sb-tab-btn {\r\n border-radius: 0 0 4px 4px;\r\n border-left: 1px solid ${colors.bootstrap.primary};\r\n border-top: 0;\r\n }\r\n}\r\n\r\n.sb-2-tab {\r\n margin-bottom: 1rem;\r\n}\r\n\r\n.sb-p-2-tab {\r\n padding: .75rem;\r\n}\r\n\r\n.sb-2-tab .nav-item:first-of-type .sb-tab-btn {\r\n border-bottom-left-radius: 4px;\r\n border-top-left-radius: 4px;\r\n border-right: 0;\r\n}\r\n\r\n.sb-2-tab .nav-item:last-of-type .sb-tab-btn {\r\n border-top-right-radius: 4px;\r\n border-bottom-right-radius: 4px;\r\n border-left: 0;\r\n} \r\n\r\n.sb-record-and-play .tab-content {\r\n min-height: 4.5rem;\r\n}\r\n\r\n.sb-record-and-play[aria-disabled=\"true\"] {\r\n -webkit-filter: grayscale(100%);\r\n -moz-filter: grayscale(100%);\r\n -ms-filter: grayscale(100%);\r\n filter: grayscale(100%);\r\n opacity: 0.5;\r\n}\r\n\r\n.sb-uploader {\r\n margin-bottom: 1rem;\r\n}\r\n\r\n.sb-explainer-image {\r\n max-width: 100%;\r\n}\r\n\r\n.list-group-flush .list-group-item:hover {\r\n border-bottom-color: transparent;\r\n}\r\n\r\n.avatar {\r\n min-width: 48px;\r\n min-height: 48px;\r\n}\r\n\r\n.avatar img {\r\n height: 100%;\r\n}\r\n\r\n.rdt .form-control {\r\n border-radius: 0;\r\n}\r\n\r\n.rdtPicker td.rdtActive,\r\n.rdtPicker td.rdtActive:hover {\r\n max-width: 26px;\r\n max-height: 26px;\r\n}\r\n\r\n/* react-select - TODO: Figure out if the styling ability in the library would be better than hacking things here */\r\n\r\n.sb-public-card .sb-home-action {\r\n margin-top: 1rem;\r\n display: block;\r\n}\r\n\r\n.sb-public-card .sb-org-link {\r\n border: 1px solid ${colors.bootstrap.primary};\r\n border-radius: 0.375rem;\r\n color: ${colors.bootstrap.primary}\r\n cursor: pointer;\r\n cursor: pointer;\r\n display: block;\r\n margin-bottom: 1.5rem;\r\n padding: 0.625rem 1.25rem;\r\n}\r\n\r\n.sb-public-card .sb-org-link:hover {\r\n background-color: ${colors.bootstrap.primary};\r\n border: 1px solid ${colors.bootstrap.primary};\r\n color: ${colors.neutrals.min};\r\n}\r\n\r\n.sb-public-card .sb-org-link:active {\r\n background-color: ${colors.bootstrap.primaryHigh};\r\n border: 1px solid ${colors.bootstrap.primaryHigh};\r\n}\r\n\r\n.sb-public-card .sb-org-link .nav-link-text {\r\n display: table-cell;\r\n padding-left: 1rem;\r\n}\r\n\r\n.sb-public-card .sb-org-link:last-child {\r\n margin-bottom: 0;\r\n}\r\n\r\n.sb-public-card .sb-org-link .sb-org-logo {\r\n background-position: center;\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n height: 36px;\r\n width: 36px;\r\n display: table-cell;\r\n}\r\n\r\ntable.sb-max-width-table {\r\n table-layout: fixed;\r\n width: 100%;\r\n}\r\n\r\ntable.sb-max-width-table th,\r\ntable.sb-max-width-table td {\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n}\r\n\r\ntable.sb-max-width-table td:last-of-type {\r\n text-overflow: clip;\r\n}\r\n\r\n/*!\r\n * https://github.com/YouCanBookMe/react-datetime\r\n */\r\n\r\n.rdt {\r\n position: relative;\r\n}\r\n\r\n.rdtPicker {\r\n display: none;\r\n position: absolute;\r\n width: 250px;\r\n padding: 4px;\r\n margin-top: 1px;\r\n z-index: 99999 !important;\r\n background: #fff;\r\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\r\n border: 1px solid #f9f9f9;\r\n}\r\n\r\n.rdtOpen .rdtPicker {\r\n display: block;\r\n}\r\n\r\n.rdtStatic .rdtPicker {\r\n box-shadow: none;\r\n position: static;\r\n}\r\n\r\n.rdtPicker .rdtTimeToggle {\r\n text-align: center;\r\n}\r\n\r\n.rdtPicker table {\r\n width: 100%;\r\n margin: 0;\r\n}\r\n\r\n.rdtPicker td,\r\n.rdtPicker th {\r\n text-align: center;\r\n height: 28px;\r\n}\r\n\r\n.rdtPicker td {\r\n cursor: pointer;\r\n}\r\n\r\n.rdtPicker td.rdtDay:hover,\r\n.rdtPicker td.rdtHour:hover,\r\n.rdtPicker td.rdtMinute:hover,\r\n.rdtPicker td.rdtSecond:hover,\r\n.rdtPicker .rdtTimeToggle:hover {\r\n background: #eeeeee;\r\n cursor: pointer;\r\n}\r\n\r\n.rdtPicker td.rdtOld,\r\n.rdtPicker td.rdtNew {\r\n color: #999999;\r\n}\r\n\r\n.rdtPicker td.rdtToday {\r\n position: relative;\r\n}\r\n\r\n.rdtPicker td.rdtToday:before {\r\n content: \"\";\r\n display: inline-block;\r\n border-left: 7px solid transparent;\r\n border-bottom: 7px solid ${colors.bootstrap.secondary};\r\n border-top-color: rgba(0, 0, 0, 0.2);\r\n position: absolute;\r\n bottom: 4px;\r\n right: 4px;\r\n}\r\n\r\n.rdtPicker td.rdtActive,\r\n.rdtPicker td.rdtActive:hover {\r\n background-color: ${colors.bootstrap.primary} !important;\r\n color: #fff;\r\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\r\n}\r\n\r\n.rdtPicker td.rdtActive.rdtToday:before {\r\n border-bottom-color: #fff;\r\n}\r\n\r\n.rdtPicker td.rdtDisabled,\r\n.rdtPicker td.rdtDisabled:hover {\r\n background: none;\r\n color: #999999;\r\n cursor: not-allowed;\r\n}\r\n\r\n.rdtPicker td span.rdtOld {\r\n color: #999999;\r\n}\r\n\r\n.rdtPicker td span.rdtDisabled,\r\n.rdtPicker td span.rdtDisabled:hover {\r\n background: none;\r\n color: #999999;\r\n cursor: not-allowed;\r\n}\r\n\r\n.rdtPicker th {\r\n border-bottom: 1px solid #f9f9f9;\r\n}\r\n\r\n.rdtPicker .dow {\r\n width: 14.2857%;\r\n border-bottom: none;\r\n cursor: default;\r\n}\r\n\r\n.rdtPicker th.rdtSwitch {\r\n width: 100px;\r\n}\r\n\r\n.rdtPicker th.rdtNext,\r\n.rdtPicker th.rdtPrev {\r\n font-size: 21px;\r\n vertical-align: top;\r\n}\r\n\r\n.rdtPrev span,\r\n.rdtNext span {\r\n display: block;\r\n -webkit-touch-callout: none; /* iOS Safari */\r\n -webkit-user-select: none; /* Chrome/Safari/Opera */\r\n -khtml-user-select: none; /* Konqueror */\r\n -moz-user-select: none; /* Firefox */\r\n -ms-user-select: none; /* Internet Explorer/Edge */\r\n user-select: none;\r\n}\r\n\r\n.rdtPicker th.rdtDisabled,\r\n.rdtPicker th.rdtDisabled:hover {\r\n background: none;\r\n color: #999999;\r\n cursor: not-allowed;\r\n}\r\n\r\n.rdtPicker thead tr:first-child th {\r\n cursor: pointer;\r\n}\r\n\r\n.rdtPicker thead tr:first-child th:hover {\r\n background: #eeeeee;\r\n}\r\n\r\n.rdtPicker tfoot {\r\n border-top: 1px solid #f9f9f9;\r\n}\r\n\r\n.rdtPicker button {\r\n border: none;\r\n background: none;\r\n cursor: pointer;\r\n}\r\n\r\n.rdtPicker button:hover {\r\n background-color: #eee;\r\n}\r\n\r\n.rdtPicker thead button {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\ntd.rdtMonth,\r\ntd.rdtYear {\r\n height: 50px;\r\n width: 25%;\r\n cursor: pointer;\r\n}\r\n\r\ntd.rdtMonth:hover,\r\ntd.rdtYear:hover {\r\n background: #eee;\r\n}\r\n\r\n.rdtCounters {\r\n display: inline-block;\r\n}\r\n\r\n.rdtCounters > div {\r\n float: left;\r\n}\r\n\r\n.rdtCounter {\r\n height: 100px;\r\n}\r\n\r\n.rdtCounter {\r\n width: 40px;\r\n}\r\n\r\n.rdtCounterSeparator {\r\n line-height: 100px;\r\n}\r\n\r\n.rdtCounter .rdtBtn {\r\n height: 40%;\r\n line-height: 40px;\r\n cursor: pointer;\r\n display: block;\r\n -webkit-touch-callout: none; /* iOS Safari */\r\n -webkit-user-select: none; /* Chrome/Safari/Opera */\r\n -khtml-user-select: none; /* Konqueror */\r\n -moz-user-select: none; /* Firefox */\r\n -ms-user-select: none; /* Internet Explorer/Edge */\r\n user-select: none;\r\n}\r\n\r\n.rdtCounter .rdtBtn:hover {\r\n background: #eee;\r\n}\r\n\r\n.rdtCounter .rdtCount {\r\n height: 20%;\r\n font-size: 1.2em;\r\n}\r\n\r\n.rdtMilli {\r\n vertical-align: middle;\r\n padding-left: 8px;\r\n width: 48px;\r\n}\r\n\r\n.rdtMilli input {\r\n width: 100%;\r\n font-size: 1.2em;\r\n margin-top: 37px;\r\n}\r\n\r\n.rdtTime td {\r\n cursor: default;\r\n}\r\n\r\n.sb-datepicker .sb-toggle {\r\n margin: 11px 1rem;\r\n}\r\n\r\n.sb-datepicker .sb-datepicker-none-label {\r\n margin: 11px;\r\n}\r\n\r\n@media (max-width: 360px) {\r\n .sb-datepicker .sb-date-picker,\r\n .sb-datepicker .sb-time-picker {\r\n width: 50%;\r\n }\r\n}\r\n\r\nh1 i, h2 i, h3 i, h4 i, h5 i {\r\n margin-right: 0.5rem;\r\n opacity: 0.75;\r\n}\r\n\r\n.sb-cell-detail {\r\n font-weight: lighter;\r\n}\r\n\r\n/* React-mic */\r\n\r\n.sb-react-mic {\r\n width: 100%;\r\n height: 40px;\r\n}\r\n\r\nbutton.sb-link-btn {\r\n background-color: transparent;\r\n border: none;\r\n box-shadow: none;\r\n text-decoration: underline;\r\n color: ${colors.neutrals.max}\r\n}\r\n\r\nbutton.sb-link-btn:hover {\r\n text-decoration: underline;\r\n color: ${colors.neutrals.max}\r\n}\r\n\r\nbutton.sb-link-simple-btn {\r\n background-color: transparent;\r\n border: none;\r\n box-shadow: none;\r\n color: ${colors.neutrals.max}\r\n}\r\n\r\n/* Picker */\r\n\r\n.sb-picker > div {\r\n box-shadow: none;\r\n}\r\n\r\n.sb-picker > div > div {\r\n box-shadow: none;\r\n}\r\n\r\n.sb-picker {\r\n font-size: 14px;\r\n}\r\n\r\n.sb-picker .sb-picker__control {\r\n background-color: ${colors.neutrals.midground};\r\n}\r\n\r\n.sb-picker .sb-picker__control:focus-within,\r\n.sb-picker__control.sb-picker__control--is-focused {\r\n border-color: ${colors.bootstrap.primary};\r\n box-shadow: none;\r\n}\r\n\r\n.sb-picker .picker__control {\r\n background-color: ${colors.neutrals.n200};\r\n}\r\n\r\n.sb-picker .picker__control:hover {\r\n border-color: ${colors.neutrals.n300};\r\n}\r\n\r\n.sb-picker .sb-picker__option {\r\n cursor: pointer;\r\n}\r\n\r\n.sb-picker .sb-picker__indicator.sb-picker__dropdown-indicator svg {\r\n fill: ${colors.neutrals.n300};\r\n}\r\n\r\n.sb-picker .sb-picker__option.sb-picker__option--is-focused {\r\n background-color: ${colors.bootstrap.primaryHigh};\r\n color: ${colors.neutrals.min};\r\n}\r\n\r\n.sb-picker .sb-picker__multi-value {\r\n background-color: ${colors.bootstrap.primary};\r\n border: 1px solid ${colors.neutrals.n300};\r\n border-radius: 0.375rem;\r\n overflow: hidden;\r\n}\r\n\r\n.sb-picker .sb-picker__multi-value__label {\r\n font-size: 14px;\r\n color: ${colors.neutrals.min};\r\n background-color: ${colors.transparent};\r\n}\r\n\r\n.sb-picker .sb-picker__multi-value__remove {\r\n cursor: pointer;\r\n color: ${colors.neutrals.n100};\r\n}\r\n\r\n.sb-picker .sb-picker__multi-value__remove:hover {\r\n background-color: ${colors.bootstrap.danger};\r\n color: ${colors.neutrals.min};\r\n}\r\n\r\n.sb-picker.sb-picker--is-disabled .sb-picker__control {\r\n background-color: ${colors.neutrals.n200};\r\n border: 1px solid ${colors.neutrals.n500};\r\n}\r\n\r\n.sb-picker.sb-picker--is-disabled .sb-picker__multi-value__remove {\r\n display: none;\r\n}\r\n\r\n.sb-picker .sb-picker__indicator-separator {\r\n display: none;\r\n}\r\n\r\n.sb-picker.sb-picker--is-disabled\r\n .sb-picker__indicator.sb-picker__dropdown-indicator\r\n svg {\r\n fill: ${colors.neutrals.n500};\r\n}\r\n\r\n.sb-picker.sb-picker--is-disabled .sb-picker__multi-value {\r\n background-color: ${colors.neutrals.n500};\r\n}\r\n\r\n.sb-picker.sb-picker--is-disabled .sb-picker__multi-value__label {\r\n color: ${colors.neutrals.n100};\r\n}\r\n\r\n.sb-picker .sb-picker__menu {\r\n border: 1px solid ${colors.bootstrap.primary};\r\n background-color: ${colors.neutrals.foreground};\r\n}\r\n\r\n.sb-picker .sb-picker__menu:hover {\r\n border: 1px solid ${colors.bootstrap.primaryHigh};\r\n}\r\n\r\n.sb-versionNum {\r\n position: fixed;\r\n bottom:0;\r\n right:0;\r\n font-size:10px;\r\n margin-right: 5px;\r\n pointer-events: none;\r\n}\r\n\r\n.sb-infinite-table {\r\n height: calc(100vh - 214px);\r\n}\r\n\r\n@media (max-width: 767.98px) {\r\n .sb-infinite-table {\r\n height: calc(100vh - 277px);\r\n }\r\n}\r\n\r\n.sb-dual-column-table tr td:first-of-type {\r\n max-width: 60px;\r\n white-space: normal;\r\n}\r\n\r\n.sb-dual-column-table tr td:nth-of-type(2) {\r\n padding: 0;\r\n}\r\n\r\n/***********\r\nThe sb-icon-button is mostly stolen from the SbProgressButton.tsx styles and could probably be consolidated somehow...\r\n***********/\r\n\r\n.sb-icon-button {\r\n background: ${GlobalTheme_1.GlobalTheme.current.colors.neutrals.midground};\r\n border: 1px solid ${GlobalTheme_1.GlobalTheme.current.colors.bootstrap.primary};\r\n border-radius: 0.25rem;\r\n color: currentColor;\r\n cursor: pointer;\r\n padding: 0.7em 1em;\r\n text-decoration: none;\r\n text-align: center;\r\n height: 40px;\r\n width: 40px;\r\n -webkit-tap-highlight-color: transparent;\r\n outline: none;\r\n transition: background-color 0.3s, width 0.3s, border-width 0.3s,\r\n border-color 0.3s, border-radius 0.3s;\r\n position: relative; \r\n margin-left:5px;\r\n}\r\n\r\n.sb-icon-button:first-child {\r\n margin-left:0px;\r\n}\r\n\r\n.sb-icon-button span {\r\n width: 100%;\r\n height: 100%;\r\n transition: all 0.15s;\r\n display: inherit;\r\n transition: opacity 0.3s 0.1s;\r\n font-size: 1.4em;\r\n font-weight: 100;\r\n position: absolute;\r\n top: 3px;\r\n left: calc(50% - 9px);\r\n}\r\n\r\n.sb-icon-button svg {\r\n height: 40px;\r\n width: 40px;\r\n position: absolute;\r\n transform: translate(-50%, -50%);\r\n pointer-events: none;\r\n}\r\n\r\n.sb-icon-button svg path {\r\n opacity: 0;\r\n fill: none;\r\n}\r\n\r\n.sb-icon-button .svg-inline--fa {\r\n height: 1rem;\r\n width: 0.875em;\r\n overflow: visible;\r\n}\r\n\r\n.sb-icon-button svg.svg-inline--fa path {\r\n opacity: 1;\r\n fill: ${GlobalTheme_1.GlobalTheme.current.colors.bootstrap.primary};\r\n}\r\n\r\n.sb-icon-button:hover {\r\n background-color: ${GlobalTheme_1.GlobalTheme.current.colors.bootstrap.primaryHigh};\r\n border-color: ${GlobalTheme_1.GlobalTheme.current.colors.bootstrap.primaryHigh};\r\n color: white;\r\n}\r\n\r\n.sb-icon-button:hover svg.svg-inline--fa path {\r\n fill: ${GlobalTheme_1.GlobalTheme.current.colors.neutrals.min};\r\n}\r\n\r\n.sb-icon-button svg.svg-inline--fa {\r\n height: 20px;\r\n width: 20px;\r\n left: 10px;\r\n top: 15px;\r\n}\r\n\r\n.text-truncate-fade {\r\n position: relative;\r\n display: -webkit-box;\r\n -webkit-line-clamp: 1;\r\n -webkit-box-orient: vertical;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n line-height: 1.4em; /* Adjust this value according to your design */\r\n max-height: 1.4em; /* (number of lines) * (line-height value) */\r\n}\r\n\r\n.text-truncate-fade::after {\r\n content: '';\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n width: 4em; /* Adjust this value according to your design */\r\n height: 1.4em; /* Should be the same as the line-height value */\r\n background: linear-gradient(to right, ${GlobalTheme_1.GlobalTheme.current.colors.neutrals.min}00, ${GlobalTheme_1.GlobalTheme.current.colors.neutrals.min}FF 75%); /* Replace the rgba() values with your background color */\r\n pointer-events: none;\r\n}\r\n\r\nvideo {\r\n background: linear-gradient(to right,${GlobalTheme_1.GlobalTheme.current.colors.neutrals.midground} 0%,${GlobalTheme_1.GlobalTheme.current.colors.neutrals.background} 50%,${GlobalTheme_1.GlobalTheme.current.colors.neutrals.midground} 100%);\r\n max-height: 100vh;\r\n object-fit: contain;\r\n width: 100%;\r\n}\r\n\r\nvideo[poster] {\r\n object-fit: scale-down;\r\n}\r\n\r\n`;\r\n return baseStyles;\r\n};\r\n/**\r\n * Custom Styles from Soundbite\r\n * */\r\nclass SbStyles extends react_2.Component {\r\n constructor(props) {\r\n super(props);\r\n if (SbStyles.instance !== undefined) {\r\n console.warn(\"More than one instance of SbStyles detected; for performance reasons, it's best to include only one instance\");\r\n }\r\n SbStyles.instance = this;\r\n }\r\n render() {\r\n if (SbStyles.hasRendered) {\r\n console.warn(\"More than one render of SbStyles detected; for performance reasons, it's best to place this at the highest level of the DOM such that it is never re-rendered\");\r\n }\r\n SbStyles.hasRendered = true;\r\n // If this is the live instance, render\r\n if (this === SbStyles.instance) {\r\n const styles = getStyles();\r\n return (0, react_1.jsx)(react_1.Global, { styles: styles });\r\n }\r\n else\r\n return (0, react_1.jsx)(react_2.default.Fragment, null);\r\n }\r\n}\r\nexports.SbStyles = SbStyles;\r\nSbStyles.hasRendered = false;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.sortSessions = exports.sortBy = exports.compareLex = void 0;\r\nconst compareLex = (left = \"\", right = \"\") => {\r\n if (left < right) {\r\n return -1;\r\n }\r\n if (left > right) {\r\n return 1;\r\n }\r\n return 0;\r\n};\r\nexports.compareLex = compareLex;\r\n/**\r\n * Sorts the given collection using the given functio to get the target field\r\n * @param collection\r\n * @param getFunc\r\n */\r\nconst sortBy = (getFunc, collection) => {\r\n if (collection == null)\r\n return undefined;\r\n const ret = collection.sort(function (left, right) {\r\n const leftVal = getFunc(left);\r\n const rightVal = getFunc(right);\r\n return (0, exports.compareLex)(leftVal, rightVal);\r\n });\r\n return ret;\r\n};\r\nexports.sortBy = sortBy;\r\n/**\r\n * Sorts the given set of sessions, returning a new collection\r\n * @param sessions\r\n */\r\nconst sortSessions = (sessions) => {\r\n const ret = (0, exports.sortBy)((s) => {\r\n return s.publish;\r\n }, sessions);\r\n return ret;\r\n};\r\nexports.sortSessions = sortSessions;\r\n//export const sortSeries = (series?: SeriesType[]): SeriesType[] | undefined => {\r\n// const ret = sortBy((s) => { return s. }, series);\r\n// return ret;\r\n//}\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ErrorCtrl = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst __1 = require(\"..\");\r\n/**\r\n * React component for managing a singleton error dialog\r\n * If the error is an instance of PublicError, it will show it to the user in the dialog\r\n * Otherwise, it will console.error with a helpful header on the message\r\n * */\r\nclass ErrorCtrl extends react_1.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { isShowDetails: false };\r\n }\r\n showDetails() {\r\n this.setState({ isShowDetails: true });\r\n }\r\n render() {\r\n if (!this.props.error)\r\n return react_1.default.createElement(react_1.default.Fragment, null);\r\n return (react_1.default.createElement(\"div\", { className: \"sb-error\" },\r\n react_1.default.createElement(reactstrap_1.Alert, { color: \"danger\", className: \"bg-gradient-danger\" },\r\n react_1.default.createElement(\"div\", { className: \"alert-danger-contents\" },\r\n react_1.default.createElement(\"h3\", null, \"Apologies\"),\r\n react_1.default.createElement(\"p\", null, this.props.error.message),\r\n react_1.default.createElement(\"p\", null,\r\n \"Please try again. If that doesn't work,\",\r\n \" \",\r\n react_1.default.createElement(__1.SupportLink, { error: this.props.error }, \"Contact Support\"),\r\n \".\")))));\r\n }\r\n}\r\nexports.ErrorCtrl = ErrorCtrl;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IconLink = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nexports.IconLink = (0, mobx_react_lite_1.observer)((props) => {\r\n var _a;\r\n return (react_1.default.createElement(\"h2\", { className: \"text-white\", title: (_a = props.tooltip) !== null && _a !== void 0 ? _a : props.title },\r\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { className: \"mr-1\", icon: props.icon }),\r\n react_1.default.createElement(\"span\", { className: \"d-none d-lg-inline sb-icon-link-title\" }, props.title)));\r\n});\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PlayBtn = void 0;\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst __1 = require(\"../..\");\r\nconst SbButton_1 = require(\"../SbButton\");\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nconst PlayBtn = (props) => {\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n var _a;\r\n function onOpen() {\r\n if (props.orgRoute && props.sessionRoute) {\r\n __1.WidgetStore.showPlayer(props.orgRoute, props.sessionRoute);\r\n }\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n const size = (_a = props.size) !== null && _a !== void 0 ? _a : SbButton_1.SbButtonSize.Small;\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.Primary, size: size, btnClassName: \"sb-play-btn\", title: \"Play Session\", text: \"Play\", onClick: onOpen, icon: free_solid_svg_icons_1.faPlay })));\r\n};\r\nexports.PlayBtn = PlayBtn;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PlayButton = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst SbProgressButton_1 = require(\"./SbProgressButton\");\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexports.PlayButton = (0, mobx_react_lite_1.observer)((props) => {\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n var _a, _b;\r\n /**\r\n * Handles the click event of the play button.\r\n */\r\n function onClick() {\r\n var _a, _b, _c;\r\n const isPlaying = ((_a = props === null || props === void 0 ? void 0 : props.context) === null || _a === void 0 ? void 0 : _a.isPlaying) === true;\r\n if (isPlaying) {\r\n (_b = props.context) === null || _b === void 0 ? void 0 : _b.pause();\r\n }\r\n else {\r\n (_c = props.context) === null || _c === void 0 ? void 0 : _c.play();\r\n }\r\n if (props.onToggle) {\r\n props.onToggle(isPlaying);\r\n }\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n const title = ((_a = props.context) === null || _a === void 0 ? void 0 : _a.isPlaying) === true ? \"Pause\" : \"Play\";\r\n return ((0, react_1.jsx)(\"div\", { className: \"sb-play-button\" },\r\n (0, react_1.jsx)(SbProgressButton_1.SbProgressButton, { onClick: onClick, isRunning: ((_b = props.context) === null || _b === void 0 ? void 0 : _b.isPlaying) === true, allowClickOnLoading: true, disabled: props.disabled, title: title })));\r\n});\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RichText = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = __importDefault(require(\"react\"));\r\nconst react_quilljs_1 = require(\"react-quilljs\");\r\nconst __1 = require(\"../..\");\r\nconst getBaseStyles = () => {\r\n const colors = __1.GlobalTheme.current.colors;\r\n const baseStyles = (0, react_1.css) `\r\n /*!\r\n * Quill Editor v1.3.7\r\n * https://quilljs.com/\r\n * Copyright (c) 2014, Jason Chen\r\n * Copyright (c) 2013, salesforce.com\r\n */\r\n .ql-container {\r\n box-sizing: border-box;\r\n font-family: Helvetica, Arial, sans-serif;\r\n font-size: 13px;\r\n height: 100%;\r\n margin: 0px;\r\n position: relative;\r\n }\r\n .ql-container.ql-disabled .ql-tooltip {\r\n visibility: hidden;\r\n }\r\n .ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {\r\n pointer-events: none;\r\n }\r\n .ql-container.ql-disabled {\r\n background-color: ${colors.neutrals.n800};\r\n }\r\n .ql-clipboard {\r\n left: -100000px;\r\n height: 1px;\r\n overflow-y: hidden;\r\n position: absolute;\r\n top: 50%;\r\n }\r\n .ql-clipboard p {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n .ql-editor {\r\n box-sizing: border-box;\r\n line-height: 1.42;\r\n height: 100%;\r\n outline: none;\r\n overflow-y: auto;\r\n padding: 12px 15px;\r\n tab-size: 4;\r\n -moz-tab-size: 4;\r\n text-align: left;\r\n white-space: pre-wrap;\r\n word-wrap: break-word;\r\n }\r\n .ql-editor > * {\r\n cursor: text;\r\n }\r\n .ql-editor p,\r\n .ql-editor ol,\r\n .ql-editor ul,\r\n .ql-editor pre,\r\n .ql-editor blockquote,\r\n .ql-editor h1,\r\n .ql-editor h2,\r\n .ql-editor h3,\r\n .ql-editor h4,\r\n .ql-editor h5,\r\n .ql-editor h6 {\r\n margin: 0;\r\n padding: 0;\r\n counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8\r\n list-9;\r\n }\r\n .ql-editor ol,\r\n .ql-editor ul {\r\n padding-left: 1.5em;\r\n }\r\n .ql-editor ol > li,\r\n .ql-editor ul > li {\r\n list-style-type: none;\r\n }\r\n .ql-editor ul > li::before {\r\n content: \"\\\\2022\";\r\n }\r\n .ql-editor ul[data-checked=\"true\"],\r\n .ql-editor ul[data-checked=\"false\"] {\r\n pointer-events: none;\r\n }\r\n .ql-editor ul[data-checked=\"true\"] > li *,\r\n .ql-editor ul[data-checked=\"false\"] > li * {\r\n pointer-events: all;\r\n }\r\n .ql-editor ul[data-checked=\"true\"] > li::before,\r\n .ql-editor ul[data-checked=\"false\"] > li::before {\r\n color: #777;\r\n cursor: pointer;\r\n pointer-events: all;\r\n }\r\n .ql-editor ul[data-checked=\"true\"] > li::before {\r\n content: \"\\\\2611\";\r\n }\r\n .ql-editor ul[data-checked=\"false\"] > li::before {\r\n content: \"\\\\2610\";\r\n }\r\n .ql-editor li::before {\r\n display: inline-block;\r\n white-space: nowrap;\r\n width: 1.2em;\r\n }\r\n .ql-editor li:not(.ql-direction-rtl)::before {\r\n margin-left: -1.5em;\r\n margin-right: 0.3em;\r\n text-align: right;\r\n }\r\n .ql-editor li.ql-direction-rtl::before {\r\n margin-left: 0.3em;\r\n margin-right: -1.5em;\r\n }\r\n .ql-editor ol li:not(.ql-direction-rtl),\r\n .ql-editor ul li:not(.ql-direction-rtl) {\r\n padding-left: 1.5em;\r\n }\r\n .ql-editor ol li.ql-direction-rtl,\r\n .ql-editor ul li.ql-direction-rtl {\r\n padding-right: 1.5em;\r\n }\r\n .ql-editor ol li {\r\n counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8\r\n list-9;\r\n counter-increment: list-0;\r\n }\r\n .ql-editor ol li:before {\r\n content: counter(list-0, decimal) \". \";\r\n }\r\n .ql-editor ol li.ql-indent-1 {\r\n counter-increment: list-1;\r\n }\r\n .ql-editor ol li.ql-indent-1:before {\r\n content: counter(list-1, lower-alpha) \". \";\r\n }\r\n .ql-editor ol li.ql-indent-1 {\r\n counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\r\n }\r\n .ql-editor ol li.ql-indent-2 {\r\n counter-increment: list-2;\r\n }\r\n .ql-editor ol li.ql-indent-2:before {\r\n content: counter(list-2, lower-roman) \". \";\r\n }\r\n .ql-editor ol li.ql-indent-2 {\r\n counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;\r\n }\r\n .ql-editor ol li.ql-indent-3 {\r\n counter-increment: list-3;\r\n }\r\n .ql-editor ol li.ql-indent-3:before {\r\n content: counter(list-3, decimal) \". \";\r\n }\r\n .ql-editor ol li.ql-indent-3 {\r\n counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;\r\n }\r\n .ql-editor ol li.ql-indent-4 {\r\n counter-increment: list-4;\r\n }\r\n .ql-editor ol li.ql-indent-4:before {\r\n content: counter(list-4, lower-alpha) \". \";\r\n }\r\n .ql-editor ol li.ql-indent-4 {\r\n counter-reset: list-5 list-6 list-7 list-8 list-9;\r\n }\r\n .ql-editor ol li.ql-indent-5 {\r\n counter-increment: list-5;\r\n }\r\n .ql-editor ol li.ql-indent-5:before {\r\n content: counter(list-5, lower-roman) \". \";\r\n }\r\n .ql-editor ol li.ql-indent-5 {\r\n counter-reset: list-6 list-7 list-8 list-9;\r\n }\r\n .ql-editor ol li.ql-indent-6 {\r\n counter-increment: list-6;\r\n }\r\n .ql-editor ol li.ql-indent-6:before {\r\n content: counter(list-6, decimal) \". \";\r\n }\r\n .ql-editor ol li.ql-indent-6 {\r\n counter-reset: list-7 list-8 list-9;\r\n }\r\n .ql-editor ol li.ql-indent-7 {\r\n counter-increment: list-7;\r\n }\r\n .ql-editor ol li.ql-indent-7:before {\r\n content: counter(list-7, lower-alpha) \". \";\r\n }\r\n .ql-editor ol li.ql-indent-7 {\r\n counter-reset: list-8 list-9;\r\n }\r\n .ql-editor ol li.ql-indent-8 {\r\n counter-increment: list-8;\r\n }\r\n .ql-editor ol li.ql-indent-8:before {\r\n content: counter(list-8, lower-roman) \". \";\r\n }\r\n .ql-editor ol li.ql-indent-8 {\r\n counter-reset: list-9;\r\n }\r\n .ql-editor ol li.ql-indent-9 {\r\n counter-increment: list-9;\r\n }\r\n .ql-editor ol li.ql-indent-9:before {\r\n content: counter(list-9, decimal) \". \";\r\n }\r\n .ql-editor .ql-indent-1:not(.ql-direction-rtl) {\r\n padding-left: 3em;\r\n }\r\n .ql-editor li.ql-indent-1:not(.ql-direction-rtl) {\r\n padding-left: 4.5em;\r\n }\r\n .ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {\r\n padding-right: 3em;\r\n }\r\n .ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {\r\n padding-right: 4.5em;\r\n }\r\n .ql-editor .ql-indent-2:not(.ql-direction-rtl) {\r\n padding-left: 6em;\r\n }\r\n .ql-editor li.ql-indent-2:not(.ql-direction-rtl) {\r\n padding-left: 7.5em;\r\n }\r\n .ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {\r\n padding-right: 6em;\r\n }\r\n .ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {\r\n padding-right: 7.5em;\r\n }\r\n .ql-editor .ql-indent-3:not(.ql-direction-rtl) {\r\n padding-left: 9em;\r\n }\r\n .ql-editor li.ql-indent-3:not(.ql-direction-rtl) {\r\n padding-left: 10.5em;\r\n }\r\n .ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {\r\n padding-right: 9em;\r\n }\r\n .ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {\r\n padding-right: 10.5em;\r\n }\r\n .ql-editor .ql-indent-4:not(.ql-direction-rtl) {\r\n padding-left: 12em;\r\n }\r\n .ql-editor li.ql-indent-4:not(.ql-direction-rtl) {\r\n padding-left: 13.5em;\r\n }\r\n .ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {\r\n padding-right: 12em;\r\n }\r\n .ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {\r\n padding-right: 13.5em;\r\n }\r\n .ql-editor .ql-indent-5:not(.ql-direction-rtl) {\r\n padding-left: 15em;\r\n }\r\n .ql-editor li.ql-indent-5:not(.ql-direction-rtl) {\r\n padding-left: 16.5em;\r\n }\r\n .ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {\r\n padding-right: 15em;\r\n }\r\n .ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {\r\n padding-right: 16.5em;\r\n }\r\n .ql-editor .ql-indent-6:not(.ql-direction-rtl) {\r\n padding-left: 18em;\r\n }\r\n .ql-editor li.ql-indent-6:not(.ql-direction-rtl) {\r\n padding-left: 19.5em;\r\n }\r\n .ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {\r\n padding-right: 18em;\r\n }\r\n .ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {\r\n padding-right: 19.5em;\r\n }\r\n .ql-editor .ql-indent-7:not(.ql-direction-rtl) {\r\n padding-left: 21em;\r\n }\r\n .ql-editor li.ql-indent-7:not(.ql-direction-rtl) {\r\n padding-left: 22.5em;\r\n }\r\n .ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {\r\n padding-right: 21em;\r\n }\r\n .ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {\r\n padding-right: 22.5em;\r\n }\r\n .ql-editor .ql-indent-8:not(.ql-direction-rtl) {\r\n padding-left: 24em;\r\n }\r\n .ql-editor li.ql-indent-8:not(.ql-direction-rtl) {\r\n padding-left: 25.5em;\r\n }\r\n .ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {\r\n padding-right: 24em;\r\n }\r\n .ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {\r\n padding-right: 25.5em;\r\n }\r\n .ql-editor .ql-indent-9:not(.ql-direction-rtl) {\r\n padding-left: 27em;\r\n }\r\n .ql-editor li.ql-indent-9:not(.ql-direction-rtl) {\r\n padding-left: 28.5em;\r\n }\r\n .ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {\r\n padding-right: 27em;\r\n }\r\n .ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {\r\n padding-right: 28.5em;\r\n }\r\n .ql-editor .ql-video {\r\n display: block;\r\n max-width: 100%;\r\n }\r\n .ql-editor .ql-video.ql-align-center {\r\n margin: 0 auto;\r\n }\r\n .ql-editor .ql-video.ql-align-right {\r\n margin: 0 0 0 auto;\r\n }\r\n .ql-editor .ql-bg-black {\r\n background-color: ${colors.neutrals.max};\r\n }\r\n .ql-editor .ql-bg-red {\r\n background-color: ${colors.hues.red};\r\n }\r\n .ql-editor .ql-bg-orange {\r\n background-color: ${colors.hues.orange};\r\n }\r\n .ql-editor .ql-bg-yellow {\r\n background-color: ${colors.hues.yellow};\r\n }\r\n .ql-editor .ql-bg-green {\r\n background-color: ${colors.hues.green};\r\n }\r\n .ql-editor .ql-bg-blue {\r\n background-color: ${colors.hues.blue};\r\n }\r\n .ql-editor .ql-bg-purple {\r\n background-color: ${colors.hues.violet};\r\n }\r\n .ql-editor .ql-color-white {\r\n color: ${colors.neutrals.min};\r\n }\r\n .ql-editor .ql-color-red {\r\n color: ${colors.hues.red};\r\n }\r\n .ql-editor .ql-color-orange {\r\n color: ${colors.hues.orange};\r\n }\r\n .ql-editor .ql-color-yellow {\r\n color: ${colors.hues.yellow};\r\n }\r\n .ql-editor .ql-color-green {\r\n color: ${colors.hues.green};\r\n }\r\n .ql-editor .ql-color-blue {\r\n color: ${colors.hues.blue};\r\n }\r\n .ql-editor .ql-color-purple {\r\n color: ${colors.hues.violet};\r\n }\r\n .ql-editor .ql-font-serif {\r\n font-family: ${__1.GlobalTheme.current.fonts.fontFamily};\r\n }\r\n .ql-editor .ql-font-monospace {\r\n font-family: ${__1.GlobalTheme.current.fonts.fontFamilyMono};\r\n }\r\n .ql-editor .ql-size-small {\r\n font-size: 0.75em;\r\n }\r\n .ql-editor .ql-size-large {\r\n font-size: 1.5em;\r\n }\r\n .ql-editor .ql-size-huge {\r\n font-size: 2.5em;\r\n }\r\n .ql-editor .ql-direction-rtl {\r\n direction: rtl;\r\n text-align: inherit;\r\n }\r\n .ql-editor .ql-align-center {\r\n text-align: center;\r\n }\r\n .ql-editor .ql-align-justify {\r\n text-align: justify;\r\n }\r\n .ql-editor .ql-align-right {\r\n text-align: right;\r\n }\r\n .ql-editor.ql-blank::before {\r\n opacity: 0.6;\r\n content: attr(data-placeholder);\r\n font-style: italic;\r\n left: 15px;\r\n pointer-events: none;\r\n position: absolute;\r\n right: 15px;\r\n }\r\n .ql-snow.ql-toolbar:after,\r\n .ql-snow .ql-toolbar:after {\r\n clear: both;\r\n content: \"\";\r\n display: table;\r\n }\r\n .ql-snow.ql-toolbar button,\r\n .ql-snow .ql-toolbar button {\r\n background: none;\r\n border: none;\r\n cursor: pointer;\r\n display: inline-block;\r\n float: left;\r\n height: 24px;\r\n padding: 3px 5px;\r\n width: 28px;\r\n }\r\n .ql-snow.ql-toolbar button svg,\r\n .ql-snow .ql-toolbar button svg {\r\n float: left;\r\n height: 100%;\r\n }\r\n .ql-snow.ql-toolbar button:active:hover,\r\n .ql-snow .ql-toolbar button:active:hover {\r\n outline: none;\r\n }\r\n .ql-snow.ql-toolbar input.ql-image[type=\"file\"],\r\n .ql-snow .ql-toolbar input.ql-image[type=\"file\"] {\r\n display: none;\r\n }\r\n .ql-snow.ql-toolbar button:hover,\r\n .ql-snow .ql-toolbar button:hover,\r\n .ql-snow.ql-toolbar button:focus,\r\n .ql-snow .ql-toolbar button:focus,\r\n .ql-snow.ql-toolbar button.ql-active,\r\n .ql-snow .ql-toolbar button.ql-active,\r\n .ql-snow.ql-toolbar .ql-picker-label:hover,\r\n .ql-snow .ql-toolbar .ql-picker-label:hover,\r\n .ql-snow.ql-toolbar .ql-picker-label.ql-active,\r\n .ql-snow .ql-toolbar .ql-picker-label.ql-active,\r\n .ql-snow.ql-toolbar .ql-picker-item:hover,\r\n .ql-snow .ql-toolbar .ql-picker-item:hover,\r\n .ql-snow.ql-toolbar .ql-picker-item.ql-selected,\r\n .ql-snow .ql-toolbar .ql-picker-item.ql-selected {\r\n color: ${colors.bootstrap.secondaryHigh};\r\n }\r\n .ql-snow.ql-toolbar button:hover .ql-fill,\r\n .ql-snow .ql-toolbar button:hover .ql-fill,\r\n .ql-snow.ql-toolbar button:focus .ql-fill,\r\n .ql-snow .ql-toolbar button:focus .ql-fill,\r\n .ql-snow.ql-toolbar button.ql-active .ql-fill,\r\n .ql-snow .ql-toolbar button.ql-active .ql-fill,\r\n .ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,\r\n .ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,\r\n .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,\r\n .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,\r\n .ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,\r\n .ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,\r\n .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,\r\n .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,\r\n .ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,\r\n .ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,\r\n .ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,\r\n .ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,\r\n .ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,\r\n .ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,\r\n .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,\r\n .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,\r\n .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,\r\n .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,\r\n .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,\r\n .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,\r\n .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,\r\n .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {\r\n fill: ${colors.bootstrap.secondaryHigh};\r\n }\r\n .ql-snow.ql-toolbar button:hover .ql-stroke,\r\n .ql-snow .ql-toolbar button:hover .ql-stroke,\r\n .ql-snow.ql-toolbar button:focus .ql-stroke,\r\n .ql-snow .ql-toolbar button:focus .ql-stroke,\r\n .ql-snow.ql-toolbar button.ql-active .ql-stroke,\r\n .ql-snow .ql-toolbar button.ql-active .ql-stroke,\r\n .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,\r\n .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,\r\n .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,\r\n .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,\r\n .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,\r\n .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,\r\n .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,\r\n .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,\r\n .ql-snow.ql-toolbar button:hover .ql-stroke-miter,\r\n .ql-snow .ql-toolbar button:hover .ql-stroke-miter,\r\n .ql-snow.ql-toolbar button:focus .ql-stroke-miter,\r\n .ql-snow .ql-toolbar button:focus .ql-stroke-miter,\r\n .ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,\r\n .ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,\r\n .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,\r\n .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,\r\n .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,\r\n .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,\r\n .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,\r\n .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,\r\n .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,\r\n .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {\r\n stroke: ${colors.bootstrap.secondaryHigh};\r\n }\r\n @media (pointer: coarse) {\r\n .ql-snow.ql-toolbar button:hover:not(.ql-active),\r\n .ql-snow .ql-toolbar button:hover:not(.ql-active) {\r\n color: ${colors.bootstrap.secondary};\r\n }\r\n .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,\r\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,\r\n .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,\r\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {\r\n fill: ${colors.bootstrap.secondary};\r\n }\r\n .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,\r\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,\r\n .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,\r\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {\r\n stroke: ${colors.bootstrap.secondary};\r\n }\r\n }\r\n .ql-snow {\r\n box-sizing: border-box;\r\n }\r\n .ql-snow * {\r\n box-sizing: border-box;\r\n }\r\n .ql-snow .ql-hidden {\r\n display: none;\r\n }\r\n .ql-snow .ql-out-bottom,\r\n .ql-snow .ql-out-top {\r\n visibility: hidden;\r\n }\r\n .ql-snow .ql-tooltip {\r\n position: absolute;\r\n transform: translateY(10px);\r\n }\r\n .ql-snow .ql-tooltip a {\r\n cursor: pointer;\r\n text-decoration: none;\r\n }\r\n .ql-snow .ql-tooltip.ql-flip {\r\n transform: translateY(-10px);\r\n }\r\n .ql-snow .ql-formats {\r\n display: inline-block;\r\n vertical-align: middle;\r\n }\r\n .ql-snow .ql-formats:after {\r\n clear: both;\r\n content: \"\";\r\n display: table;\r\n }\r\n .ql-snow .ql-stroke {\r\n fill: none;\r\n stroke: ${colors.bootstrap.secondary};\r\n stroke-linecap: round;\r\n stroke-linejoin: round;\r\n stroke-width: 2;\r\n }\r\n .ql-snow .ql-stroke-miter {\r\n fill: none;\r\n stroke: ${colors.bootstrap.secondary};\r\n stroke-miterlimit: 10;\r\n stroke-width: 2;\r\n }\r\n .ql-snow .ql-fill,\r\n .ql-snow .ql-stroke.ql-fill {\r\n fill: ${colors.bootstrap.secondary};\r\n }\r\n .ql-snow .ql-empty {\r\n fill: none;\r\n }\r\n .ql-snow .ql-even {\r\n fill-rule: evenodd;\r\n }\r\n .ql-snow .ql-thin,\r\n .ql-snow .ql-stroke.ql-thin {\r\n stroke-width: 1;\r\n }\r\n .ql-snow .ql-transparent {\r\n opacity: 0.4;\r\n }\r\n .ql-snow .ql-direction svg:last-child {\r\n display: none;\r\n }\r\n .ql-snow .ql-direction.ql-active svg:last-child {\r\n display: inline;\r\n }\r\n .ql-snow .ql-direction.ql-active svg:first-child {\r\n display: none;\r\n }\r\n .ql-snow .ql-editor h1 {\r\n font-size: 2em;\r\n }\r\n .ql-snow .ql-editor h2 {\r\n font-size: 1.5em;\r\n }\r\n .ql-snow .ql-editor h3 {\r\n font-size: 1.17em;\r\n }\r\n .ql-snow .ql-editor h4 {\r\n font-size: 1em;\r\n }\r\n .ql-snow .ql-editor h5 {\r\n font-size: 0.83em;\r\n }\r\n .ql-snow .ql-editor h6 {\r\n font-size: 0.67em;\r\n }\r\n .ql-snow .ql-editor a {\r\n text-decoration: underline;\r\n }\r\n .ql-snow .ql-editor blockquote {\r\n border-left: 4px solid #ccc;\r\n margin-bottom: 5px;\r\n margin-top: 5px;\r\n padding-left: 16px;\r\n }\r\n .ql-snow .ql-editor code,\r\n .ql-snow .ql-editor pre {\r\n background-color: #f0f0f0;\r\n border-radius: 3px;\r\n }\r\n .ql-snow .ql-editor pre {\r\n white-space: pre-wrap;\r\n margin-bottom: 5px;\r\n margin-top: 5px;\r\n padding: 5px 10px;\r\n }\r\n .ql-snow .ql-editor code {\r\n font-size: 85%;\r\n padding: 2px 4px;\r\n }\r\n .ql-snow .ql-editor pre.ql-syntax {\r\n background-color: #23241f;\r\n color: #f8f8f2;\r\n overflow: visible;\r\n }\r\n .ql-snow .ql-editor img {\r\n max-width: 100%;\r\n }\r\n .ql-snow .ql-picker {\r\n color: ${colors.bootstrap.secondary};\r\n display: inline-block;\r\n float: left;\r\n font-size: 14px;\r\n font-weight: 500;\r\n height: 24px;\r\n position: relative;\r\n vertical-align: middle;\r\n }\r\n .ql-snow .ql-picker-label {\r\n cursor: pointer;\r\n display: inline-block;\r\n height: 100%;\r\n padding-left: 8px;\r\n padding-right: 2px;\r\n position: relative;\r\n width: 100%;\r\n }\r\n .ql-snow .ql-picker-label::before {\r\n display: inline-block;\r\n line-height: 22px;\r\n }\r\n .ql-snow .ql-picker-options {\r\n background-color: ${colors.neutrals.min};\r\n display: none;\r\n min-width: 100%;\r\n padding: 4px 8px;\r\n position: absolute;\r\n white-space: nowrap;\r\n }\r\n .ql-snow .ql-picker-options .ql-picker-item {\r\n cursor: pointer;\r\n display: block;\r\n padding-bottom: 5px;\r\n padding-top: 5px;\r\n }\r\n .ql-snow .ql-picker.ql-expanded .ql-picker-label {\r\n color: #ccc;\r\n z-index: 2;\r\n }\r\n .ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill {\r\n fill: #ccc;\r\n }\r\n .ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke {\r\n stroke: #ccc;\r\n }\r\n .ql-snow .ql-picker.ql-expanded .ql-picker-options {\r\n display: block;\r\n margin-top: -1px;\r\n top: 100%;\r\n z-index: 1;\r\n }\r\n .ql-snow .ql-color-picker,\r\n .ql-snow .ql-icon-picker {\r\n width: 28px;\r\n }\r\n .ql-snow .ql-color-picker .ql-picker-label,\r\n .ql-snow .ql-icon-picker .ql-picker-label {\r\n padding: 2px 4px;\r\n }\r\n .ql-snow .ql-color-picker .ql-picker-label svg,\r\n .ql-snow .ql-icon-picker .ql-picker-label svg {\r\n right: 4px;\r\n }\r\n .ql-snow .ql-icon-picker .ql-picker-options {\r\n padding: 4px 0px;\r\n }\r\n .ql-snow .ql-icon-picker .ql-picker-item {\r\n height: 24px;\r\n width: 24px;\r\n padding: 2px 4px;\r\n }\r\n .ql-snow .ql-color-picker .ql-picker-options {\r\n padding: 3px 5px;\r\n width: 152px;\r\n }\r\n .ql-snow .ql-color-picker .ql-picker-item {\r\n border: 1px solid transparent;\r\n float: left;\r\n height: 16px;\r\n margin: 2px;\r\n padding: 0px;\r\n width: 16px;\r\n }\r\n .ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {\r\n position: absolute;\r\n margin-top: -9px;\r\n right: 0;\r\n top: 50%;\r\n width: 18px;\r\n }\r\n .ql-snow\r\n .ql-picker.ql-header\r\n .ql-picker-label[data-label]:not([data-label=\"\"])::before,\r\n .ql-snow\r\n .ql-picker.ql-font\r\n .ql-picker-label[data-label]:not([data-label=\"\"])::before,\r\n .ql-snow\r\n .ql-picker.ql-size\r\n .ql-picker-label[data-label]:not([data-label=\"\"])::before,\r\n .ql-snow\r\n .ql-picker.ql-header\r\n .ql-picker-item[data-label]:not([data-label=\"\"])::before,\r\n .ql-snow\r\n .ql-picker.ql-font\r\n .ql-picker-item[data-label]:not([data-label=\"\"])::before,\r\n .ql-snow\r\n .ql-picker.ql-size\r\n .ql-picker-item[data-label]:not([data-label=\"\"])::before {\r\n content: attr(data-label);\r\n }\r\n .ql-snow .ql-picker.ql-header {\r\n width: 98px;\r\n }\r\n .ql-snow .ql-picker.ql-header .ql-picker-label::before,\r\n .ql-snow .ql-picker.ql-header .ql-picker-item::before {\r\n content: \"Normal\";\r\n }\r\n .ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"1\"]::before,\r\n .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]::before {\r\n content: \"Heading 1\";\r\n }\r\n .ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"2\"]::before,\r\n .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]::before {\r\n content: \"Heading 2\";\r\n }\r\n .ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"3\"]::before,\r\n .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]::before {\r\n content: \"Heading 3\";\r\n }\r\n .ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"4\"]::before,\r\n .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]::before {\r\n content: \"Heading 4\";\r\n }\r\n .ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"5\"]::before,\r\n .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]::before {\r\n content: \"Heading 5\";\r\n }\r\n .ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"6\"]::before,\r\n .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]::before {\r\n content: \"Heading 6\";\r\n }\r\n .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]::before {\r\n font-size: 2em;\r\n }\r\n .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]::before {\r\n font-size: 1.5em;\r\n }\r\n .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]::before {\r\n font-size: 1.17em;\r\n }\r\n .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]::before {\r\n font-size: 1em;\r\n }\r\n .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]::before {\r\n font-size: 0.83em;\r\n }\r\n .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]::before {\r\n font-size: 0.67em;\r\n }\r\n .ql-snow .ql-picker.ql-font {\r\n width: 108px;\r\n }\r\n .ql-snow .ql-picker.ql-font .ql-picker-label::before,\r\n .ql-snow .ql-picker.ql-font .ql-picker-item::before {\r\n content: \"Sans Serif\";\r\n }\r\n .ql-snow .ql-picker.ql-font .ql-picker-label[data-value=\"serif\"]::before,\r\n .ql-snow .ql-picker.ql-font .ql-picker-item[data-value=\"serif\"]::before {\r\n content: \"Serif\";\r\n }\r\n .ql-snow\r\n .ql-picker.ql-font\r\n .ql-picker-label[data-value=\"monospace\"]::before,\r\n .ql-snow\r\n .ql-picker.ql-font\r\n .ql-picker-item[data-value=\"monospace\"]::before {\r\n content: \"Monospace\";\r\n }\r\n .ql-snow .ql-picker.ql-font .ql-picker-item[data-value=\"serif\"]::before {\r\n font-family: ${__1.GlobalTheme.current.fonts.fontFamily};\r\n }\r\n .ql-snow\r\n .ql-picker.ql-font\r\n .ql-picker-item[data-value=\"monospace\"]::before {\r\n font-family: ${__1.GlobalTheme.current.fonts.fontFamilyMono};\r\n }\r\n .ql-snow .ql-picker.ql-size {\r\n width: 98px;\r\n }\r\n .ql-snow .ql-picker.ql-size .ql-picker-label::before,\r\n .ql-snow .ql-picker.ql-size .ql-picker-item::before {\r\n content: \"Normal\";\r\n }\r\n .ql-snow .ql-picker.ql-size .ql-picker-label[data-value=\"small\"]::before,\r\n .ql-snow .ql-picker.ql-size .ql-picker-item[data-value=\"small\"]::before {\r\n content: \"Small\";\r\n }\r\n .ql-snow .ql-picker.ql-size .ql-picker-label[data-value=\"large\"]::before,\r\n .ql-snow .ql-picker.ql-size .ql-picker-item[data-value=\"large\"]::before {\r\n content: \"Large\";\r\n }\r\n .ql-snow .ql-picker.ql-size .ql-picker-label[data-value=\"huge\"]::before,\r\n .ql-snow .ql-picker.ql-size .ql-picker-item[data-value=\"huge\"]::before {\r\n content: \"Huge\";\r\n }\r\n .ql-snow .ql-picker.ql-size .ql-picker-item[data-value=\"small\"]::before {\r\n font-size: 10px;\r\n }\r\n .ql-snow .ql-picker.ql-size .ql-picker-item[data-value=\"large\"]::before {\r\n font-size: 18px;\r\n }\r\n .ql-snow .ql-picker.ql-size .ql-picker-item[data-value=\"huge\"]::before {\r\n font-size: 32px;\r\n }\r\n .ql-snow .ql-color-picker.ql-background .ql-picker-item {\r\n background-color: ${colors.neutrals.min};\r\n }\r\n .ql-snow .ql-color-picker.ql-color .ql-picker-item {\r\n background-color: ${colors.neutrals.max};\r\n }\r\n .ql-toolbar.ql-snow {\r\n border: 1px solid ${colors.neutrals.n500};\r\n box-sizing: border-box;\r\n font-family: ${__1.GlobalTheme.current.fonts.fontFamily};\r\n padding: 8px;\r\n background-color: ${colors.neutrals.midground};\r\n }\r\n .ql-toolbar.ql-snow .ql-formats {\r\n margin-right: 15px;\r\n }\r\n .ql-toolbar.ql-snow .ql-picker-label {\r\n border: 1px solid transparent;\r\n }\r\n .ql-toolbar.ql-snow .ql-picker-options {\r\n border: 1px solid transparent;\r\n box-shadow: rgba(0, 0, 0, 0.2) 0 2px 8px;\r\n }\r\n .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label {\r\n border-color: #ccc;\r\n }\r\n .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {\r\n border-color: #ccc;\r\n }\r\n .ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,\r\n .ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover {\r\n border-color: ${colors.neutrals.max};\r\n }\r\n .ql-toolbar.ql-snow + .ql-container.ql-snow {\r\n border-top: 0px;\r\n }\r\n .ql-snow .ql-tooltip {\r\n background-color: ${colors.neutrals.midground};\r\n border: 1px solid ${colors.neutrals.n500};\r\n box-shadow: 0px 0px 5px ${colors.neutrals.n500};\r\n color: ${colors.bootstrap.secondary};\r\n padding: 5px 12px;\r\n white-space: nowrap;\r\n }\r\n .ql-snow .ql-tooltip::before {\r\n content: \"Visit URL:\";\r\n line-height: 26px;\r\n margin-right: 8px;\r\n }\r\n .ql-snow .ql-tooltip input[type=\"text\"] {\r\n display: none;\r\n border: 1px solid ${colors.neutrals.n500};\r\n font-size: 13px;\r\n height: 26px;\r\n margin: 0px;\r\n padding: 3px 5px;\r\n width: 170px;\r\n }\r\n .ql-snow .ql-tooltip a.ql-preview {\r\n display: inline-block;\r\n max-width: 200px;\r\n overflow-x: hidden;\r\n text-overflow: ellipsis;\r\n vertical-align: top;\r\n }\r\n .ql-snow .ql-tooltip a.ql-action::after {\r\n border-right: 1px solid #ccc;\r\n content: \"Edit\";\r\n margin-left: 16px;\r\n padding-right: 8px;\r\n }\r\n .ql-snow .ql-tooltip a.ql-remove::before {\r\n content: \"Remove\";\r\n margin-left: 8px;\r\n }\r\n .ql-snow .ql-tooltip a {\r\n line-height: 26px;\r\n }\r\n .ql-snow .ql-tooltip.ql-editing a.ql-preview,\r\n .ql-snow .ql-tooltip.ql-editing a.ql-remove {\r\n display: none;\r\n }\r\n .ql-snow .ql-tooltip.ql-editing input[type=\"text\"] {\r\n display: inline-block;\r\n }\r\n .ql-snow .ql-tooltip.ql-editing a.ql-action::after {\r\n border-right: 0px;\r\n content: \"Save\";\r\n padding-right: 0px;\r\n }\r\n .ql-snow .ql-tooltip[data-mode=\"link\"]::before {\r\n content: \"Enter link:\";\r\n }\r\n .ql-snow .ql-tooltip[data-mode=\"formula\"]::before {\r\n content: \"Enter formula:\";\r\n }\r\n .ql-snow .ql-tooltip[data-mode=\"video\"]::before {\r\n content: \"Enter video:\";\r\n }\r\n .ql-snow a {\r\n color: #06c;\r\n }\r\n .ql-container.ql-snow {\r\n border: 1px solid ${colors.neutrals.n500};\r\n background-color: ${colors.neutrals.midground};\r\n }\r\n .ql-container.ql-disabled {\r\n background-color: ${colors.neutrals.n200};\r\n }\r\n\r\n /* Customizations from Soundbite */\r\n\r\n .quill:hover .ql-toolbar,\r\n .quill:hover .ql-container {\r\n border-color: ${colors.neutrals.n500};\r\n }\r\n\r\n .ql-toolbar {\r\n border-top-left-radius: 6px;\r\n border-top-right-radius: 6px;\r\n }\r\n\r\n .ql-container {\r\n font-size: 14px;\r\n border-color: ${colors.neutrals.n200};\r\n border-bottom-left-radius: 6px;\r\n border-bottom-right-radius: 6px;\r\n }\r\n\r\n .ql-container p {\r\n font-size: 14px;\r\n font-weight: 400;\r\n }\r\n\r\n .ql-snow .ql-tooltip a {\r\n color: ${colors.bootstrap.primary};\r\n }\r\n\r\n .ql-tooltip {\r\n border-radius: 6px;\r\n z-index: 1;\r\n }\r\n\r\n &:hover .ql-container.ql-snow,\r\n &:hover .ql-toolbar.ql-snow {\r\n border-color: ${colors.neutrals.n700};\r\n }\r\n\r\n &:focus-within .ql-container.ql-snow,\r\n &:focus-within .ql-toolbar.ql-snow {\r\n border: 1px solid ${colors.bootstrap.primary};\r\n }\r\n\r\n &[aria-disabled=\"true\"] .ql-toolbar {\r\n background-color: ${colors.neutrals.n200};\r\n pointer-events: none;\r\n }\r\n\r\n &[aria-disabled=\"true\"]:hover .ql-container.ql-snow,\r\n &[aria-disabled=\"true\"]:hover .ql-toolbar.ql-snow {\r\n border-color: ${colors.neutrals.n500};\r\n }\r\n `;\r\n return baseStyles;\r\n};\r\nlet baseStyles = undefined;\r\n/**\r\n * A formatted text box with a variety of features\r\n * @param props\r\n */\r\nconst RichText = (props) => {\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n const theme = \"snow\";\r\n const formats = [\"bold\", \"italic\", \"underline\", \"strike\", \"list\", \"link\"];\r\n const modules = {\r\n toolbar: [\r\n [\"link\", \"bold\", \"italic\", { list: \"ordered\" }, { list: \"bullet\" }],\r\n [\"clean\"],\r\n ],\r\n };\r\n const { quill, quillRef } = (0, react_quilljs_1.useQuill)({\r\n theme,\r\n modules,\r\n formats,\r\n placeholder: props.placeholder,\r\n });\r\n // Enable/disable Quill based on props\r\n quill === null || quill === void 0 ? void 0 : quill.enable(!props.disabled);\r\n react_2.default.useEffect(() => {\r\n if (quill) {\r\n if (props.defaultValue && props.defaultValue.length > 0) {\r\n quill.clipboard.dangerouslyPasteHTML(props.defaultValue);\r\n }\r\n quill.on(\"text-change\", () => {\r\n if (props.onChange) {\r\n props.onChange(quill.root.innerHTML);\r\n }\r\n });\r\n }\r\n }, [quill]);\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n if (!baseStyles)\r\n baseStyles = getBaseStyles();\r\n const disabledValue = props.disabled ? \"true\" : \"false\";\r\n return ((0, react_1.jsx)(\"div\", { className: \"sb-rich-text\", \"aria-disabled\": disabledValue, css: baseStyles, title: props.title },\r\n (0, react_1.jsx)(\"div\", { ref: quillRef })));\r\n};\r\nexports.RichText = RichText;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RecurrenceSummary = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst moment_1 = __importDefault(require(\"moment\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\n/** Shows the recurrence behavior of the given series */\r\nclass RecurrenceSummary extends react_1.Component {\r\n render() {\r\n const dateIsoString = this.props.series.template.publish;\r\n if (dateIsoString === undefined)\r\n return react_1.default.createElement(react_1.default.Fragment, null);\r\n const date = (0, moment_1.default)(dateIsoString).local();\r\n const monthAndDayNumber = date.format(\"MMM D\");\r\n const dayOfWeek = date.format(\"dddd\");\r\n const dayOfMonth = date.date();\r\n switch (this.props.series.recurrence) {\r\n case api_1.Recurrence.Daily:\r\n return (react_1.default.createElement(\"span\", null,\r\n \"Every Day\",\r\n \" \",\r\n react_1.default.createElement(\"span\", { className: \"text-muted\" },\r\n \"starting \",\r\n monthAndDayNumber)));\r\n case api_1.Recurrence.Weekday:\r\n return (react_1.default.createElement(\"span\", null,\r\n \"Every Weekday\",\r\n \" \",\r\n react_1.default.createElement(\"span\", { className: \"text-muted\" },\r\n \"starting \",\r\n monthAndDayNumber)));\r\n case api_1.Recurrence.Weekly:\r\n return (react_1.default.createElement(\"span\", null,\r\n \"Every \",\r\n dayOfWeek,\r\n \" \",\r\n react_1.default.createElement(\"span\", { className: \"text-muted\" },\r\n \"starting \",\r\n monthAndDayNumber)));\r\n case api_1.Recurrence.Monthly:\r\n return (react_1.default.createElement(\"span\", null,\r\n \"Every Month\",\r\n \" \",\r\n react_1.default.createElement(\"span\", { className: \"text-muted\" },\r\n \"on day \",\r\n dayOfMonth,\r\n \" starting \",\r\n monthAndDayNumber)));\r\n }\r\n return react_1.default.createElement(react_1.default.Fragment, null);\r\n }\r\n}\r\nexports.RecurrenceSummary = RecurrenceSummary;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SbProgress = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst __1 = require(\"../..\");\r\nlet styles;\r\nconst getStyles = () => {\r\n if (styles == null) {\r\n styles = (0, react_1.css) `\r\n width: 100%;\r\n height: auto;\r\n min-height: 8px;\r\n background-color: ${__1.GlobalTheme.current.colors.neutrals.n600};\r\n\r\n .progress-bar {\r\n height: auto;\r\n overflow: visible;\r\n }\r\n\r\n .sb-progress-bar-title {\r\n text-align: left;\r\n padding: 1rem;\r\n }\r\n `;\r\n }\r\n return styles;\r\n};\r\n/**\r\n * A progress bar with optional title\r\n * @param props\r\n */\r\nconst SbProgress = (props) => {\r\n const width = { width: `${props.progress}%` };\r\n return ((0, react_1.jsx)(\"div\", { className: \"progress sb-progress\", css: getStyles() },\r\n (0, react_1.jsx)(\"div\", { className: \"progress-bar progress-bar-animated sb-progress-background sb-progress-background-go\", role: \"progressbar\", style: width, \"aria-valuenow\": props.progress },\r\n (0, react_1.jsx)(__1.ShowWhen, { is: props.title != null },\r\n (0, react_1.jsx)(\"div\", { className: \"sb-progress-bar-title\" }, props.title)))));\r\n};\r\nexports.SbProgress = SbProgress;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SupportLink = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\n/**\r\n * React component for managing a singleton error dialog\r\n * If the error is an instance of PublicError, it will show it to the user in the dialog\r\n * Otherwise, it will console.error with a helpful header on the message\r\n * */\r\nclass SupportLink extends react_1.Component {\r\n get mailtoLink() {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\r\n // Build a smart mailto link capable of kicking off a support request via email\r\n const encodedTo = encodeURIComponent(`Support@Soundbite.Freshdesk.Com`);\r\n const encodedSubject = encodeURIComponent(`Soundbite Error Support Request: ${((_a = this.props.error) === null || _a === void 0 ? void 0 : _a.name) || \"Error\"}`);\r\n const errName = ((_b = this.props.error) === null || _b === void 0 ? void 0 : _b.name) || \"Error\";\r\n const errMsg = ((_c = this.props.error) === null || _c === void 0 ? void 0 : _c.message) || \"No Message\";\r\n const currentUrl = window.location.href;\r\n const inErrName = ((_e = (_d = this.props.error) === null || _d === void 0 ? void 0 : _d.innerError) === null || _e === void 0 ? void 0 : _e.name) || \"No Inner Error\";\r\n const inErrMsg = ((_g = (_f = this.props.error) === null || _f === void 0 ? void 0 : _f.innerError) === null || _g === void 0 ? void 0 : _g.message) || \"No Inner Error Message\";\r\n const inErrStack = ((_j = (_h = this.props.error) === null || _h === void 0 ? void 0 : _h.innerError) === null || _j === void 0 ? void 0 : _j.stack) || \"No Stack\";\r\n // TODO: Include current user and organization information\r\n const encodedBody = encodeURIComponent(`Support Request: ${errName}\\n${errMsg}\\n\\nOn page: ${currentUrl}\\n\\nInner Error:\\n${inErrName}\\n${inErrMsg}\\n${inErrStack}`);\r\n const mailtoLink = `mailto:${encodedTo}?subject=${encodedSubject}&body=${encodedBody}`;\r\n return mailtoLink;\r\n }\r\n render() {\r\n return react_1.default.createElement(\"a\", { href: this.mailtoLink }, this.props.children);\r\n }\r\n}\r\nexports.SupportLink = SupportLink;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Toggle = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\n/**\r\n * Renders a boolean toggle with a general iOS-liked look and feel\r\n * */\r\nclass Toggle extends react_1.Component {\r\n constructor(props) {\r\n var _a;\r\n super(props);\r\n this.state = {\r\n isEnabled: (_a = props.defaultValue) !== null && _a !== void 0 ? _a : false,\r\n };\r\n this.onToggle = this.onToggle.bind(this);\r\n }\r\n onToggle(event) {\r\n const isEnabled = event.target.checked;\r\n this.setState({ isEnabled });\r\n if (this.props.onToggle)\r\n this.props.onToggle(isEnabled);\r\n }\r\n render() {\r\n return (react_1.default.createElement(\"label\", { className: `custom-toggle sb-toggle ${this.props.className}`, title: this.props.title },\r\n react_1.default.createElement(\"input\", { type: \"checkbox\", defaultChecked: this.state.isEnabled, onChange: this.onToggle, disabled: this.props.disabled, title: this.props.title != null ? `Toggle ${this.props.title}` : undefined }),\r\n react_1.default.createElement(\"span\", { className: \"custom-toggle-slider rounded-circle\", \"data-label-off\": \"No\", \"data-label-on\": \"Yes\" })));\r\n }\r\n}\r\nexports.Toggle = Toggle;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EmailPicker = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = require(\"react\");\r\nconst creatable_1 = __importDefault(require(\"react-select/creatable\"));\r\nconst animated_1 = __importDefault(require(\"react-select/animated\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\n/**\r\n * Enables the user to generate multiple e-mail addresses\r\n * */\r\nclass EmailPicker extends react_2.Component {\r\n constructor(props) {\r\n super(props);\r\n this.onChange = this.onChange.bind(this);\r\n this.onCreateOption = this.onCreateOption.bind(this);\r\n this.onFormatCreateLabel = this.onFormatCreateLabel.bind(this);\r\n this.state = {\r\n options: [],\r\n value: undefined,\r\n };\r\n }\r\n firePropsOnChange(newValue) {\r\n const emails = new Array();\r\n const listOfOptions = newValue == null\r\n ? []\r\n : newValue;\r\n for (const option of listOfOptions) {\r\n emails.push(option.value);\r\n }\r\n this.props.onChange(emails);\r\n }\r\n onChange(newValue) {\r\n this.setState({ value: newValue });\r\n this.firePropsOnChange(newValue);\r\n }\r\n onCreateOption(inputValue) {\r\n const email = api_1.Utils.validateEmail(inputValue);\r\n if (!email)\r\n return;\r\n const newOption = {\r\n label: email,\r\n value: email,\r\n };\r\n let newValue = [...(this.state.value || []), newOption];\r\n this.setState({\r\n options: [...this.state.options, newOption],\r\n value: newValue,\r\n });\r\n this.firePropsOnChange(newValue);\r\n }\r\n onFormatCreateLabel(inputValue) {\r\n return `Send Invite to ${inputValue}...`;\r\n }\r\n render() {\r\n const animatedComponents = (0, animated_1.default)();\r\n const { options, value } = this.state;\r\n return ((0, react_1.jsx)(creatable_1.default, { className: \"sb-picker\", classNamePrefix: \"sb-picker\", components: animatedComponents, placeholder: \"Enter Work E-Mail...\", isMulti: true, onChange: this.onChange, onCreateOption: this.onCreateOption, options: options, value: value, isDisabled: this.props.disabled, formatCreateLabel: this.onFormatCreateLabel }));\r\n }\r\n}\r\nexports.EmailPicker = EmailPicker;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GroupPicker = exports.GroupPickerLoadType = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst store_1 = require(\"../../store\");\r\nconst ItemPicker_1 = require(\"./ItemPicker\");\r\nconst react_2 = require(\"react\");\r\n/***************************************************************************************************\r\n * Enums\r\n **************************************************************************************************/\r\n/**\r\n * Enumeration of the varoius automatic group loading options for the group picker.\r\n */\r\nvar GroupPickerLoadType;\r\n(function (GroupPickerLoadType) {\r\n /** Do not automatically load groups */\r\n GroupPickerLoadType[GroupPickerLoadType[\"None\"] = 0] = \"None\";\r\n /** Only groups to which the user is a member should be loaded */\r\n GroupPickerLoadType[GroupPickerLoadType[\"MyGroups\"] = 1] = \"MyGroups\";\r\n /** All groups should be loaded */\r\n GroupPickerLoadType[GroupPickerLoadType[\"AllGroups\"] = 2] = \"AllGroups\";\r\n})(GroupPickerLoadType = exports.GroupPickerLoadType || (exports.GroupPickerLoadType = {}));\r\n/**\r\n * An interactive list of groups in the given org\r\n * @param props\r\n */\r\nconst GroupPicker = (props) => {\r\n //////////[ Define State ]////////////////////////////////////////////////////////////////////////\r\n var _a;\r\n let [isLoaded, setIsLoaded] = (0, react_1.useState)(false);\r\n let [groups, setGroups] = (0, react_1.useState)([]);\r\n //////////[ Variables ]///////////////////////////////////////////////////////////////////////////\r\n const loadMode = (_a = props.loadMode) !== null && _a !== void 0 ? _a : GroupPickerLoadType.MyGroups;\r\n const placeHolder = isLoaded == true ? props.placeHolder : \"Loading...\";\r\n const disabled = isLoaded == true ? props.disabled : true;\r\n const isMulti = props.isMulti === true;\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n function initialize() {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // Only auto initialize when no groups specified and load mode is not none\r\n if (!props.groups && loadMode !== GroupPickerLoadType.None) {\r\n setIsLoaded(false);\r\n if (store_1.WidgetStore.isInitialized) {\r\n const groups = loadMode === GroupPickerLoadType.AllGroups\r\n ? yield store_1.WidgetStore.organizations.readMyGroupsAsync(props.orgRoute, true)\r\n : yield store_1.WidgetStore.organizations.readGroupsAsync(props.orgRoute, true);\r\n setIsLoaded(true);\r\n setGroups(groups);\r\n }\r\n }\r\n else {\r\n setGroups((_a = props.groups) !== null && _a !== void 0 ? _a : []);\r\n setIsLoaded(true);\r\n }\r\n });\r\n }\r\n (0, react_2.useEffect)(() => {\r\n initialize();\r\n }, [store_1.WidgetStore.isInitialized, props.groups]);\r\n //////////[ Render ]//////////////////////////////////////////////////////////////////////////////\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(ItemPicker_1.ItemPicker, { isMulti: isMulti, items: groups, onItemSelected: props.onItemSelected, onChange: props.onChange, placeHolder: placeHolder, disabled: disabled, getName: (i) => i.name, getValue: (i) => i })));\r\n};\r\nexports.GroupPicker = GroupPicker;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ParticipantGroupPicker = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = require(\"react\");\r\nconst react_select_1 = __importDefault(require(\"react-select\"));\r\nconst animated_1 = __importDefault(require(\"react-select/animated\"));\r\n/** Picks groups from the given org */\r\nclass ParticipantGroupPicker extends react_2.Component {\r\n static convertToOptions(groups) {\r\n if (!groups)\r\n return [];\r\n return groups.map((grp) => {\r\n return {\r\n label: grp.name,\r\n value: grp.route.toString(),\r\n };\r\n });\r\n }\r\n constructor(props) {\r\n super(props);\r\n this.animatedComponents = (0, animated_1.default)();\r\n this.onChange = (selectedOptions, actionMeta) => {\r\n var _a;\r\n switch (actionMeta.action) {\r\n case \"remove-value\":\r\n case \"pop-value\":\r\n if ((_a = actionMeta.removedValue) === null || _a === void 0 ? void 0 : _a.isFixed)\r\n return;\r\n break;\r\n case \"clear\":\r\n return;\r\n }\r\n const selectedGroups = selectedOptions || [];\r\n this.setState({ selectedOptions: selectedGroups });\r\n if (this.props.onChangeParticipantGroup)\r\n this.props.onChangeParticipantGroup(selectedGroups);\r\n if (!this.props.onChangeGroup)\r\n return;\r\n let people = [];\r\n if (this.props.groups) {\r\n for (let grp of this.props.groups) {\r\n let isGroupSelected = selectedGroups.filter((p) => {\r\n return p.value === grp.route;\r\n }).length > 0;\r\n if (isGroupSelected)\r\n people.push(grp);\r\n }\r\n }\r\n this.props.onChangeGroup(people);\r\n };\r\n let allOptions = ParticipantGroupPicker.convertToOptions(props.groups);\r\n let selectedOptions = props.defaultGroups || allOptions;\r\n this.state = {\r\n allOptions,\r\n selectedOptions,\r\n };\r\n }\r\n render() {\r\n return ((0, react_1.jsx)(\"div\", { title: this.props.title, className: this.props.className },\r\n (0, react_1.jsx)(react_select_1.default, { className: \"sb-picker\", classNamePrefix: \"sb-picker\", options: this.state.allOptions, value: this.state.selectedOptions, components: this.animatedComponents, isMulti: true, closeMenuOnSelect: false, onChange: this.onChange.bind(this), isClearable: false, isDisabled: this.props.disabled, placeholder: \"Select Group...\" })));\r\n }\r\n}\r\nexports.ParticipantGroupPicker = ParticipantGroupPicker;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ParticipantPicker = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = require(\"react\");\r\nconst react_select_1 = __importDefault(require(\"react-select\"));\r\nconst animated_1 = __importDefault(require(\"react-select/animated\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst controls_1 = require(\"../controls\");\r\n/** Picks individuals from the given org */\r\nclass ParticipantPicker extends react_2.Component {\r\n static peopleToOptions(people) {\r\n if (!people)\r\n return [];\r\n return people.map((person) => {\r\n return {\r\n label: api_1.Utils.userDisplay(person.user),\r\n value: person.route,\r\n };\r\n });\r\n }\r\n constructor(props) {\r\n super(props);\r\n this.animatedComponents = (0, animated_1.default)();\r\n this.onChange = (selectedOptions, actionMeta) => {\r\n var _a;\r\n switch (actionMeta.action) {\r\n case \"remove-value\":\r\n case \"pop-value\":\r\n if ((_a = actionMeta.removedValue) === null || _a === void 0 ? void 0 : _a.isFixed)\r\n return;\r\n break;\r\n case \"clear\":\r\n return;\r\n }\r\n this.setState({ selectedOptions: selectedOptions });\r\n const participants = selectedOptions || [];\r\n if (this.props.onParticipantChange)\r\n this.props.onParticipantChange(participants);\r\n if (!this.props.onPeopleChange)\r\n return;\r\n let people = [];\r\n if (this.props.people) {\r\n for (let person of this.props.people) {\r\n // TODO: Better perf\r\n let isPersonSelected = participants.filter((p) => {\r\n return p.value === person.route;\r\n }).length > 0;\r\n if (isPersonSelected)\r\n people.push(person);\r\n }\r\n }\r\n this.props.onPeopleChange(people);\r\n };\r\n let peopleAsOptions = ParticipantPicker.peopleToOptions(props.people);\r\n let defaultParticipants = props.defaultParticipants ||\r\n ParticipantPicker.peopleToOptions(props.people);\r\n this.state = {\r\n selectedOptions: defaultParticipants,\r\n allOptions: peopleAsOptions,\r\n };\r\n }\r\n render() {\r\n return ((0, react_1.jsx)(controls_1.Loader, { isLoadedWhen: this.props.people != null },\r\n (0, react_1.jsx)(react_select_1.default, { className: \"sb-picker\", classNamePrefix: \"sb-picker\", options: this.state.allOptions, value: this.state.selectedOptions, components: this.animatedComponents, isMulti: true, closeMenuOnSelect: false, onChange: this.onChange.bind(this), isClearable: false, isDisabled: this.props.disabled, placeholder: \"Select Person...\" })));\r\n }\r\n}\r\nexports.ParticipantPicker = ParticipantPicker;\r\n","\"use strict\";\r\n// This file is directly imported from the react-select-async-paginate project due to React version conflicts\r\n// https://github.com/vtaits/react-select-async-paginate\r\n// At some point, we should catch up to React 17, then it should be possible to replace these files with the real npm package again\r\nvar __rest = (this && this.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.withAsyncPaginate = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst useAsyncPaginate_1 = require(\"./useAsyncPaginate\");\r\nconst useComponents_1 = require(\"./useComponents\");\r\nfunction withAsyncPaginate(\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nSelectComponent) {\r\n function WithAsyncPaginate(props) {\r\n const { components, selectRef, isLoading: isLoadingProp, useComponents: useComponentsProp, useAsyncPaginate: useAsyncPaginateProp, cacheUniqs } = props, rest = __rest(props, [\"components\", \"selectRef\", \"isLoading\", \"useComponents\", \"useAsyncPaginate\", \"cacheUniqs\"]);\r\n // WARNING: Type inconsistency in the library\r\n if (useAsyncPaginateProp == null) {\r\n throw new Error(\"useAsyncPaginateProp cannot be null\");\r\n }\r\n const asyncPaginateProps = useAsyncPaginateProp(rest, cacheUniqs);\r\n // WARNING: Type inconsistency in the library\r\n if (useComponentsProp == null) {\r\n throw new Error(\"useComponentsProp cannot be null\");\r\n }\r\n const processedComponents = useComponentsProp(components);\r\n const isLoading = typeof isLoadingProp === \"boolean\"\r\n ? isLoadingProp\r\n : asyncPaginateProps.isLoading;\r\n return (react_1.default.createElement(SelectComponent, Object.assign({}, props, asyncPaginateProps, { isLoading: isLoading, components: processedComponents, ref: selectRef })));\r\n }\r\n WithAsyncPaginate.defaultProps = {\r\n selectRef: null,\r\n cacheUniqs: [],\r\n components: {},\r\n useComponents: useComponents_1.useComponents,\r\n useAsyncPaginate: useAsyncPaginate_1.useAsyncPaginate,\r\n };\r\n return WithAsyncPaginate;\r\n}\r\nexports.withAsyncPaginate = withAsyncPaginate;\r\n","\"use strict\";\r\n// This file is directly imported from the react-select-async-paginate project due to React version conflicts\r\n// https://github.com/vtaits/react-select-async-paginate\r\n// At some point, we should catch up to React 17, then it should be possible to replace these files with the real npm package again\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.defaultShouldLoadMore = void 0;\r\nconst AVAILABLE_DELTA = 10;\r\nconst defaultShouldLoadMore = (scrollHeight, clientHeight, scrollTop) => {\r\n const bottomBorder = scrollHeight - clientHeight - AVAILABLE_DELTA;\r\n return bottomBorder < scrollTop;\r\n};\r\nexports.defaultShouldLoadMore = defaultShouldLoadMore;\r\n","\"use strict\";\r\n// This file is directly imported from the react-select-async-paginate project due to React version conflicts\r\n// https://github.com/vtaits/react-select-async-paginate\r\n// At some point, we should catch up to React 17, then it should be possible to replace these files with the real npm package again\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.defaultReduceOptions = void 0;\r\nconst defaultReduceOptions = (prevOptions, loadedOptions) => [...prevOptions, ...loadedOptions];\r\nexports.defaultReduceOptions = defaultReduceOptions;\r\n","\"use strict\";\r\n// This file is directly imported from the react-select-async-paginate project due to React version conflicts\r\n// https://github.com/vtaits/react-select-async-paginate\r\n// At some point, we should catch up to React 17, then it should be possible to replace these files with the real npm package again\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.reduceGroupedOptions = void 0;\r\nconst reduceGroupedOptions = (prevOptions, loadedOptions) => {\r\n const res = prevOptions.slice();\r\n const mapLabelToIndex = {};\r\n let prevOptionsIndex = 0;\r\n const prevOptionsLength = prevOptions.length;\r\n loadedOptions.forEach((group) => {\r\n const { label } = group;\r\n let groupIndex = mapLabelToIndex[label];\r\n if (typeof groupIndex !== \"number\") {\r\n for (; prevOptionsIndex < prevOptionsLength &&\r\n typeof mapLabelToIndex[label] !== \"number\"; ++prevOptionsIndex) {\r\n const prevGroup = prevOptions[prevOptionsIndex];\r\n mapLabelToIndex[prevGroup.label] = prevOptionsIndex;\r\n }\r\n groupIndex = mapLabelToIndex[label];\r\n }\r\n if (typeof groupIndex !== \"number\") {\r\n mapLabelToIndex[label] = res.length;\r\n res.push(group);\r\n return;\r\n }\r\n res[groupIndex] = Object.assign(Object.assign({}, res[groupIndex]), { options: res[groupIndex].options.concat(group.options) });\r\n });\r\n return res;\r\n};\r\nexports.reduceGroupedOptions = reduceGroupedOptions;\r\n","\"use strict\";\r\n// This file is directly imported from the react-select-async-paginate project due to React version conflicts\r\n// https://github.com/vtaits/react-select-async-paginate\r\n// At some point, we should catch up to React 17, then it should be possible to replace these files with the real npm package again\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.shouldLoadMorePickerPages = void 0;\r\n/**\r\n * Consumed by a paginating picker to evaluate if we're close enough to the bottom of the picker frame\r\n * @param scrollHeight\r\n * @param clientHeight\r\n * @param scrollTop\r\n */\r\nconst shouldLoadMorePickerPages = (scrollHeight, clientHeight, scrollTop) => {\r\n if (scrollHeight <= clientHeight) {\r\n return false;\r\n }\r\n // Is the bottom of the frame touching the total height yet within a boundary?\r\n const bottomOfFrame = scrollTop + clientHeight;\r\n const padding = 2;\r\n const threshold = scrollHeight - bottomOfFrame - padding;\r\n const shouldLoad = threshold < 0;\r\n return shouldLoad;\r\n};\r\nexports.shouldLoadMorePickerPages = shouldLoadMorePickerPages;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SchedulePicker = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst moment_1 = __importDefault(require(\"moment\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst DateTimePicker_1 = require(\"./DateTimePicker\");\r\nconst controls_1 = require(\"../controls\");\r\n/** A combined picker for datetime and recurrence */\r\nclass SchedulePicker extends react_1.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { session: props.session };\r\n this.onRecurrenceChange = this.onRecurrenceChange.bind(this);\r\n this.onLimitChange = this.onLimitChange.bind(this);\r\n this.onReminderChange = this.onReminderChange.bind(this);\r\n this.onDeadlineChange = this.onDeadlineChange.bind(this);\r\n this.isReminderValid = this.isReminderValid.bind(this);\r\n }\r\n onRecurrenceChange(event) {\r\n var session = this.state.session;\r\n session.recurrence = parseInt(event.currentTarget.value);\r\n this.setState({ session: session });\r\n if (this.props.onSessionChange)\r\n this.props.onSessionChange(session);\r\n }\r\n recurrence(allowRecurrence) {\r\n const date = this.state.session.publish === undefined\r\n ? new Date()\r\n : new Date(this.state.session.publish);\r\n const monthAndDayNumber = Intl.DateTimeFormat(\"en-US\", {\r\n month: \"short\",\r\n day: \"numeric\",\r\n }).format(date);\r\n const dayOfWeek = Intl.DateTimeFormat(\"en-US\", { weekday: \"short\" }).format(date);\r\n const dayOfMonth = date.getDate();\r\n const daily = `Every day starting ${monthAndDayNumber}`;\r\n const weekday = `Every Mon-Fri starting ${monthAndDayNumber}`;\r\n const weekly = `Every ${dayOfWeek} starting ${monthAndDayNumber}`;\r\n const monthly = `Every month on day ${dayOfMonth} starting ${monthAndDayNumber}`;\r\n return (react_1.default.createElement(reactstrap_1.Row, null,\r\n react_1.default.createElement(reactstrap_1.Col, null,\r\n react_1.default.createElement(reactstrap_1.FormGroup, null,\r\n react_1.default.createElement(controls_1.LabelInfo, { label: \"Recurrence\", info: \"How often this session will repeat\" }),\r\n react_1.default.createElement(reactstrap_1.InputGroup, { \"aria-disabled\": this.props.disabled },\r\n react_1.default.createElement(controls_1.FaPrepend, { icon: \"sync-alt\" }),\r\n react_1.default.createElement(\"select\", { className: \"form-control sb-input-group-height-fix\", value: allowRecurrence\r\n ? this.state.session.recurrence\r\n : api_1.Recurrence.NoRepeat, onChange: this.onRecurrenceChange, disabled: allowRecurrence ? this.props.disabled : true, title: \"Session Recurrence Type\" },\r\n react_1.default.createElement(\"option\", { value: api_1.Recurrence.NoRepeat }, \"Does Not Repeat\"),\r\n react_1.default.createElement(\"option\", { value: api_1.Recurrence.Daily },\r\n \"Daily - \",\r\n daily),\r\n react_1.default.createElement(\"option\", { value: api_1.Recurrence.Weekday },\r\n \"Every Weekday - \",\r\n weekday),\r\n react_1.default.createElement(\"option\", { value: api_1.Recurrence.Weekly },\r\n \"Weekly - \",\r\n weekly),\r\n react_1.default.createElement(\"option\", { value: api_1.Recurrence.Monthly },\r\n \"Monthly - \",\r\n monthly))),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: this.state.session.recurrence !== api_1.Recurrence.NoRepeat },\r\n react_1.default.createElement(\"span\", { className: \"text-muted\" }, \"Reminder will be sent out to the host 24 hours ahead of time\"))))));\r\n }\r\n onLimitChange(event) {\r\n // TODO: Validation\r\n let session = this.state.session;\r\n session.limit = Math.round(parseInt(event.target.value) * 60);\r\n this.setState({ session: session });\r\n if (this.props.onSessionChange)\r\n this.props.onSessionChange(session);\r\n }\r\n onReminderChange(dateIsoString) {\r\n const session = this.state.session;\r\n session.reminder = dateIsoString;\r\n this.setState({ session: session });\r\n if (this.props.onSessionChange)\r\n this.props.onSessionChange(session);\r\n }\r\n onDeadlineChange(dateIsoString) {\r\n const session = this.state.session;\r\n session.publish = dateIsoString;\r\n this.setState({ session: session });\r\n if (this.props.onSessionChange)\r\n this.props.onSessionChange(session);\r\n }\r\n isReminderValid(current, selected) {\r\n const deadline = this.state.session.publish\r\n ? (0, moment_1.default)(this.state.session.publish)\r\n : (0, moment_1.default)();\r\n return current.isBefore(deadline);\r\n }\r\n scheduler() {\r\n return (react_1.default.createElement(controls_1.ShowWhen, { is: !this.state.session.publishSent },\r\n react_1.default.createElement(reactstrap_1.Row, null,\r\n react_1.default.createElement(reactstrap_1.Col, null,\r\n react_1.default.createElement(controls_1.LabelInfo, { label: \"Schedule\", info: \"When this session will publish\" }),\r\n react_1.default.createElement(DateTimePicker_1.DateTimePicker, { togglable: this.state.session.recurrence === api_1.Recurrence.NoRepeat, noneTitle: \"Publish Now\", onDateChange: this.onDeadlineChange, title: \"Publish\", defaultValueDateIsoString: this.state.session.publish, disabled: this.props.disabled })))));\r\n }\r\n timeLimit() {\r\n return (react_1.default.createElement(controls_1.ShowWhen, { is: this.state.session.limit > 0 },\r\n react_1.default.createElement(reactstrap_1.Row, null,\r\n react_1.default.createElement(reactstrap_1.Col, null,\r\n react_1.default.createElement(controls_1.LabelInfo, { label: \"Time Limit\", info: \"Number of minutes speaker(s) can record\" }),\r\n react_1.default.createElement(\"div\", { className: \"form-group\" },\r\n react_1.default.createElement(reactstrap_1.InputGroup, { \"aria-disabled\": this.props.disabled },\r\n react_1.default.createElement(controls_1.FaPrepend, { icon: \"hourglass-half\" }),\r\n react_1.default.createElement(\"input\", { placeholder: \"Time Limit\", type: \"text\", className: \"form-control\", \"aria-label\": \"Minutes\", defaultValue: (this.state.session.limit / 60).toString(), onChange: this.onLimitChange, disabled: this.props.disabled, title: \"Time Limit in Minutes\" }),\r\n react_1.default.createElement(\"div\", { className: \"input-group-append\" },\r\n react_1.default.createElement(\"span\", { className: \"input-group-text\" }, \"Minutes\"))))))));\r\n }\r\n render() {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n this.timeLimit(),\r\n this.scheduler(),\r\n this.recurrence(this.props.allowRecurrence === false ? false : true)));\r\n }\r\n}\r\nexports.SchedulePicker = SchedulePicker;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./ActivityCards\"), exports);\r\n__exportStar(require(\"./ContentCards\"), exports);\r\n__exportStar(require(\"./KpiCard\"), exports);\r\n__exportStar(require(\"./ReportView\"), exports);\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TableFeedWidget = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst moment_1 = __importDefault(require(\"moment\"));\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst RecordBtn_1 = require(\"../components/RecordBtn\");\r\nconst EmptyCardBody_1 = require(\"../components/EmptyCardBody\");\r\nconst WidgetStore_1 = require(\"../store/WidgetStore\");\r\nconst controls_1 = require(\"../components/controls\");\r\nconst SbButton_1 = require(\"../components/SbButton\");\r\n/***************************************************************************************************\r\n * Constants\r\n **************************************************************************************************/\r\nconst defaultFeedName = \"Feed\";\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexports.TableFeedWidget = (0, mobx_react_lite_1.observer)((props) => {\r\n var _a;\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n const [currentUser, setCurrentUser] = (0, react_2.useState)(undefined);\r\n const [isLoading, setIsloading] = (0, react_2.useState)(false);\r\n const [feedSessions, setFeedSessions] = (0, react_2.useState)();\r\n const [title, setTitle] = (0, react_2.useState)(defaultFeedName);\r\n const [emptyMessage, setEmptyMessage] = (0, react_2.useState)(\"You are all caught up on your Soundbite Sessions\");\r\n const [isCreateEnabled, setCreateEnabled] = (0, react_2.useState)(!props.isReadOnly);\r\n const [errorTitle, setErrorTitle] = (0, react_2.useState)(undefined);\r\n const showNoFeedImage = props.showNoFeedImage === false ? false : true;\r\n const showTitle = props.showTitle === false ? false : true;\r\n const isAdmin = WidgetStore_1.WidgetStore.isPersonRole(api_1.PersonRole.Admin);\r\n const icon = (_a = props.icon) !== null && _a !== void 0 ? _a : free_solid_svg_icons_1.faPodcast;\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n function orderSessions(sessions) {\r\n if (sessions == null) {\r\n return [];\r\n }\r\n const ret = sessions.sort((a, b) => {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n return ((_b = (_a = a.publishSent) !== null && _a !== void 0 ? _a : a.publish) !== null && _b !== void 0 ? _b : \"\") <\r\n ((_d = (_c = b.publishSent) !== null && _c !== void 0 ? _c : b.publish) !== null && _d !== void 0 ? _d : \"\")\r\n ? 1\r\n : ((_f = (_e = a.publishSent) !== null && _e !== void 0 ? _e : a.publish) !== null && _f !== void 0 ? _f : \"\") >\r\n ((_h = (_g = b.publishSent) !== null && _g !== void 0 ? _g : b.publish) !== null && _h !== void 0 ? _h : \"\")\r\n ? -1\r\n : 0;\r\n });\r\n return ret;\r\n }\r\n function applySessions(sessions) {\r\n const feed = orderSessions(sessions);\r\n setFeedSessions(feed);\r\n setIsloading(false);\r\n }\r\n function loadSessions(inGroup, allowCache = true) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (isLoading) {\r\n return;\r\n }\r\n setIsloading(true);\r\n // Ensure defaults are set before proceeding\r\n if (currentUser == null || props.orgRoute == null)\r\n return;\r\n // Determine whether the sessions were passed directly to the widget\r\n if (props.sessions) {\r\n // Use the explicitly specified sessions\r\n applySessions(props.sessions);\r\n return;\r\n }\r\n if (!allowCache) {\r\n setFeedSessions(undefined);\r\n }\r\n // Determine whether a group context was specified\r\n if (props.groupRoute) {\r\n // Determine whether the current user is part of the specified group\r\n let canLoadGroup = inGroup;\r\n if (!inGroup) {\r\n let outsideGroup = yield WidgetStore_1.WidgetStore.groups.readGroupAsync((_b = (_a = WidgetStore_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.details.route) !== null && _b !== void 0 ? _b : \"\", props.groupRoute);\r\n canLoadGroup = outsideGroup != null;\r\n }\r\n if (canLoadGroup) {\r\n const securityType = (_e = (_c = props.securityType) !== null && _c !== void 0 ? _c : (_d = WidgetStore_1.WidgetStore.organizations.currentOrg) === null || _d === void 0 ? void 0 : _d.settings.sessions.defaultSessionSecurity) !== null && _e !== void 0 ? _e : api_1.SessionSecurityType.Protected;\r\n const feed = yield WidgetStore_1.WidgetStore.sessions.readGroupFeedAsync(props.orgRoute, props.groupRoute, securityType, allowCache);\r\n applySessions(feed);\r\n }\r\n else {\r\n throw new api_1.PublicError(undefined, \"Cannot load feed for team, no access\");\r\n }\r\n }\r\n else {\r\n // Use sessions from \"My Feed\"\r\n const feed = yield WidgetStore_1.WidgetStore.sessions.readOrgFeedAsync(props.orgRoute, (_h = (_f = props.securityType) !== null && _f !== void 0 ? _f : (_g = WidgetStore_1.WidgetStore.organizations.currentOrg) === null || _g === void 0 ? void 0 : _g.settings.sessions.defaultSessionSecurity) !== null && _h !== void 0 ? _h : api_1.SessionSecurityType.Protected, allowCache);\r\n applySessions(feed);\r\n }\r\n });\r\n }\r\n /** Gets the current group for the context and whether or not the current user appears to be in it */\r\n function getGroup(allowCache) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!props.orgRoute || !props.groupRoute) {\r\n return { inGroup: false };\r\n }\r\n try {\r\n const group = yield WidgetStore_1.WidgetStore.groups.readGroupAsync(props.orgRoute, props.groupRoute, allowCache);\r\n const inGroup = group.memberRole >= api_1.MemberRole.Member;\r\n return { group, inGroup };\r\n }\r\n catch (err) {\r\n setErrorTitle(`Cannot access group feed for ${props.groupRoute}`);\r\n return { inGroup: false };\r\n }\r\n });\r\n }\r\n /**\r\n * Async retrieve the title given the current context and optionally a current group\r\n * @param group\r\n */\r\n function getTitle(group) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (props.title) {\r\n return props.title;\r\n }\r\n if (group) {\r\n return `${group.name} Feed`;\r\n }\r\n if (props.orgRoute) {\r\n const org = yield WidgetStore_1.WidgetStore.organizations.readOrgAsync(props.orgRoute);\r\n if (org) {\r\n return `${org.details.name} Feed`;\r\n }\r\n }\r\n return \"My Feed\";\r\n });\r\n }\r\n function loadTitle(group) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const newTitle = yield getTitle(group);\r\n setTitle(newTitle);\r\n });\r\n }\r\n function load(allowCache = true) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // Set defaults\r\n setCurrentUser((_a = props.currentUser) !== null && _a !== void 0 ? _a : (_b = WidgetStore_1.WidgetStore.organizations.currentOrg) === null || _b === void 0 ? void 0 : _b.details.me);\r\n if (!allowCache) {\r\n setIsloading(false);\r\n setFeedSessions(undefined);\r\n }\r\n const { group, inGroup } = yield getGroup(allowCache);\r\n yield loadTitle(group);\r\n yield loadSessions(inGroup, allowCache);\r\n const isCreateEnabled = (_c = props.showCreateButton) !== null && _c !== void 0 ? _c : true;\r\n setCreateEnabled(isCreateEnabled);\r\n const noun = props.groupRoute != null && props.groupRoute.trim().length > 0\r\n ? \"team\"\r\n : \"organization\";\r\n const noFeedMessage = isCreateEnabled\r\n ? (_d = props.noFeedMessage) !== null && _d !== void 0 ? _d : `Try making a Soundbite Session for your ${noun} to start collaborating`\r\n : `You are all caught up on Soundbite Sessions for your ${noun}`;\r\n setEmptyMessage(noFeedMessage);\r\n });\r\n }\r\n (0, react_2.useEffect)(() => {\r\n load();\r\n }, [\r\n props.orgRoute,\r\n props.groupRoute,\r\n props.currentUser,\r\n props.sessions,\r\n props.securityType,\r\n currentUser,\r\n WidgetStore_1.WidgetStore.sessions.orgFeed,\r\n WidgetStore_1.WidgetStore.sessions.groupFeed,\r\n ]);\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n function iAmHost(session) {\r\n if (session.myParticipants == null) {\r\n return false;\r\n }\r\n const myParticipants = session.myParticipants.filter((p) => p.participantRole === api_1.ParticipantRole.Host);\r\n return myParticipants.length > 0;\r\n }\r\n function isReadyToPlay(session) {\r\n if (!session.myParticipants || session.myParticipants.length === 0) {\r\n // When there are no participants but the session is public then it is playable\r\n return session.sessionSecurity === api_1.SessionSecurityType.Public;\r\n }\r\n const myParticipants = session.myParticipants.filter((p) => p.participantState === api_1.ParticipantState.ConsumptionRequested);\r\n return myParticipants.length > 0;\r\n }\r\n function isReadyToRecord(session) {\r\n if (session.myParticipants == null) {\r\n return false;\r\n }\r\n const myParticipants = session.myParticipants.filter((p) => p.participantState === api_1.ParticipantState.ContributionRequested);\r\n return myParticipants.length > 0;\r\n }\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n function onOpenNewSession() {\r\n if (props.orgRoute) {\r\n WidgetStore_1.WidgetStore.showNewSession(props.orgRoute, props.groupRoute);\r\n }\r\n }\r\n function onDeleteSession(session) {\r\n if (props.orgRoute) {\r\n WidgetStore_1.WidgetStore.showDeleteSession(props.orgRoute, session);\r\n }\r\n }\r\n //function onEditSession(session: SessionPreview): void {\r\n // if (props.orgRoute) {\r\n // WidgetStore.showEditSession(props.orgRoute, session);\r\n // }\r\n //}\r\n function onReport(session) {\r\n if (props.orgRoute) {\r\n WidgetStore_1.WidgetStore.showReports(props.orgRoute, session);\r\n }\r\n }\r\n //////////[ Component UI Helper Methods ]/////////////////////////////////////////////////////////\r\n function renderButtons(session) {\r\n const isHost = iAmHost(session);\r\n const isRecordable = !props.isReadOnly && isReadyToRecord(session);\r\n const isRemovable = !props.isReadOnly && (isHost || isAdmin);\r\n const isReportable = (isHost || isAdmin) && !isRecordable;\r\n const isPlayable = isReadyToPlay(session);\r\n return ((0, react_1.jsx)(react_2.default.Fragment, null,\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isReportable },\r\n (0, react_1.jsx)(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.PrimaryOutline, size: SbButton_1.SbButtonSize.Small, onClick: () => onReport(session), title: \"Show SessionReport\", icon: free_solid_svg_icons_1.faSignal })),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isRemovable },\r\n (0, react_1.jsx)(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.SecondaryOutline, size: SbButton_1.SbButtonSize.Small, onClick: () => onDeleteSession(session), title: \"Delete Session\", icon: free_solid_svg_icons_1.faTrash })),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isRecordable },\r\n (0, react_1.jsx)(RecordBtn_1.RecordBtn, { orgRoute: props.orgRoute, sessionRoute: session.route, participantRole: api_1.ParticipantRole.Host, onSave: () => {\r\n load(false);\r\n } })),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isPlayable },\r\n (0, react_1.jsx)(controls_1.PlayBtn, { orgRoute: props.orgRoute, sessionRoute: session.route }))));\r\n }\r\n function tableHeader(showTime, showReminder, showPublish) {\r\n return ((0, react_1.jsx)(\"thead\", { className: \"thead-light\" },\r\n (0, react_1.jsx)(\"tr\", null,\r\n (0, react_1.jsx)(\"th\", { scope: \"col\", className: \"sort\", \"data-sort\": \"name\" }, \"Name\"),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: !props.isReadOnly && showReminder },\r\n (0, react_1.jsx)(\"th\", { scope: \"col\", className: \"sort d-none d-lg-table-cell\", \"data-sort\": \"reminder\" }, \"Reminder\")),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: showPublish },\r\n (0, react_1.jsx)(\"th\", { scope: \"col\", className: \"sort d-none d-md-table-cell\", \"data-sort\": \"publish\" }, \"Publish\")),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: showTime },\r\n (0, react_1.jsx)(\"th\", { scope: \"col\", className: \"sort\", \"data-sort\": \"time\" }, \"Time\")),\r\n (0, react_1.jsx)(\"th\", { scope: \"col\", className: \"sort\", \"data-sort\": \"action\", style: { width: \"206px\" } }))));\r\n }\r\n function tableRow(session, key, showTime, showReminder, showPublish) {\r\n var _a;\r\n // Emphasize either the reminder or publish date\r\n const reminderMoment = moment_1.default.utc(session.reminder);\r\n const reminderTxt = showReminder && reminderMoment.isValid()\r\n ? reminderMoment.local().calendar()\r\n : \"None\";\r\n let reminderClass = reminderMoment.isValid() ? \"\" : \"text-muted\";\r\n const deadlineMoment = moment_1.default.utc((_a = session.publishSent) !== null && _a !== void 0 ? _a : session.publish);\r\n const publishTxt = showPublish && deadlineMoment.isValid()\r\n ? deadlineMoment.local().calendar()\r\n : \"None\";\r\n let publishClass = deadlineMoment.isValid() ? \"\" : \"text-muted\";\r\n // If we're showing both and they're valid, then we have to pick one to emphasize\r\n if (showReminder &&\r\n showPublish &&\r\n reminderMoment.isValid() &&\r\n deadlineMoment.isValid()) {\r\n // If we're still waiting on the deadline\r\n if (deadlineMoment.isBefore()) {\r\n reminderClass = \"text-muted\";\r\n }\r\n else {\r\n publishClass = \"text-muted\";\r\n }\r\n }\r\n return ((0, react_1.jsx)(\"tr\", { key: key, \"data-session-route\": session.route },\r\n (0, react_1.jsx)(\"th\", null,\r\n session.name,\r\n (0, react_1.jsx)(\"div\", { className: \"d-table-cell d-md-none\" },\r\n (0, react_1.jsx)(\"span\", { className: \"text-muted sb-cell-detail\" }, publishTxt))),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: !props.isReadOnly && showReminder },\r\n (0, react_1.jsx)(\"td\", { className: \"d-none d-lg-table-cell\" },\r\n (0, react_1.jsx)(\"span\", { className: reminderClass }, reminderTxt))),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: showPublish },\r\n (0, react_1.jsx)(\"td\", { className: \"d-none d-md-table-cell\" },\r\n (0, react_1.jsx)(\"span\", { className: publishClass }, publishTxt))),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: showTime },\r\n (0, react_1.jsx)(\"td\", null, api_1.Utils.secondsToString(session.limit))),\r\n (0, react_1.jsx)(\"td\", { className: \"text-right\" }, renderButtons(session))));\r\n }\r\n function Header() {\r\n return ((0, react_1.jsx)(controls_1.ShowWhen, { is: showTitle },\r\n (0, react_1.jsx)(reactstrap_1.CardHeader, { className: \"bg-transparent\" },\r\n (0, react_1.jsx)(reactstrap_1.Row, { className: \"align-items-center\" },\r\n (0, react_1.jsx)(reactstrap_1.Col, { xs: \"8\", md: \"6\" },\r\n (0, react_1.jsx)(\"h1\", { className: \"mb-0\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: icon, className: \"d-none d-sm-inline mr-1\" }),\r\n title)),\r\n (0, react_1.jsx)(reactstrap_1.Col, { className: \"text-right\", xs: \"4\", md: \"6\" },\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: props.sessions == null },\r\n (0, react_1.jsx)(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.SecondaryOutline, size: SbButton_1.SbButtonSize.Small, onClick: () => {\r\n load(false);\r\n }, title: \"Refresh Feed\", icon: free_solid_svg_icons_1.faSyncAlt })),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isCreateEnabled },\r\n (0, react_1.jsx)(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.Primary, size: SbButton_1.SbButtonSize.Small, icon: free_solid_svg_icons_1.faPlus, title: \"Create Soundbite Session\", onClick: onOpenNewSession },\r\n (0, react_1.jsx)(\"span\", { className: \"d-none d-sm-inline\" }, \"Create\"),\r\n (0, react_1.jsx)(\"span\", { className: \"d-none d-lg-inline\" },\r\n (0, react_1.jsx)(react_2.Fragment, null, \"\\u00A0\"),\r\n \"Soundbite\"),\r\n (0, react_1.jsx)(\"span\", { className: \"d-none d-md-inline\" },\r\n (0, react_1.jsx)(react_2.Fragment, null, \"\\u00A0\"),\r\n \"Session\"))))))));\r\n }\r\n function Body() {\r\n let showTime = false;\r\n let showReminder = false;\r\n let showDeadline = false;\r\n if (feedSessions) {\r\n for (const s of feedSessions) {\r\n if (s.reminder)\r\n showReminder = true;\r\n if (s.publishSent != null || s.publish != null)\r\n showDeadline = true;\r\n if (s.limit > 0)\r\n showTime = true;\r\n }\r\n }\r\n return ((0, react_1.jsx)(\"div\", { className: \"table-responsive\" },\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: feedSessions && feedSessions.length > 0 },\r\n (0, react_1.jsx)(\"table\", { className: \"sb-max-width-table table align-items-center\" },\r\n tableHeader(showTime, showReminder, showDeadline),\r\n (0, react_1.jsx)(\"tbody\", { className: \"list\" }, feedSessions === null || feedSessions === void 0 ? void 0 : feedSessions.map((s) => tableRow(s, s.route, showTime, showReminder, showDeadline))))),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: feedSessions && feedSessions.length === 0 },\r\n (0, react_1.jsx)(EmptyCardBody_1.EmptyCardBody, { hasBorder: true, prompt: emptyMessage, showImage: showNoFeedImage },\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isCreateEnabled && !props.isReadOnly },\r\n (0, react_1.jsx)(\"button\", { className: \"btn btn-icon btn-primary\", type: \"button\", onClick: onOpenNewSession, title: \"Create Soundbite Session\" },\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--icon\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faPlus })),\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--text\" },\r\n (0, react_1.jsx)(react_2.Fragment, null, \"\\u00A0\"),\r\n \"Create Soundbite Session\")))))));\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n return ((0, react_1.jsx)(reactstrap_1.Card, { className: \"sb-feed-card\" },\r\n (0, react_1.jsx)(controls_1.Loader, { isLoadedWhen: !isLoading && feedSessions != null, style: { minHeight: \"12rem\" }, message: \"Loading Feed...\" },\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: errorTitle == null },\r\n (0, react_1.jsx)(Header, null),\r\n (0, react_1.jsx)(Body, null)),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: errorTitle != null },\r\n (0, react_1.jsx)(reactstrap_1.Alert, { color: \"danger\" }, errorTitle)))));\r\n});\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CardFeedWidget = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst moment_1 = __importDefault(require(\"moment\"));\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst RecordBtn_1 = require(\"../components/RecordBtn\");\r\nconst EmptyCardBody_1 = require(\"../components/EmptyCardBody\");\r\nconst WidgetStore_1 = require(\"../store/WidgetStore\");\r\nconst controls_1 = require(\"../components/controls\");\r\nconst SbButton_1 = require(\"../components/SbButton\");\r\nconst CardFeedWidget_styles_1 = require(\"./CardFeedWidget.styles\");\r\n/***************************************************************************************************\r\n * Constants\r\n **************************************************************************************************/\r\nconst defaultFeedName = \"Feed\";\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexports.CardFeedWidget = (0, mobx_react_lite_1.observer)((props) => {\r\n var _a;\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n const [currentUser, setCurrentUser] = (0, react_2.useState)(undefined);\r\n const [isLoading, setIsloading] = (0, react_2.useState)(false);\r\n const [feedSessions, setFeedSessions] = (0, react_2.useState)();\r\n const [title, setTitle] = (0, react_2.useState)(defaultFeedName);\r\n const [emptyMessage, setEmptyMessage] = (0, react_2.useState)(\"You are all caught up on your Soundbite Sessions\");\r\n const [isCreateEnabled, setCreateEnabled] = (0, react_2.useState)(!props.isReadOnly);\r\n const [errorTitle, setErrorTitle] = (0, react_2.useState)(undefined);\r\n const showNoFeedImage = props.showNoFeedImage === false ? false : true;\r\n const showTitle = props.showTitle === false ? false : true;\r\n const isAdmin = WidgetStore_1.WidgetStore.isPersonRole(api_1.PersonRole.Admin);\r\n const icon = (_a = props.icon) !== null && _a !== void 0 ? _a : free_solid_svg_icons_1.faPodcast;\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n function orderSessions(sessions) {\r\n if (sessions == null) {\r\n return [];\r\n }\r\n const ret = sessions.sort((a, b) => {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n return ((_b = (_a = a.publishSent) !== null && _a !== void 0 ? _a : a.publish) !== null && _b !== void 0 ? _b : \"\") <\r\n ((_d = (_c = b.publishSent) !== null && _c !== void 0 ? _c : b.publish) !== null && _d !== void 0 ? _d : \"\")\r\n ? 1\r\n : ((_f = (_e = a.publishSent) !== null && _e !== void 0 ? _e : a.publish) !== null && _f !== void 0 ? _f : \"\") >\r\n ((_h = (_g = b.publishSent) !== null && _g !== void 0 ? _g : b.publish) !== null && _h !== void 0 ? _h : \"\")\r\n ? -1\r\n : 0;\r\n });\r\n return ret;\r\n }\r\n function applySessions(sessions) {\r\n const feed = orderSessions(sessions);\r\n setFeedSessions(feed);\r\n setIsloading(false);\r\n }\r\n function loadSessions(inGroup, allowCache = true) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (isLoading) {\r\n return;\r\n }\r\n setIsloading(true);\r\n // Ensure defaults are set before proceeding\r\n if (currentUser == null || props.orgRoute == null)\r\n return;\r\n // Determine whether the sessions were passed directly to the widget\r\n if (props.sessions) {\r\n // Use the explicitly specified sessions\r\n applySessions(props.sessions);\r\n return;\r\n }\r\n if (!allowCache) {\r\n setFeedSessions(undefined);\r\n }\r\n // Determine whether a group context was specified\r\n if (props.groupRoute) {\r\n // Determine whether the current user is part of the specified group\r\n let canLoadGroup = inGroup;\r\n if (!inGroup) {\r\n let outsideGroup = yield WidgetStore_1.WidgetStore.groups.readGroupAsync((_b = (_a = WidgetStore_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.details.route) !== null && _b !== void 0 ? _b : \"\", props.groupRoute);\r\n canLoadGroup = outsideGroup != null;\r\n }\r\n if (canLoadGroup) {\r\n const securityType = (_e = (_c = props.securityType) !== null && _c !== void 0 ? _c : (_d = WidgetStore_1.WidgetStore.organizations.currentOrg) === null || _d === void 0 ? void 0 : _d.settings.sessions.defaultSessionSecurity) !== null && _e !== void 0 ? _e : api_1.SessionSecurityType.Protected;\r\n const feed = yield WidgetStore_1.WidgetStore.sessions.readGroupFeedAsync(props.orgRoute, props.groupRoute, securityType, allowCache);\r\n applySessions(feed);\r\n }\r\n else {\r\n throw new api_1.PublicError(undefined, \"Cannot load feed for team, no access\");\r\n }\r\n }\r\n else {\r\n // Use sessions from \"My Feed\"\r\n const feed = yield WidgetStore_1.WidgetStore.sessions.readOrgFeedAsync(props.orgRoute, (_h = (_f = props.securityType) !== null && _f !== void 0 ? _f : (_g = WidgetStore_1.WidgetStore.organizations.currentOrg) === null || _g === void 0 ? void 0 : _g.settings.sessions.defaultSessionSecurity) !== null && _h !== void 0 ? _h : api_1.SessionSecurityType.Protected, allowCache);\r\n applySessions(feed);\r\n }\r\n });\r\n }\r\n /** Gets the current group for the context and whether or not the current user appears to be in it */\r\n function getGroup(allowCache) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!props.orgRoute || !props.groupRoute) {\r\n return { inGroup: false };\r\n }\r\n try {\r\n const group = yield WidgetStore_1.WidgetStore.groups.readGroupAsync(props.orgRoute, props.groupRoute, allowCache);\r\n const inGroup = group.memberRole >= api_1.MemberRole.Member;\r\n return { group, inGroup };\r\n }\r\n catch (err) {\r\n setErrorTitle(`Cannot access group feed for ${props.groupRoute}`);\r\n return { inGroup: false };\r\n }\r\n });\r\n }\r\n /**\r\n * Async retrieve the title given the current context and optionally a current group\r\n * @param group\r\n */\r\n function getTitle(group) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (props.title) {\r\n return props.title;\r\n }\r\n if (group) {\r\n return `${group.name} Feed`;\r\n }\r\n if (props.orgRoute) {\r\n const org = yield WidgetStore_1.WidgetStore.organizations.readOrgAsync(props.orgRoute);\r\n if (org) {\r\n return `${org.details.name} Feed`;\r\n }\r\n }\r\n return \"My Feed\";\r\n });\r\n }\r\n function loadTitle(group) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const newTitle = yield getTitle(group);\r\n setTitle(newTitle);\r\n });\r\n }\r\n function load(allowCache = true) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // Set defaults\r\n setCurrentUser((_a = props.currentUser) !== null && _a !== void 0 ? _a : (_b = WidgetStore_1.WidgetStore.organizations.currentOrg) === null || _b === void 0 ? void 0 : _b.details.me);\r\n if (!allowCache) {\r\n setIsloading(false);\r\n setFeedSessions(undefined);\r\n }\r\n const { group, inGroup } = yield getGroup(allowCache);\r\n yield loadTitle(group);\r\n yield loadSessions(inGroup, allowCache);\r\n const isCreateEnabled = (_c = props.showCreateButton) !== null && _c !== void 0 ? _c : true;\r\n setCreateEnabled(isCreateEnabled);\r\n const noun = props.groupRoute != null && props.groupRoute.trim().length > 0\r\n ? \"team\"\r\n : \"organization\";\r\n const noFeedMessage = isCreateEnabled\r\n ? (_d = props.noFeedMessage) !== null && _d !== void 0 ? _d : `Try making a Soundbite Session for your ${noun} to start collaborating`\r\n : `You are all caught up on Soundbite Sessions for your ${noun}`;\r\n setEmptyMessage(noFeedMessage);\r\n });\r\n }\r\n (0, react_2.useEffect)(() => {\r\n load();\r\n }, [\r\n props.orgRoute,\r\n props.groupRoute,\r\n props.currentUser,\r\n props.sessions,\r\n props.securityType,\r\n currentUser,\r\n WidgetStore_1.WidgetStore.sessions.orgFeed,\r\n WidgetStore_1.WidgetStore.sessions.groupFeed,\r\n ]);\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n function iAmHost(session) {\r\n if (session.myParticipants == null) {\r\n return false;\r\n }\r\n const myParticipants = session.myParticipants.filter((p) => p.participantRole === api_1.ParticipantRole.Host);\r\n return myParticipants.length > 0;\r\n }\r\n function isReadyToPlay(session) {\r\n if (!session.myParticipants || session.myParticipants.length === 0) {\r\n // When there are no participants but the session is public then it is playable\r\n return session.sessionSecurity === api_1.SessionSecurityType.Public;\r\n }\r\n const myParticipants = session.myParticipants.filter((p) => p.participantState === api_1.ParticipantState.ConsumptionRequested);\r\n return myParticipants.length > 0;\r\n }\r\n function isReadyToRecord(session) {\r\n if (session.myParticipants == null) {\r\n return false;\r\n }\r\n const myParticipants = session.myParticipants.filter((p) => p.participantState === api_1.ParticipantState.ContributionRequested);\r\n return myParticipants.length > 0;\r\n }\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n function onOpenNewSession() {\r\n if (props.orgRoute) {\r\n WidgetStore_1.WidgetStore.showNewSession(props.orgRoute, props.groupRoute);\r\n }\r\n }\r\n function onDeleteSession(session) {\r\n if (props.orgRoute) {\r\n WidgetStore_1.WidgetStore.showDeleteSession(props.orgRoute, session);\r\n }\r\n }\r\n function onReport(session) {\r\n if (props.orgRoute) {\r\n WidgetStore_1.WidgetStore.showReports(props.orgRoute, session);\r\n }\r\n }\r\n //////////[ Component UI Helper Methods ]/////////////////////////////////////////////////////////\r\n function renderButtons(session) {\r\n const isHost = iAmHost(session);\r\n const isRecordable = !props.isReadOnly && isReadyToRecord(session);\r\n const isRemovable = !props.isReadOnly && (isHost || isAdmin);\r\n const isReportable = (isHost || isAdmin) && !isRecordable;\r\n return ((0, react_1.jsx)(react_2.default.Fragment, null,\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isReportable },\r\n (0, react_1.jsx)(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.PrimaryOutline, size: SbButton_1.SbButtonSize.Small, onClick: () => onReport(session), title: \"Show SessionReport\", icon: free_solid_svg_icons_1.faSignal })),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isRemovable },\r\n (0, react_1.jsx)(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.SecondaryOutline, size: SbButton_1.SbButtonSize.Small, onClick: () => onDeleteSession(session), title: \"Delete Session\", icon: free_solid_svg_icons_1.faTrash }))));\r\n }\r\n function contentCard(session) {\r\n var _a;\r\n // Emphasize either the reminder or publish date\r\n const reminderMoment = moment_1.default.utc(session.reminder);\r\n const reminderTxt = reminderMoment.isValid()\r\n ? reminderMoment.local().fromNow()\r\n : \"None\";\r\n const reminderTitle = reminderMoment.isValid()\r\n ? reminderMoment.local().calendar()\r\n : \"None\";\r\n const deadlineMoment = moment_1.default.utc((_a = session.publishSent) !== null && _a !== void 0 ? _a : session.publish);\r\n const publishTxt = deadlineMoment.isValid()\r\n ? deadlineMoment.local().fromNow()\r\n : \"None\";\r\n const publishTitle = deadlineMoment.isValid()\r\n ? deadlineMoment.local().calendar()\r\n : \"None\";\r\n const isPlayable = isReadyToPlay(session);\r\n const isRecordable = !props.isReadOnly && isReadyToRecord(session);\r\n return ((0, react_1.jsx)(reactstrap_1.Card, { className: \"sb-content-card sb-feed-contents mb-3\", key: session.route },\r\n (0, react_1.jsx)(reactstrap_1.CardBody, { className: \"p-3\" },\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isPlayable },\r\n (0, react_1.jsx)(\"div\", { className: \"sb-btn-overlay\" },\r\n (0, react_1.jsx)(controls_1.PlayBtn, { orgRoute: props.orgRoute, sessionRoute: session.route, size: SbButton_1.SbButtonSize.Large }))),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isRecordable },\r\n (0, react_1.jsx)(\"div\", { className: \"sb-btn-overlay\" },\r\n (0, react_1.jsx)(RecordBtn_1.RecordBtn, { orgRoute: props.orgRoute, sessionRoute: session.route, participantRole: api_1.ParticipantRole.Host, onSave: () => {\r\n load(false);\r\n } }))),\r\n (0, react_1.jsx)(\"div\", { className: \"sb-content-metadata text-muted text-sm font-weight-light text-uppercase\" },\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isRecordable },\r\n (0, react_1.jsx)(\"span\", { title: reminderTitle },\r\n \"Due\\u00A0\",\r\n reminderTxt),\r\n \"\\u00A0|\\u00A0\",\r\n (0, react_1.jsx)(\"span\", { title: publishTitle },\r\n \"Publishes\\u00A0\",\r\n publishTxt)),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isPlayable },\r\n (0, react_1.jsx)(\"span\", { title: publishTitle }, publishTxt))),\r\n (0, react_1.jsx)(\"h1\", { className: \"font-weight-light truncate-text-2-lines\" }, session.name),\r\n (0, react_1.jsx)(\"div\", { className: \"d-flex sb-card-bottom\" },\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: session.hostParticipants.length > 0 },\r\n (0, react_1.jsx)(\"div\", { className: \"sb-author-summary\" },\r\n (0, react_1.jsx)(controls_1.Avatar, { user: session.hostParticipants[0].person.user, showJobTitle: true }))),\r\n (0, react_1.jsx)(\"div\", { className: \"sb-content-actions align-items-right mt-3\" }, renderButtons(session))))));\r\n }\r\n function empty() {\r\n return ((0, react_1.jsx)(reactstrap_1.Card, { className: \"sb-feed-card sb-feed-contents\" },\r\n (0, react_1.jsx)(EmptyCardBody_1.EmptyCardBody, { hasBorder: true, prompt: emptyMessage, showImage: showNoFeedImage },\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isCreateEnabled && !props.isReadOnly },\r\n (0, react_1.jsx)(\"button\", { className: \"btn btn-icon btn-primary\", type: \"button\", onClick: onOpenNewSession, title: \"Create Soundbite Session\" },\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--icon\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faPlus })),\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--text\" },\r\n (0, react_1.jsx)(react_2.Fragment, null, \"\\u00A0\"),\r\n \"Create Soundbite Session\"))))));\r\n }\r\n function loaded() {\r\n return ((0, react_1.jsx)(\"div\", { className: \"sb-feed-contents\" },\r\n (0, react_1.jsx)(reactstrap_1.Card, { className: \"p-3 mb-2\" },\r\n (0, react_1.jsx)(Header, null)), feedSessions === null || feedSessions === void 0 ? void 0 :\r\n feedSessions.map((s) => contentCard(s))));\r\n }\r\n function Header() {\r\n return ((0, react_1.jsx)(controls_1.ShowWhen, { is: showTitle },\r\n (0, react_1.jsx)(reactstrap_1.Row, { className: \"align-items-center\" },\r\n (0, react_1.jsx)(reactstrap_1.Col, { xs: \"8\", md: \"7\" },\r\n (0, react_1.jsx)(\"h1\", { className: \"mb-0 font-weight-light\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: icon, className: \"d-none d-sm-inline mr-1\" }),\r\n title)),\r\n (0, react_1.jsx)(reactstrap_1.Col, { className: \"text-right\", xs: \"4\", md: \"5\" },\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: props.sessions == null },\r\n (0, react_1.jsx)(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.SecondaryOutline, onClick: () => {\r\n load(false);\r\n }, title: \"Refresh Feed\", icon: free_solid_svg_icons_1.faSyncAlt })),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isCreateEnabled },\r\n (0, react_1.jsx)(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.Primary, icon: free_solid_svg_icons_1.faPlus, title: \"Create Soundbite Session\", onClick: onOpenNewSession, btnClassName: \"sb-no-small-title\" },\r\n (0, react_1.jsx)(\"span\", { className: \"d-none d-md-inline\" }, \"Create\")))))));\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n const styles = (0, CardFeedWidget_styles_1.getStyles)();\r\n return ((0, react_1.jsx)(\"div\", { css: styles },\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: isLoading || feedSessions == null },\r\n (0, react_1.jsx)(reactstrap_1.Card, { className: \"sb-feed-card sb-feed-contents\" },\r\n (0, react_1.jsx)(controls_1.Loader, { isLoadedWhen: false, style: { minHeight: \"12rem\" }, message: \"Loading Feed...\" }))),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: !isLoading && feedSessions != null },\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: feedSessions && feedSessions.length === 0 }, empty()),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: feedSessions && feedSessions.length > 0 }, loaded()))));\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getStyles = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst styles_1 = require(\"../styles\");\r\nfunction getStyles() {\r\n const styles = (0, react_1.css) `\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n .sb-feed-contents {\r\n width: 100%;\r\n max-width: 470px;\r\n }\r\n\r\n .sb-content-card {\r\n width: 100%;\r\n overflow: hidden;\r\n\r\n h1 {\r\n font-weight: 100;\r\n font-size: 2.5rem;\r\n max-height: 5em;\r\n line-height: 1.5em;\r\n overflow: hidden;\r\n color: ${styles_1.GlobalTheme.current.colors.neutrals.n800};\r\n }\r\n }\r\n\r\n .sb-author-summary {\r\n flex: 1;\r\n flex-shrink: 2;\r\n max-width: calc(100% - 72px);\r\n }\r\n\r\n .sb-content-actions {\r\n flex: 0 0 auto;\r\n flex-shrink: 0;\r\n min-width: 72px;\r\n\r\n &:empty {\r\n display: none;\r\n }\r\n }\r\n\r\n .truncate-text-2-lines {\r\n position: relative;\r\n display: -webkit-box;\r\n -webkit-line-clamp: 2;\r\n -webkit-box-orient: vertical;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n line-height: 1.4em; /* Adjust this value according to your design */\r\n max-height: 2.8em; /* (number of lines) * (line-height value) */\r\n }\r\n\r\n .truncate-text-2-lines::after {\r\n content: \"\";\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n width: 4em; /* Adjust this value according to your design */\r\n height: 1.4em; /* Should be the same as the line-height value */\r\n background: linear-gradient(\r\n to right,\r\n ${styles_1.GlobalTheme.current.colors.neutrals.min}00,\r\n ${styles_1.GlobalTheme.current.colors.neutrals.min}FF 75%\r\n ); /* Replace the rgba() values with your background color */\r\n pointer-events: none;\r\n }\r\n\r\n .sb-btn-overlay {\r\n position: absolute;\r\n right: 1rem;\r\n top: 2.25rem;\r\n z-index: 1;\r\n background: linear-gradient(\r\n to right,\r\n ${styles_1.GlobalTheme.current.colors.neutrals.min}00,\r\n ${styles_1.GlobalTheme.current.colors.neutrals.min}FF 75%\r\n );\r\n padding-left: 3rem;\r\n\r\n .sb-play-btn,\r\n .sb-record-btn {\r\n border-radius: 50%;\r\n font-size: 28px;\r\n margin-right: 0;\r\n padding: 16px;\r\n\r\n svg {\r\n margin: 0;\r\n }\r\n\r\n .btn-inner--text {\r\n display: none;\r\n }\r\n }\r\n }\r\n\r\n .sb-card-bottom {\r\n max-width: 100%;\r\n }\r\n `;\r\n return styles;\r\n}\r\nexports.getStyles = getStyles;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MegaWidget = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst FeedWidget_1 = require(\"./FeedWidget\");\r\nconst components_1 = require(\"../components\");\r\nconst PastSessionsWidget_1 = require(\"./PastSessionsWidget\");\r\nconst PendingSessionsWidget_1 = require(\"./PendingSessionsWidget\");\r\nconst SeriesWidget_1 = require(\"./SeriesWidget\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nvar TabName;\r\n(function (TabName) {\r\n TabName[\"Feed\"] = \"Feed\";\r\n TabName[\"Calendar\"] = \"Calendar\";\r\n TabName[\"Scheduled\"] = \"Scheduled\";\r\n TabName[\"History\"] = \"History\";\r\n})(TabName || (TabName = {}));\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\n/**\r\n * Widget for constructing a session, including recording/uploading conte and optionally recurring sessions\r\n * @param props\r\n */\r\nconst MegaWidget = (props) => {\r\n //////////[ Types ]///////////////////////////////////////////////////////////////////////////////\r\n const tabs = [\r\n { name: TabName.Feed, icon: free_solid_svg_icons_1.faPodcast },\r\n { name: TabName.Calendar, icon: free_solid_svg_icons_1.faCalendar },\r\n { name: TabName.Scheduled, icon: free_solid_svg_icons_1.faCalendarDay },\r\n { name: TabName.History, icon: free_solid_svg_icons_1.faCalendarCheck },\r\n ];\r\n const [currentTab, setCurrentTab] = (0, react_1.useState)(getInitialTab(props.initialTab));\r\n /**\r\n * Ensures that the initial tab value is valid. Essentially if it does not match\r\n * @param initialTabValue\r\n */\r\n function getInitialTab(initialTabValue) {\r\n let result = tabs[0].name;\r\n initialTabValue = initialTabValue === null || initialTabValue === void 0 ? void 0 : initialTabValue.trim().toLowerCase();\r\n for (var i = 0; i < tabs.length; i++) {\r\n if (tabs[i].name.toLowerCase() == initialTabValue) {\r\n result = tabs[i].name;\r\n }\r\n }\r\n return result;\r\n }\r\n /**\r\n * Header is a copy of the header from the SPA application.\r\n */\r\n function Header() {\r\n return (react_1.default.createElement(\"div\", { className: \"header sb-header bg-gradient-brand pb-4 pt-6 pt-md-8\" },\r\n react_1.default.createElement(\"div\", { className: \"separator separator-bottom separator-skew zindex-100\" },\r\n react_1.default.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", preserveAspectRatio: \"none\", version: \"1.1\", viewBox: \"0 0 2560 100\", x: \"0\", y: \"0\" },\r\n react_1.default.createElement(\"polygon\", { className: \"fill-default\", points: \"2560 0 2560 100 0 100\" })))));\r\n }\r\n /**\r\n * Renders the navigation tabs allowing users to change the current view.\r\n */\r\n function Tabs() {\r\n return (react_1.default.createElement(reactstrap_1.Navbar, { className: \"navbar-top navbar-dark bg-gradient-brand\", expand: \"md\" },\r\n react_1.default.createElement(reactstrap_1.Container, null,\r\n react_1.default.createElement(reactstrap_1.Nav, { className: \"navbar-nav align-items-center\" },\r\n react_1.default.createElement(\"ul\", { className: \"sb-tabs\" }, tabs.map((tab) => (react_1.default.createElement(reactstrap_1.NavItem, null,\r\n react_1.default.createElement(\"a\", { href: \"#\", onClick: (e) => {\r\n e.preventDefault();\r\n setCurrentTab(tab.name);\r\n }, className: currentTab == tab.name ? \"active\" : \"\" },\r\n react_1.default.createElement(components_1.IconLink, { title: tab.name, icon: tab.icon }))))))))));\r\n }\r\n function getTitle(suffix) {\r\n if (api_1.Utils.isNullOrEmpty(props.title)) {\r\n return undefined;\r\n }\r\n else {\r\n return props.title + (suffix !== null && suffix !== void 0 ? suffix : \"\");\r\n }\r\n }\r\n function Content() {\r\n if (api_1.Utils.isNullOrEmpty(props.orgRoute)) {\r\n return react_1.default.createElement(components_1.Loader, null);\r\n }\r\n else {\r\n switch (currentTab) {\r\n case TabName.Feed:\r\n return (react_1.default.createElement(FeedWidget_1.FeedWidget, { orgRoute: props.orgRoute, groupRoute: props.groupRoute, title: getTitle(), showTitle: props.showTitle, mode: FeedWidget_1.FeedMode.Card }));\r\n case TabName.Calendar:\r\n return (react_1.default.createElement(SeriesWidget_1.SeriesWidget, { orgRoute: props.orgRoute, groupRoute: props.groupRoute, title: getTitle(\" Series\"), showTitle: props.showTitle }));\r\n case TabName.Scheduled:\r\n return (react_1.default.createElement(PendingSessionsWidget_1.PendingSessionsWidget, { orgRoute: props.orgRoute, groupRoute: props.groupRoute, title: getTitle(\" History\"), showTitle: props.showTitle }));\r\n case TabName.History:\r\n return (react_1.default.createElement(PastSessionsWidget_1.PastSessionsWidget, { orgRoute: props.orgRoute, groupRoute: props.groupRoute, title: getTitle(\" History\"), showTitle: props.showTitle }));\r\n default:\r\n return react_1.default.createElement(\"div\", null,\r\n \"No UI for \",\r\n currentTab);\r\n }\r\n }\r\n }\r\n return (react_1.default.createElement(\"div\", { className: \"sb-private-view\" },\r\n react_1.default.createElement(\"div\", { className: \"main-content\" },\r\n react_1.default.createElement(Tabs, null),\r\n react_1.default.createElement(Header, null),\r\n react_1.default.createElement(reactstrap_1.Container, { className: \"sb-navigation-container\" },\r\n react_1.default.createElement(Content, null)))));\r\n};\r\nexports.MegaWidget = MegaWidget;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PeopleWidget = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst store_1 = require(\"../store\");\r\nconst dialogs_1 = require(\"../dialogs\");\r\nconst controls_1 = require(\"../components/controls\");\r\nconst components_1 = require(\"../components\");\r\nconst InfiniteTable_1 = require(\"../components/controls/InfiniteTable\");\r\nconst InfiniteScrollDataHelper_1 = require(\"../modules/InfiniteScrollDataHelper\");\r\n/** Display the list of people in the given org */\r\nexports.PeopleWidget = (0, mobx_react_lite_1.observer)((props) => {\r\n var _a, _b;\r\n let { orgRoute } = props;\r\n // Component state\r\n const [isLoading, setIsLoading] = (0, react_1.useState)(false);\r\n const [org, setOrg] = (0, react_1.useState)();\r\n const myPersonRoute = (_a = org === null || org === void 0 ? void 0 : org.details.me) === null || _a === void 0 ? void 0 : _a.route;\r\n const myPersonRole = (_b = org === null || org === void 0 ? void 0 : org.details.me) === null || _b === void 0 ? void 0 : _b.personRole;\r\n // Dynamic People data\r\n const people = (0, react_1.useRef)(new Map());\r\n const maxTake = (0, react_1.useRef)(128);\r\n const maxTotalItems = (0, react_1.useRef)(2147483647);\r\n const [count, setCount] = (0, react_1.useState)(undefined);\r\n // Load\r\n const load = (allowCache = true) => __awaiter(void 0, void 0, void 0, function* () {\r\n if (isLoading || orgRoute == null) {\r\n return;\r\n }\r\n setIsLoading(true);\r\n if (!allowCache) {\r\n setOrg(undefined);\r\n }\r\n const firstPeoplePromise = store_1.WidgetStore.people.readAllAsync(orgRoute, {\r\n includesCounts: true,\r\n });\r\n const newOrgPromise = store_1.WidgetStore.organizations.readOrgAsync(orgRoute, allowCache);\r\n const [firstPeoplePage, newOrg] = yield Promise.all([\r\n firstPeoplePromise,\r\n newOrgPromise,\r\n ]);\r\n setPeople(firstPeoplePage);\r\n setCount(firstPeoplePage.totalCount);\r\n maxTake.current = firstPeoplePage.maxTake;\r\n setOrg(newOrg);\r\n setIsLoading(false);\r\n });\r\n const setPeople = (page) => {\r\n api_1.PageUtils.addPageToMap(page, people.current);\r\n };\r\n const scrollData = new InfiniteScrollDataHelper_1.InfiniteScrollDataHelper((startIndex, stopIndex) => __awaiter(void 0, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(void 0, void 0, void 0, function* () {\r\n try {\r\n // Indicate\r\n for (let index = startIndex; index <= stopIndex; index++) {\r\n people.current.set(index, null);\r\n }\r\n const page = yield store_1.WidgetStore.people.readAllAsync(orgRoute, {\r\n skip: startIndex - 1,\r\n take: maxTake.current,\r\n });\r\n api_1.PageUtils.addPageToMap(page, people.current);\r\n resolve();\r\n }\r\n catch (err) {\r\n components_1.ErrorDlg.show(err, \"Error Loading Sessions\", `Error querying for sessions ${startIndex} to ${stopIndex}:`);\r\n reject();\r\n }\r\n }));\r\n }));\r\n react_1.default.useEffect(() => {\r\n load();\r\n // eslint-disable-next-line\r\n }, [orgRoute, store_1.WidgetStore.organizations.currentOrg]);\r\n const onSubmitInviteUser = (invite) => __awaiter(void 0, void 0, void 0, function* () {\r\n if (!invite)\r\n return;\r\n yield store_1.WidgetStore.people.invitePersonAsync(orgRoute, invite);\r\n yield load();\r\n });\r\n // Events\r\n const onInvitePerson = () => {\r\n dialogs_1.InviteUserDialog.open(undefined, onSubmitInviteUser);\r\n };\r\n const onSubmitDeleteUser = (person) => __awaiter(void 0, void 0, void 0, function* () {\r\n if (person) {\r\n yield store_1.WidgetStore.people.deletePersonAsync(orgRoute, person.route);\r\n yield load();\r\n }\r\n });\r\n const onDeleteUser = (person) => {\r\n dialogs_1.DeleteUserDialog.open(person, onSubmitDeleteUser);\r\n };\r\n const onPersonClick = (person) => {\r\n dialogs_1.DialogManager.ShowProfileDialog(person.user, false);\r\n };\r\n const onToggleAdmin = (adminChecked, person) => {\r\n person.personRole = adminChecked ? api_1.PersonRole.Admin : api_1.PersonRole.Person;\r\n store_1.WidgetStore.people.updatePersonAsync(orgRoute, person);\r\n // No need to update because the UI already changes when the click happens\r\n };\r\n const onRefresh = () => __awaiter(void 0, void 0, void 0, function* () {\r\n yield load(false);\r\n });\r\n // Inner Components\r\n const Header = () => {\r\n return (react_1.default.createElement(reactstrap_1.CardHeader, { className: \"border-0\" },\r\n react_1.default.createElement(controls_1.ShowWhen, { is: count != null },\r\n react_1.default.createElement(reactstrap_1.Row, { className: \"align-items-center\" },\r\n react_1.default.createElement(reactstrap_1.Col, null,\r\n react_1.default.createElement(\"h1\", { className: \"mb-0\" },\r\n react_1.default.createElement(\"i\", { className: \"fas fa-user-cog d-none d-sm-inline\" }),\r\n count,\r\n \" \", org === null || org === void 0 ? void 0 :\r\n org.details.name,\r\n \" Users\")),\r\n react_1.default.createElement(reactstrap_1.Col, { className: \"text-right\" },\r\n react_1.default.createElement(reactstrap_1.Button, { outline: true, color: \"secondary\", className: \"btn-icon btn-sm\", onClick: onRefresh, title: \"Refresh Users\" },\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(\"i\", { className: \"fas fa-sync-alt\" }))),\r\n react_1.default.createElement(\"button\", { className: \"btn btn-icon btn-primary btn-sm\", type: \"button\", onClick: onInvitePerson, title: \"Invite User\" },\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(\"i\", { className: \"fas fa-user-plus\" })),\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--text\" },\r\n react_1.default.createElement(\"span\", { className: \"d-none d-sm-inline\" },\r\n react_1.default.createElement(react_1.Fragment, null, \"\\u00A0\"),\r\n \"Invite\"),\r\n react_1.default.createElement(\"span\", { className: \"d-none d-md-inline\" },\r\n react_1.default.createElement(react_1.Fragment, null, \"\\u00A0\"),\r\n \"User\"))))))));\r\n };\r\n const TableHeader = () => {\r\n return (react_1.default.createElement(\"thead\", { className: \"thead-light\" },\r\n react_1.default.createElement(\"tr\", null,\r\n react_1.default.createElement(\"th\", { scope: \"col\", className: \"sort\", \"data-sort\": \"name\" }, \"Name\"),\r\n react_1.default.createElement(\"th\", { scope: \"col\", className: \"sort d-none d-lg-table-cell\", \"data-sort\": \"role\" }, \"E-Mail\"),\r\n react_1.default.createElement(\"th\", { scope: \"col\", className: \"sort\", \"data-sort\": \"deadline\" }, \"Admin\"),\r\n react_1.default.createElement(\"th\", { scope: \"col\", className: \"sort\", \"data-sort\": \"action\" }))));\r\n };\r\n const PersonRow = (props) => {\r\n const person = props.person;\r\n return (react_1.default.createElement(\"tr\", { \"data-person-route\": person.route, \"data-row-index\": props.index, \"data-user-route\": person.user.route },\r\n react_1.default.createElement(\"th\", { scope: \"row\" },\r\n react_1.default.createElement(controls_1.Avatar, { user: person.user, onClick: () => onPersonClick(person), title: \"Show User Profile\" })),\r\n react_1.default.createElement(\"td\", { className: \"d-none d-lg-table-cell\" },\r\n react_1.default.createElement(\"a\", { href: `mailto:${person.user.email}`, title: `Send e-mail to ${person.user.email}` }, person.user.email)),\r\n react_1.default.createElement(\"td\", null,\r\n react_1.default.createElement(controls_1.ShowWhen, { is: myPersonRoute !== person.route },\r\n react_1.default.createElement(controls_1.Toggle, { defaultValue: person.personRole === api_1.PersonRole.Admin, onToggle: (isEnabled) => onToggleAdmin(isEnabled, person), title: \"User Is Organization Administrator\" })),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: myPersonRoute === person.route &&\r\n myPersonRole === api_1.PersonRole.Admin }, \"Admin\")),\r\n react_1.default.createElement(\"td\", { className: \"text-right\" },\r\n react_1.default.createElement(controls_1.ShowWhen, { is: myPersonRoute !== person.route },\r\n react_1.default.createElement(\"button\", { className: \"btn btn-outline-secondary btn-sm\", type: \"button\", onClick: () => onDeleteUser(person), title: \"Delete User\" },\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(\"i\", { className: \"fas fa-trash\" })))))));\r\n };\r\n const LoadingRow = (props) => {\r\n return (react_1.default.createElement(\"tr\", { \"data-row-index\": props.index, style: { height: \"73px\" } },\r\n react_1.default.createElement(\"th\", { scope: \"row\", className: \"text-muted\" },\r\n \"Loading \",\r\n props.index != null ? `${props.index}...` : \"...\"),\r\n react_1.default.createElement(\"td\", { className: \"d-none d-lg-table-cell\" }),\r\n react_1.default.createElement(\"td\", null),\r\n react_1.default.createElement(\"td\", null)));\r\n };\r\n const LastRow = () => {\r\n return (react_1.default.createElement(\"tr\", { style: { height: \"73px\" } },\r\n react_1.default.createElement(\"th\", { scope: \"row\", className: \"text-muted\" },\r\n \"Cannot load more than \",\r\n maxTotalItems.current,\r\n \" at this time\"),\r\n react_1.default.createElement(\"td\", { className: \"d-none d-lg-table-cell\" }),\r\n react_1.default.createElement(\"td\", null),\r\n react_1.default.createElement(\"td\", null)));\r\n };\r\n /** The Row component. This should be a table row, and noted that we don't use the style that regular `react-window` examples pass in.*/\r\n function TableRow({ index }) {\r\n const person = people.current.get(index);\r\n if (index >= maxTotalItems.current) {\r\n return react_1.default.createElement(LastRow, null);\r\n }\r\n else if (person == null) {\r\n return react_1.default.createElement(LoadingRow, { index: index });\r\n }\r\n else {\r\n return react_1.default.createElement(PersonRow, { person: person, index: index });\r\n }\r\n }\r\n const Table = () => {\r\n // Every row is loaded except for our loading indicator row.\r\n const isItemLoaded = (index) => {\r\n const person = people.current.get(index);\r\n return person != null;\r\n };\r\n let itemCount = count !== null && count !== void 0 ? count : 0;\r\n if (itemCount > maxTotalItems.current) {\r\n itemCount = maxTotalItems.current + 1;\r\n }\r\n return (react_1.default.createElement(controls_1.ShowWhen, { is: count != null },\r\n react_1.default.createElement(InfiniteTable_1.InfiniteTable, { count: itemCount, header: react_1.default.createElement(TableHeader, null), isItemLoaded: isItemLoaded, itemSize: 73, loadMore: (startIndex, endIndex) => scrollData.getMoreItems(startIndex, endIndex), minimumBatchSize: 128, row: TableRow })));\r\n };\r\n const Body = () => {\r\n return (react_1.default.createElement(\"div\", { className: \"table-responsive\" },\r\n react_1.default.createElement(controls_1.ShowWhen, { is: !!org },\r\n react_1.default.createElement(Table, null))));\r\n };\r\n return (react_1.default.createElement(reactstrap_1.Card, null,\r\n react_1.default.createElement(components_1.Loader, { isLoadedWhen: !isLoading && !!org && people != null, style: { minHeight: \"12rem\" }, message: \"Loading Users...\" },\r\n react_1.default.createElement(Header, null),\r\n react_1.default.createElement(Body, null))));\r\n});\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DeleteUserDialog = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst SingletonDialogBase_1 = require(\"./SingletonDialogBase\");\r\n/** Modal interaction to remove a person from their org */\r\nclass DeleteUserDialog extends SingletonDialogBase_1.SingletonDialogBase {\r\n static open(user, onSubmit) {\r\n DeleteUserDialog.instance.open(user, onSubmit);\r\n }\r\n static close() {\r\n DeleteUserDialog.instance.close();\r\n }\r\n // Instance\r\n constructor(props) {\r\n super(props);\r\n DeleteUserDialog.instance = this;\r\n this.headerClassname = \"bg-gradient-danger\";\r\n }\r\n modalHeader() {\r\n return react_1.default.createElement(react_1.default.Fragment, null, \"Delete User\");\r\n }\r\n modalBody() {\r\n var _a;\r\n let display = api_1.Utils.userDisplay((_a = this.state.data) === null || _a === void 0 ? void 0 : _a.user);\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n \"Are you sure you want to permanently remove \",\r\n react_1.default.createElement(\"strong\", null, display),\r\n \" \",\r\n \"from your organization?\"));\r\n }\r\n modalFooter() {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(\"button\", { type: \"button\", className: \"btn btn-secondary\", onClick: this.close.bind(this), title: \"Close\" }, \"Close\"),\r\n \" \",\r\n react_1.default.createElement(\"button\", { type: \"button\", className: \"btn btn-danger\", onClick: this.submit.bind(this), title: \"Delete User\" }, \"Delete\")));\r\n }\r\n}\r\nexports.DeleteUserDialog = DeleteUserDialog;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DialogBase = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst DialogStyleType_1 = require(\"./DialogStyleType\");\r\nclass DialogBase {\r\n constructor() {\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n this.title = \"\";\r\n this.style = DialogStyleType_1.DialogStyleType.Normal;\r\n this.actions = [];\r\n }\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Responsible for rendering the modal dialog header content. By default the header contains the\r\n * value defined in the title property. This can be overridden if desired.\r\n */\r\n headerContent() {\r\n return react_1.default.createElement(react_1.default.Fragment, null, this.title);\r\n }\r\n /**\r\n * Responsible for rendering the modal dialog footer content. By default the footer contains\r\n * buttons for all items in the actions array property. This can be overridden if desired.\r\n */\r\n footerContent() {\r\n return react_1.default.createElement(react_1.default.Fragment, null, \"FOOTER!\");\r\n }\r\n renderHeader() {\r\n const content = this.headerContent();\r\n if (content) {\r\n return react_1.default.createElement(reactstrap_1.ModalHeader, null, content);\r\n }\r\n else {\r\n return undefined;\r\n }\r\n }\r\n renderBody() {\r\n const content = this.bodyContent();\r\n if (content) {\r\n return react_1.default.createElement(reactstrap_1.ModalBody, null, content);\r\n }\r\n else {\r\n return undefined;\r\n }\r\n }\r\n renderFooter() {\r\n const content = this.footerContent();\r\n if (content) {\r\n return react_1.default.createElement(reactstrap_1.ModalFooter, null, content);\r\n }\r\n else {\r\n return undefined;\r\n }\r\n }\r\n Render() {\r\n return (react_1.default.createElement(reactstrap_1.Modal, null,\r\n this.renderHeader(),\r\n react_1.default.createElement(reactstrap_1.ModalBody, null, this.bodyContent()),\r\n react_1.default.createElement(reactstrap_1.ModalHeader, null, this.footerContent())));\r\n }\r\n}\r\nexports.DialogBase = DialogBase;\r\n","\"use strict\";\r\n/***************************************************************************************************\r\n * DialogManagerUi is responsible for the actual rendering of the current dialog component defined\r\n * by the DialogManager. DialogManager and DialogManagerUI communicate via the setCurrentDialogRef\r\n * method on the DialogManagerLink class.\r\n **************************************************************************************************/\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DialogManagerUi = void 0;\r\nconst React = __importStar(require(\"react\"));\r\nconst DialogManagerLink_1 = require(\"./DialogManagerLink\");\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nconst DialogManagerUi = () => {\r\n //////////[ Define ]//////////////////////////////////////////////////////////////////////////////\r\n let [currentDialog, setCurrentDialog] = React.useState(null);\r\n DialogManagerLink_1.DialogManagerLink.setCurrentDialogRef = setCurrentDialog;\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n if (currentDialog) {\r\n return React.createElement(React.Fragment, null, currentDialog);\r\n }\r\n else {\r\n return null;\r\n }\r\n};\r\nexports.DialogManagerUi = DialogManagerUi;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.InviteUserDialog = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst SingletonDialogBase_1 = require(\"./SingletonDialogBase\");\r\nconst PeoplePicker_1 = require(\"../components/pickers/PeoplePicker\");\r\nclass InviteUserDialog extends SingletonDialogBase_1.SingletonDialogBase {\r\n static open(invite, onSubmit) {\r\n if (!invite)\r\n invite = [];\r\n InviteUserDialog.instance.open(invite, onSubmit);\r\n }\r\n static close() {\r\n InviteUserDialog.instance.close();\r\n }\r\n // Instance\r\n constructor(props) {\r\n super(props);\r\n InviteUserDialog.instance = this;\r\n }\r\n onPeoplePickerChange(emails) {\r\n const data = emails.map((e) => {\r\n return { token: e };\r\n });\r\n this.setState({ data: data });\r\n }\r\n modalHeader() {\r\n return react_1.default.createElement(react_1.default.Fragment, null, \"Invite Users\");\r\n }\r\n modalBody() {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(PeoplePicker_1.PeoplePicker, { allowInvite: true, onChange: this.onPeoplePickerChange.bind(this), title: \"Enter one or more E-mail addresses\", placeholder: \"Enter one or more E-mail addresses\" })));\r\n }\r\n modalFooter() {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(\"button\", { type: \"button\", className: \"btn btn-outline-secondary\", onClick: this.close.bind(this), title: \"Close\" }, \"Close\"),\r\n \" \",\r\n react_1.default.createElement(\"button\", { type: \"button\", className: \"btn btn-primary\", onClick: this.submit.bind(this), title: \"Invite User\" }, \"Invite\")));\r\n }\r\n}\r\nexports.InviteUserDialog = InviteUserDialog;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PublicPlayerWidget = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst sanitize_html_1 = __importDefault(require(\"sanitize-html\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst components_1 = require(\"../components\");\r\nconst TranscriptViewer_1 = require(\"../components/controls/TranscriptViewer\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexports.PublicPlayerWidget = (0, mobx_react_lite_1.observer)((props) => {\r\n const [isLoading, setIsLoading] = (0, react_1.useState)(true);\r\n const [hasError, setHasError] = (0, react_1.useState)(false);\r\n const [errorMsg, setErrorMsg] = (0, react_1.useState)(\"\");\r\n const [showTranscript, setShowTranscript] = react_1.default.useState(false);\r\n const [session, setSession] = (0, react_1.useState)(undefined);\r\n const isValid = props.orgRoute && props.sessionRoute;\r\n /**\r\n * Runs the first time the play button is clicked after the widget loads.\r\n */\r\n function onFirstPlay() {\r\n if (props.userRoute) {\r\n api_1.SessionsService.acknowledgePublicSession(props.orgRoute, props.sessionRoute, props.userRoute);\r\n }\r\n }\r\n function init() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // Determine whether the configuration is valid and define error messages if not\r\n if (isValid) {\r\n try {\r\n const session = yield api_1.SessionsService.readPublicAsync(props.orgRoute, props.sessionRoute);\r\n if (session) {\r\n setSession(session);\r\n setHasError(false);\r\n setErrorMsg(\"\");\r\n setIsLoading(false);\r\n }\r\n else {\r\n setHasError(true);\r\n setErrorMsg(\"Soundbite clip not found.\");\r\n setIsLoading(false);\r\n }\r\n }\r\n catch (ex) {\r\n setHasError(true);\r\n setErrorMsg(\"An error occurred trying to retrieve the Soundbite clip. See logs for additional error details.\");\r\n }\r\n }\r\n else {\r\n setHasError(true);\r\n if (!props.orgRoute && !props.sessionRoute) {\r\n setErrorMsg(\"Public Player Widget requires organization route and session route to be set.\");\r\n }\r\n else if (!props.orgRoute) {\r\n setErrorMsg(\"Public Player Widget requires organization route to be set.\");\r\n }\r\n else {\r\n setErrorMsg(\"Public Player Widget requires session route to be set.\");\r\n }\r\n }\r\n });\r\n }\r\n (0, react_1.useEffect)(() => {\r\n init();\r\n }, [props.orgRoute, props.sessionRoute]);\r\n function Agenda() {\r\n var _a, _b, _c, _d;\r\n const promptText = (_b = (_a = session === null || session === void 0 ? void 0 : session.prompts[0].text) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : \"\";\r\n if (props.showCallToAction !== false && promptText.length > 0) {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(\"h3\", { className: \"mb-0 mt-3\" }, (_c = props.callToActionTitle) !== null && _c !== void 0 ? _c : \"Call to Action\"),\r\n react_1.default.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: (_d = props.callToActionText) !== null && _d !== void 0 ? _d : (0, sanitize_html_1.default)(promptText),\r\n } })));\r\n }\r\n else {\r\n return react_1.default.createElement(react_1.default.Fragment, null);\r\n }\r\n }\r\n function Title() {\r\n var _a;\r\n if (props.showTitle !== false) {\r\n return (react_1.default.createElement(\"div\", { className: \"bg-gradient-primary modal-header\" },\r\n react_1.default.createElement(\"h5\", { className: \"modal-title\" }, (_a = props.title) !== null && _a !== void 0 ? _a : session === null || session === void 0 ? void 0 : session.name,\r\n react_1.default.createElement(SubTitle, null))));\r\n }\r\n else {\r\n return react_1.default.createElement(react_1.default.Fragment, null);\r\n }\r\n }\r\n function SubTitle() {\r\n var _a;\r\n if (props.showSubTitle !== false) {\r\n return (react_1.default.createElement(\"span\", { className: \"sb-modal-header-subtitle\" }, (_a = props.subTitle) !== null && _a !== void 0 ? _a : api_1.Utils.formatRelativeDate(session === null || session === void 0 ? void 0 : session.publish)));\r\n }\r\n else {\r\n return react_1.default.createElement(react_1.default.Fragment, null);\r\n }\r\n }\r\n function Render() {\r\n if (hasError) {\r\n return RenderError();\r\n }\r\n else {\r\n if (isLoading === true) {\r\n return RenderLoading();\r\n }\r\n else {\r\n return RenderPlayer();\r\n }\r\n }\r\n }\r\n function RenderLoading() {\r\n return react_1.default.createElement(react_1.default.Fragment, null, \"Loading...\");\r\n }\r\n function RenderError() {\r\n if (props.hideOnError === true) {\r\n return react_1.default.createElement(react_1.default.Fragment, null);\r\n }\r\n else {\r\n // Default error display\r\n return react_1.default.createElement(\"div\", null, errorMsg);\r\n }\r\n }\r\n function getTranscriptButtonMsg() {\r\n var _a, _b, _c;\r\n const state = (_c = (_b = (_a = session === null || session === void 0 ? void 0 : session.prompts[0]) === null || _a === void 0 ? void 0 : _a.clips[0]) === null || _b === void 0 ? void 0 : _b.transcriptState) !== null && _c !== void 0 ? _c : api_1.TranscriptState.None;\r\n if (showTranscript) {\r\n return \"Hide Transcript\";\r\n }\r\n else {\r\n switch (state) {\r\n case api_1.TranscriptState.Available:\r\n return \"Show Transcript\";\r\n case api_1.TranscriptState.Requested:\r\n return \"Transcript Processing\";\r\n default:\r\n return \"Transcript Error\";\r\n }\r\n }\r\n }\r\n function isTranscriptBtnVisible() {\r\n var _a, _b, _c;\r\n const state = (_c = (_b = (_a = session === null || session === void 0 ? void 0 : session.prompts[0]) === null || _a === void 0 ? void 0 : _a.clips[0]) === null || _b === void 0 ? void 0 : _b.transcriptState) !== null && _c !== void 0 ? _c : api_1.TranscriptState.None;\r\n return state != api_1.TranscriptState.None;\r\n }\r\n function isTranscriptBtnEnabled() {\r\n var _a, _b, _c;\r\n const state = (_c = (_b = (_a = session === null || session === void 0 ? void 0 : session.prompts[0]) === null || _a === void 0 ? void 0 : _a.clips[0]) === null || _b === void 0 ? void 0 : _b.transcriptState) !== null && _c !== void 0 ? _c : api_1.TranscriptState.None;\r\n return state == api_1.TranscriptState.Available;\r\n }\r\n function onShowTranscript() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n setShowTranscript(!showTranscript);\r\n });\r\n }\r\n function TranscriptButton() {\r\n return (react_1.default.createElement(reactstrap_1.Button, { disabled: !isTranscriptBtnEnabled(), onClick: onShowTranscript, color: \"secondary\", size: \"sm\", type: \"button\", outline: true, title: getTranscriptButtonMsg() }, getTranscriptButtonMsg()));\r\n }\r\n function RenderPlayer() {\r\n var _a, _b, _c, _d;\r\n return (react_1.default.createElement(\"div\", null,\r\n react_1.default.createElement(Title, null),\r\n react_1.default.createElement(\"div\", { className: \"modal-body\" },\r\n react_1.default.createElement(components_1.SoloPlayer, { allowDownload: props.allowDownload, session: session, onFirstPlay: onFirstPlay }),\r\n react_1.default.createElement(Agenda, null),\r\n react_1.default.createElement(components_1.ShowWhen, { is: !!session },\r\n react_1.default.createElement(components_1.ShowWhen, { is: isTranscriptBtnVisible() && !showTranscript },\r\n react_1.default.createElement(TranscriptButton, null)),\r\n react_1.default.createElement(TranscriptViewer_1.TranscriptViewer, { title: react_1.default.createElement(\"h3\", { className: \"mb-0 mt-3\" },\r\n \"Transcript \\u00A0\",\r\n react_1.default.createElement(TranscriptButton, null)), orgRoute: props.orgRoute, sessionRoute: session === null || session === void 0 ? void 0 : session.route, promptRoute: (_a = session === null || session === void 0 ? void 0 : session.prompts[0]) === null || _a === void 0 ? void 0 : _a.route, clipRoute: (_c = (_b = session === null || session === void 0 ? void 0 : session.prompts[0]) === null || _b === void 0 ? void 0 : _b.clips[0]) === null || _c === void 0 ? void 0 : _c.route, isExpanded: showTranscript, isPublic: true, transcriptState: (_d = props.session) === null || _d === void 0 ? void 0 : _d.prompts[0].clips[0].transcriptState })))));\r\n }\r\n return Render();\r\n});\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ReportView = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst moment_1 = __importDefault(require(\"moment\"));\r\nconst react_datetime_1 = __importDefault(require(\"react-datetime\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst controls_1 = require(\"../controls\");\r\nconst store_1 = require(\"../../store\");\r\nconst ActivityCards_1 = require(\"./ActivityCards\");\r\nconst ContentCards_1 = require(\"./ContentCards\");\r\nconst ErrorDlg_1 = require(\"../ErrorDlg\");\r\nconst ActivityGraphs_1 = require(\"./ActivityGraphs\");\r\nconst utcNow = (0, moment_1.default)().utc();\r\n/** Shows an org-level set of reports for the given org */\r\nexports.ReportView = (0, mobx_react_lite_1.observer)((props) => {\r\n var _a;\r\n const [startDate, setStartDate] = (0, react_1.useState)((0, moment_1.default)().utc().add({ months: -1 }).format(\"L\"));\r\n const [endDate, setEndDate] = (0, react_1.useState)((0, moment_1.default)().utc().format(\"L\"));\r\n const [activityReport, setActivityReport] = (0, react_1.useState)(undefined);\r\n const [contentReport, setContentReport] = (0, react_1.useState)(undefined);\r\n function applyDateToNow(argMoment) {\r\n let newMoment = (0, moment_1.default)().utc();\r\n newMoment = newMoment\r\n .year(argMoment.year())\r\n .month(argMoment.month())\r\n .day(argMoment.day());\r\n return newMoment;\r\n }\r\n const load = () => __awaiter(void 0, void 0, void 0, function* () {\r\n try {\r\n setActivityReport(undefined);\r\n setContentReport(undefined);\r\n const orgRoute = props.orgRoute;\r\n if (!orgRoute) {\r\n throw new Error(\"Must have initialized organization to load session\");\r\n }\r\n const startDateArg = applyDateToNow((0, moment_1.default)(startDate)).toISOString();\r\n const endDateArg = applyDateToNow((0, moment_1.default)(endDate)).toISOString();\r\n const activityPromise = api_1.ReportService.activityReportAsync(orgRoute, startDateArg, endDateArg);\r\n const contentPromise = api_1.ReportService.contentReportAsync(orgRoute, startDateArg, endDateArg);\r\n const [activity, content] = yield Promise.all([\r\n activityPromise,\r\n contentPromise,\r\n ]);\r\n if ((activity === null || activity === void 0 ? void 0 : activity.startUtc) != null && startDate == null) {\r\n setStartDate(activity.startUtc);\r\n }\r\n if ((activity === null || activity === void 0 ? void 0 : activity.endUtc) != null && endDate == null) {\r\n setEndDate(activity.endUtc);\r\n }\r\n setActivityReport(activity);\r\n setContentReport(content);\r\n }\r\n catch (err) {\r\n ErrorDlg_1.ErrorDlg.show(err, \"Error Loading Activity Report\", \"Unable to reach reporting service\");\r\n }\r\n });\r\n function onStartDateChange(arg) {\r\n const argMoment = arg;\r\n let newMoment = (0, moment_1.default)().utc();\r\n newMoment = newMoment\r\n .year(argMoment.year())\r\n .month(argMoment.month())\r\n .day(argMoment.day());\r\n setStartDate(newMoment.toISOString());\r\n }\r\n function onEndDateChange(arg) {\r\n const argMoment = arg;\r\n let newMoment = (0, moment_1.default)().utc();\r\n newMoment = newMoment\r\n .year(argMoment.year())\r\n .month(argMoment.month())\r\n .day(argMoment.day());\r\n setEndDate(newMoment.toISOString());\r\n }\r\n function isValidStartDate(currentDate, selectedDate) {\r\n if (currentDate.isAfter(utcNow)) {\r\n return false;\r\n }\r\n if (currentDate.isAfter((0, moment_1.default)(endDate))) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function isValidEndDate(currentDate, selectedDate) {\r\n if (currentDate.isAfter(utcNow)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n const onRefresh = () => __awaiter(void 0, void 0, void 0, function* () {\r\n yield load();\r\n });\r\n (0, react_1.useEffect)(() => {\r\n load();\r\n // eslint-disable-next-line\r\n }, [startDate, endDate]);\r\n const currentDateDisplay = (0, moment_1.default)().format(\"LLL\");\r\n const isLoading = !activityReport || !contentReport;\r\n return (react_1.default.createElement(\"div\", { className: \"sb-reports\" },\r\n react_1.default.createElement(reactstrap_1.Alert, { color: \"light\" },\r\n \"Reporting is Currently in Preview. For more info please contact\",\r\n \" \",\r\n react_1.default.createElement(\"a\", { className: \"alert-link\", href: \"mailto:Support@Soundbite.Freshdesk.Com\" }, \"Support@Soundbite.Freshdesk.Com\")),\r\n react_1.default.createElement(reactstrap_1.Card, null,\r\n react_1.default.createElement(reactstrap_1.CardHeader, { className: \"border-0\" },\r\n react_1.default.createElement(reactstrap_1.Row, null,\r\n react_1.default.createElement(reactstrap_1.Col, null,\r\n react_1.default.createElement(\"h3\", { className: \"mb-0\" },\r\n react_1.default.createElement(\"i\", { className: \"fas fa-chart-area d-none d-sm-inline\" }), (_a = store_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 :\r\n _a.details.name,\r\n \" Soundbite Reports\"))),\r\n react_1.default.createElement(reactstrap_1.Row, { className: \"pt-2\" },\r\n react_1.default.createElement(reactstrap_1.Col, { md: \"12\", lg: \"6\" },\r\n react_1.default.createElement(reactstrap_1.FormGroup, { className: \"sb-datepicker\" },\r\n react_1.default.createElement(reactstrap_1.InputGroup, { className: \"pr-2\" },\r\n react_1.default.createElement(controls_1.FaPrepend, { icon: \"calendar-alt\" }),\r\n react_1.default.createElement(react_datetime_1.default, { timeFormat: false, defaultValue: startDate, onChange: onStartDateChange, className: \"sb-date-picker\", isValidDate: isValidStartDate }),\r\n react_1.default.createElement(react_datetime_1.default, { timeFormat: false, defaultValue: endDate, onChange: onEndDateChange, className: \"sb-date-picker\", isValidDate: isValidEndDate })))),\r\n react_1.default.createElement(reactstrap_1.Col, { sm: \"12\", md: \"12\", lg: \"6\", className: \"text-right\" },\r\n react_1.default.createElement(\"span\", { className: \"text-sm text-muted pr-2\" }, currentDateDisplay),\r\n react_1.default.createElement(reactstrap_1.Button, { outline: true, color: \"secondary\", className: \"btn-icon btn-sm\", onClick: onRefresh, disabled: isLoading, title: \"Refresh Report\" },\r\n react_1.default.createElement(\"span\", { className: \"btn-inner--icon\" },\r\n react_1.default.createElement(\"i\", { className: `fas fa-sync-alt ${isLoading ? \"fa-spin\" : \"\"}` }))))))),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: !!activityReport && !!contentReport },\r\n react_1.default.createElement(ActivityCards_1.ActivityCards, { activityReport: activityReport }),\r\n react_1.default.createElement(ActivityGraphs_1.ActivityGraphs, { contentReport: contentReport }),\r\n react_1.default.createElement(ContentCards_1.ContentCards, { orgRoute: props.orgRoute, contentReport: contentReport }))));\r\n});\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ActivityGraphs = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst controls_1 = require(\"../controls\");\r\nconst GraphCard_1 = require(\"./GraphCard\");\r\n/** Visualizes the metrics for the OrgContentReport object */\r\nexports.ActivityGraphs = (0, mobx_react_lite_1.observer)((props) => {\r\n var _a, _b;\r\n return (react_1.default.createElement(controls_1.ShowWhen, { is: !!props.contentReport },\r\n react_1.default.createElement(reactstrap_1.Row, null,\r\n react_1.default.createElement(reactstrap_1.Col, { sm: \"12\", lg: \"6\" },\r\n react_1.default.createElement(GraphCard_1.GraphCard, { className: \"mt-4\", data: (_a = props.contentReport) === null || _a === void 0 ? void 0 : _a.sessionsCountOverTime, fillDateRange: true })),\r\n react_1.default.createElement(reactstrap_1.Col, { sm: \"12\", lg: \"6\" },\r\n react_1.default.createElement(GraphCard_1.GraphCard, { className: \"mt-4\", data: (_b = props.contentReport) === null || _b === void 0 ? void 0 : _b.consumeCountOverTime, fillDateRange: true })))));\r\n});\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./ColorConfig\"), exports);\r\n__exportStar(require(\"./ColorPicker\"), exports);\r\n__exportStar(require(\"./ThemeBanner\"), exports);\r\n__exportStar(require(\"./ThemeConfig\"), exports);\r\n__exportStar(require(\"./ThemeDemo\"), exports);\r\n__exportStar(require(\"./ThemePicker\"), exports);\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ThemeBanner = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst styles_1 = require(\"../../styles\");\r\nconst ShowWhen_1 = require(\"../controls/ShowWhen\");\r\nconst ThemeConfig_1 = require(\"./ThemeConfig\");\r\nconst dialogs_1 = require(\"../../dialogs\");\r\nconst WidgetStore_1 = require(\"../../store/WidgetStore\");\r\nconst styles = (0, react_1.css) `\r\n background-color: ${styles_1.GlobalTheme.current.colors.neutrals.midground};\r\n border-bottom: 3px solid ${styles_1.GlobalTheme.current.colors.neutrals.background};\r\n color: ${styles_1.GlobalTheme.current.colors.neutrals.max};\r\n z-index: 3;\r\n padding: 1rem;\r\n\r\n @media (min-width: 768px) {\r\n margin-left: 250px;\r\n }\r\n`;\r\n/** A bar for the top of the page used to indicate theme configuration status and actions */\r\nconst ThemeBanner = () => {\r\n var _a, _b;\r\n const [isEditing, setIsEditing] = (0, react_2.useState)(false);\r\n function onEdit() {\r\n setIsEditing(!isEditing);\r\n }\r\n function onPublish() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n dialogs_1.DialogManager.ShowConfirmDialog(\"Publish Theme\", \"Are you sure you want to publish this theme? The next time users fully refresh Soundbite, they will see your new theme\", () => __awaiter(this, void 0, void 0, function* () {\r\n var _a;\r\n const orgRoute = (_a = WidgetStore_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.details.route;\r\n if (orgRoute == null) {\r\n return;\r\n }\r\n styles_1.GlobalTheme.current.name = api_1.ThemeName.Custom;\r\n const newTheme = yield api_1.OrganizationsService.updateThemeAsync(orgRoute, styles_1.GlobalTheme.current);\r\n styles_1.GlobalTheme.set(newTheme, orgRoute, true);\r\n styles_1.GlobalTheme.apply();\r\n }));\r\n });\r\n }\r\n function onAbandon() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n dialogs_1.DialogManager.ShowConfirmDialog(\"Abandon Draft\", \"Are you sure you want to abandon your draft theme?\", () => {\r\n var _a, _b, _c, _d;\r\n const orgTheme = (_b = (_a = WidgetStore_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.theme;\r\n if (orgTheme != null) {\r\n const orgRoute = (_c = WidgetStore_1.WidgetStore.organizations.currentOrg) === null || _c === void 0 ? void 0 : _c.details.route;\r\n if (orgRoute != null) {\r\n styles_1.GlobalTheme.set(orgTheme, orgRoute, true);\r\n }\r\n }\r\n else {\r\n styles_1.GlobalTheme.clear((_d = WidgetStore_1.WidgetStore.organizations.currentOrg) === null || _d === void 0 ? void 0 : _d.details.route);\r\n }\r\n styles_1.GlobalTheme.apply();\r\n }, \"Abandon\", dialogs_1.DialogStyleType.Danger);\r\n });\r\n }\r\n const asserts = ((_b = (_a = styles_1.GlobalTheme.lastTester) === null || _a === void 0 ? void 0 : _a.asserts) !== null && _b !== void 0 ? _b : []).filter((assert) => assert.message != null);\r\n return ((0, react_1.jsx)(react_2.default.Fragment, null,\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: styles_1.GlobalTheme.isNeedReload },\r\n (0, react_1.jsx)(\"div\", { className: \"\", css: styles },\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, null, \"New Theme is Available; Reload to Apply\"),\r\n (0, react_1.jsx)(reactstrap_1.Col, { className: \"text-right\" },\r\n (0, react_1.jsx)(reactstrap_1.Button, { className: \"btn-sm\", color: \"primary\", onClick: () => {\r\n styles_1.GlobalTheme.apply();\r\n } }, \"Reload\"))))),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: styles_1.GlobalTheme.current.name === api_1.ThemeName.Draft },\r\n (0, react_1.jsx)(\"div\", { className: \"\", css: styles },\r\n (0, react_1.jsx)(\"h1\", { className: \"text-muted text-sm uppercase\" }, \"DRAFT THEME\"),\r\n (0, react_1.jsx)(\"p\", { className: \"text-muted\" }, \"You are previewing this draft theme. Until you publish your changes, no one else will see these changes.\"),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: asserts.length > 0 },\r\n (0, react_1.jsx)(\"div\", { className: \"bg-warning p-2 rounded mb-2\" },\r\n (0, react_1.jsx)(\"h2\", { className: \"text-white text-sm text-uppercase\" }, \"Theme Warnings\"),\r\n (0, react_1.jsx)(\"ul\", null, asserts.map((assert) => {\r\n return (0, react_1.jsx)(\"li\", null, assert.message);\r\n })))),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: isEditing },\r\n (0, react_1.jsx)(ThemeConfig_1.ThemeConfig, null)),\r\n (0, react_1.jsx)(\"div\", { className: \"text-right\" },\r\n (0, react_1.jsx)(reactstrap_1.Button, { color: \"secondary\", onClick: onPublish }, \"Publish\"),\r\n (0, react_1.jsx)(reactstrap_1.Button, { color: \"secondary\", onClick: onEdit, outline: !isEditing }, \"Edit\"),\r\n (0, react_1.jsx)(reactstrap_1.Button, { color: \"secondary\", outline: true, onClick: onAbandon }, \"Abandon\"))))));\r\n};\r\nexports.ThemeBanner = ThemeBanner;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ThemeDemo = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = require(\"react\");\r\nconst animated_1 = __importDefault(require(\"react-select/animated\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst controls_1 = require(\"../controls\");\r\nconst pickers_1 = require(\"../pickers\");\r\nconst styles_1 = require(\"../../styles\");\r\nconst RecordAndPlay_1 = require(\"../RecordAndPlay\");\r\nconst MediaPlayerContext_1 = require(\"../video/context/MediaPlayerContext\");\r\nconst SoundScrubber2_1 = require(\"../SoundScrubber2\");\r\nconst baseStyles = (0, react_1.css) `\r\n table.sb-theme-table {\r\n border-collapse: separate !important;\r\n width: 100%;\r\n }\r\n\r\n table.sb-theme-table td {\r\n border-radius: 0.15em;\r\n padding-left: 1rem;\r\n }\r\n\r\n .sb-color-background {\r\n padding: 20px;\r\n border-radius: 0.35em;\r\n }\r\n\r\n .color-swatch-header {\r\n border: 1px solid ${styles_1.GlobalTheme.current.colors.neutrals.max};\r\n }\r\n\r\n .sb-swatch-gradient {\r\n text-transform: capitalize;\r\n }\r\n\r\n .sb-button-set button,\r\n .sb-button-set h4 {\r\n text-transform: capitalize;\r\n }\r\n`;\r\nconst DemoPlayer = (props) => {\r\n const [context] = (0, react_2.useState)(() => new MediaPlayerContext_1.MediaPlayerContext(\"audio\"));\r\n (0, react_2.useEffect)(() => {\r\n context.load(undefined, \"/audio/Martin Luther King.mp3\");\r\n }, []);\r\n return ((0, react_1.jsx)(\"div\", { className: \"sb-card\" },\r\n (0, react_1.jsx)(controls_1.PlayButton, { context: context, disabled: props.disabled }),\r\n (0, react_1.jsx)(SoundScrubber2_1.Scrubber2, { context: context, disabled: props.disabled })));\r\n};\r\nclass ThemeDemo extends react_2.Component {\r\n constructor(props) {\r\n super(props);\r\n this.animatedComponents = (0, animated_1.default)();\r\n this.state = { tick: 0 };\r\n setInterval(() => {\r\n this.setState({ tick: this.state.tick + 1 });\r\n }, 1000);\r\n }\r\n neutralRow(name, backColor, textColor) {\r\n return ((0, react_1.jsx)(\"tr\", { style: {\r\n backgroundColor: backColor,\r\n color: textColor,\r\n } },\r\n (0, react_1.jsx)(\"td\", null,\r\n name,\r\n \" \",\r\n backColor)));\r\n }\r\n swatch(name, color) {\r\n return ((0, react_1.jsx)(\"div\", { className: \"col-md-3 col-lg-2\" },\r\n (0, react_1.jsx)(\"div\", { className: \"color-swatch\" },\r\n (0, react_1.jsx)(\"div\", { className: \"color-swatch-header\", style: {\r\n backgroundColor: color,\r\n } }),\r\n (0, react_1.jsx)(\"div\", { className: \"color-swatch-body\" },\r\n name,\r\n \" \",\r\n color))));\r\n }\r\n gradient(style) {\r\n return ((0, react_1.jsx)(\"div\", { className: `bg-gradient-${style} p-2 sb-swatch-gradient` },\r\n (0, react_1.jsx)(\"p\", null, style)));\r\n }\r\n gradientExamples() {\r\n return ((0, react_1.jsx)(\"div\", null,\r\n (0, react_1.jsx)(\"h2\", null, \"Gradients\"),\r\n this.gradient(\"primary\"),\r\n this.gradient(\"brand\"),\r\n this.gradient(\"secondary\"),\r\n this.gradient(\"default\"),\r\n this.gradient(\"info\"),\r\n this.gradient(\"success\"),\r\n this.gradient(\"warning\"),\r\n this.gradient(\"danger\"),\r\n this.gradient(\"white\"),\r\n this.gradient(\"light\"),\r\n this.gradient(\"neutral\"),\r\n this.gradient(\"dark\"),\r\n this.gradient(\"darker\")));\r\n }\r\n colors() {\r\n return ((0, react_1.jsx)(\"div\", { className: \"sb-card\" },\r\n (0, react_1.jsx)(\"h2\", null, \"Colors\"),\r\n (0, react_1.jsx)(\"div\", { style: {\r\n backgroundColor: styles_1.GlobalTheme.current.colors.neutrals.min,\r\n }, className: \"sb-color-background\" },\r\n (0, react_1.jsx)(\"h3\", null, \"Brand\"),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n this.swatch(\"First\", styles_1.GlobalTheme.current.colors.brand.first),\r\n this.swatch(\"Second\", styles_1.GlobalTheme.current.colors.brand.second)),\r\n (0, react_1.jsx)(\"h3\", null, \"Bootstrap\"),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n this.swatch(\"Default\", styles_1.GlobalTheme.current.colors.bootstrap.default),\r\n this.swatch(\"Primary\", styles_1.GlobalTheme.current.colors.bootstrap.primary),\r\n this.swatch(\"Secondary\", styles_1.GlobalTheme.current.colors.bootstrap.secondary),\r\n this.swatch(\"Info\", styles_1.GlobalTheme.current.colors.bootstrap.info),\r\n this.swatch(\"Success\", styles_1.GlobalTheme.current.colors.bootstrap.success),\r\n this.swatch(\"Danger\", styles_1.GlobalTheme.current.colors.bootstrap.danger),\r\n this.swatch(\"Warning\", styles_1.GlobalTheme.current.colors.bootstrap.warning)),\r\n (0, react_1.jsx)(\"h2\", null, \"Hues\"),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n this.swatch(\"Red\", styles_1.GlobalTheme.current.colors.hues.red),\r\n this.swatch(\"Orange\", styles_1.GlobalTheme.current.colors.hues.orange),\r\n this.swatch(\"Yellow\", styles_1.GlobalTheme.current.colors.hues.yellow),\r\n this.swatch(\"Green\", styles_1.GlobalTheme.current.colors.hues.green),\r\n this.swatch(\"Blue\", styles_1.GlobalTheme.current.colors.hues.blue),\r\n this.swatch(\"Indigo\", styles_1.GlobalTheme.current.colors.hues.indigo),\r\n this.swatch(\"Violet\", styles_1.GlobalTheme.current.colors.hues.violet),\r\n this.swatch(\"Pink\", styles_1.GlobalTheme.current.colors.hues.pink),\r\n this.swatch(\"Teal\", styles_1.GlobalTheme.current.colors.hues.teal),\r\n this.swatch(\"Cyan\", styles_1.GlobalTheme.current.colors.hues.cyan)),\r\n (0, react_1.jsx)(\"h2\", null, \"Neutrals\"),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 4 },\r\n (0, react_1.jsx)(\"div\", { className: \"color-swatch\" },\r\n (0, react_1.jsx)(\"div\", { className: \"color-swatch-header\", style: {\r\n backgroundColor: styles_1.GlobalTheme.current.colors.neutrals.background,\r\n } }),\r\n (0, react_1.jsx)(\"div\", { className: \"color-swatch-body\" },\r\n \"Background \",\r\n styles_1.GlobalTheme.current.colors.neutrals.background))),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 4 },\r\n (0, react_1.jsx)(\"div\", { className: \"color-swatch\" },\r\n (0, react_1.jsx)(\"div\", { className: \"color-swatch-header\", style: {\r\n backgroundColor: styles_1.GlobalTheme.current.colors.neutrals.midground,\r\n } }),\r\n (0, react_1.jsx)(\"div\", { className: \"color-swatch-body\" },\r\n \"Midground \",\r\n styles_1.GlobalTheme.current.colors.neutrals.midground))),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 4 },\r\n (0, react_1.jsx)(\"div\", { className: \"color-swatch\" },\r\n (0, react_1.jsx)(\"div\", { className: \"color-swatch-header\", style: {\r\n backgroundColor: styles_1.GlobalTheme.current.colors.neutrals.foreground,\r\n } }),\r\n (0, react_1.jsx)(\"div\", { className: \"color-swatch-body\" },\r\n \"Foreground \",\r\n styles_1.GlobalTheme.current.colors.neutrals.foreground)))),\r\n (0, react_1.jsx)(\"table\", { className: \"sb-theme-table rounded\" },\r\n (0, react_1.jsx)(\"tbody\", null,\r\n this.neutralRow(\"Min\", styles_1.GlobalTheme.current.colors.neutrals.min, styles_1.GlobalTheme.current.colors.neutrals.max),\r\n this.neutralRow(\"100\", styles_1.GlobalTheme.current.colors.neutrals.n100, styles_1.GlobalTheme.current.colors.neutrals.max),\r\n this.neutralRow(\"200\", styles_1.GlobalTheme.current.colors.neutrals.n200, styles_1.GlobalTheme.current.colors.neutrals.max),\r\n this.neutralRow(\"300\", styles_1.GlobalTheme.current.colors.neutrals.n300, styles_1.GlobalTheme.current.colors.neutrals.max),\r\n this.neutralRow(\"400\", styles_1.GlobalTheme.current.colors.neutrals.n400, styles_1.GlobalTheme.current.colors.neutrals.max),\r\n this.neutralRow(\"500\", styles_1.GlobalTheme.current.colors.neutrals.n500, styles_1.GlobalTheme.current.colors.neutrals.max),\r\n this.neutralRow(\"600\", styles_1.GlobalTheme.current.colors.neutrals.n600, styles_1.GlobalTheme.current.colors.neutrals.min),\r\n this.neutralRow(\"700\", styles_1.GlobalTheme.current.colors.neutrals.n700, styles_1.GlobalTheme.current.colors.neutrals.min),\r\n this.neutralRow(\"800\", styles_1.GlobalTheme.current.colors.neutrals.n800, styles_1.GlobalTheme.current.colors.neutrals.min),\r\n this.neutralRow(\"900\", styles_1.GlobalTheme.current.colors.neutrals.n900, styles_1.GlobalTheme.current.colors.neutrals.min),\r\n this.neutralRow(\"max\", styles_1.GlobalTheme.current.colors.neutrals.max, styles_1.GlobalTheme.current.colors.neutrals.min))),\r\n this.gradientExamples())));\r\n }\r\n typography() {\r\n return ((0, react_1.jsx)(\"div\", { className: \"mb-4 p-2 sb-card\" },\r\n (0, react_1.jsx)(\"h2\", null, \"Typography\"),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: \"4\" },\r\n (0, react_1.jsx)(\"h4\", null, \"Font Family\"),\r\n (0, react_1.jsx)(\"p\", null, styles_1.GlobalTheme.current.fonts.fontFamily),\r\n (0, react_1.jsx)(\"h4\", null, \"Mono Font Family\"),\r\n (0, react_1.jsx)(\"p\", { style: { fontFamily: styles_1.GlobalTheme.current.fonts.fontFamilyMono } }, styles_1.GlobalTheme.current.fonts.fontFamilyMono)),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: \"4\" },\r\n (0, react_1.jsx)(\"h4\", null, \"Headers\"),\r\n (0, react_1.jsx)(\"h1\", null, \"Header 1\"),\r\n (0, react_1.jsx)(\"h2\", null, \"Header 2\"),\r\n (0, react_1.jsx)(\"h3\", null, \"Header 3\"),\r\n (0, react_1.jsx)(\"h4\", null, \"Header 4\"),\r\n (0, react_1.jsx)(\"h5\", null, \"Header 5\")),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: \"4\" },\r\n (0, react_1.jsx)(\"h4\", null, \"Normal Text\"),\r\n (0, react_1.jsx)(\"p\", null, \"The quick brown fox jumps over the lazy dog\"),\r\n (0, react_1.jsx)(\"h4\", null, \"Muted Text\"),\r\n (0, react_1.jsx)(\"p\", { className: \"text-muted\" }, \"The quick brown fox jumps over the lazy dog\")))));\r\n }\r\n buttonSet(color) {\r\n return ((0, react_1.jsx)(\"div\", { className: \"sb-button-set mt-3\" },\r\n (0, react_1.jsx)(\"h4\", null, color),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, { lg: 4, className: \"mt-1\" },\r\n (0, react_1.jsx)(reactstrap_1.Button, { color: color }, \"Normal\"),\r\n (0, react_1.jsx)(reactstrap_1.Button, { color: color, className: \"hover\" }, \"Hover\")),\r\n (0, react_1.jsx)(reactstrap_1.Col, { lg: 4, className: \"mt-1\" },\r\n (0, react_1.jsx)(reactstrap_1.Button, { color: color, className: \"focus active\" }, \"Focus\"),\r\n (0, react_1.jsx)(reactstrap_1.Button, { color: color, disabled: true }, \"Disabled\")),\r\n (0, react_1.jsx)(reactstrap_1.Col, { lg: 4, className: \"mt-1\" },\r\n (0, react_1.jsx)(reactstrap_1.Button, { color: color, outline: true }, \"Outline\"),\r\n (0, react_1.jsx)(reactstrap_1.Button, { color: color, outline: true, disabled: true }, \"Disabled\")))));\r\n }\r\n buttons() {\r\n return ((0, react_1.jsx)(\"div\", { className: \"mb-4 sb-card\" },\r\n (0, react_1.jsx)(\"h2\", null, \"Buttons\"),\r\n (0, react_1.jsx)(reactstrap_1.Row, { className: \"mb-4\" },\r\n (0, react_1.jsx)(reactstrap_1.Col, null,\r\n this.buttonSet(\"default\"),\r\n this.buttonSet(\"primary\"),\r\n this.buttonSet(\"secondary\"),\r\n this.buttonSet(\"info\"),\r\n this.buttonSet(\"success\"),\r\n this.buttonSet(\"warning\"),\r\n this.buttonSet(\"danger\"))),\r\n (0, react_1.jsx)(\"h4\", null, \"Block Buttons\"),\r\n (0, react_1.jsx)(reactstrap_1.Row, { className: \"mb-4\" },\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: \"4\" },\r\n (0, react_1.jsx)(reactstrap_1.Button, { className: \"btn-icon btn-block\", color: \"primary\" }, \"Save & Close\")),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: \"4\" },\r\n (0, react_1.jsx)(reactstrap_1.Button, { className: \"btn-icon btn-block\", color: \"danger\" },\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--icon mr-1\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faTimesCircle })),\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--text\" }, \"Icon Button\")))),\r\n (0, react_1.jsx)(reactstrap_1.Row, { className: \"mb-4\" },\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: \"4\" },\r\n (0, react_1.jsx)(\"h4\", null, \"Toggle\"),\r\n (0, react_1.jsx)(controls_1.Toggle, null)),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: \"4\" },\r\n (0, react_1.jsx)(\"h4\", null, \"Toggle Disabled\"),\r\n (0, react_1.jsx)(controls_1.Toggle, { disabled: true })),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: \"4\" },\r\n (0, react_1.jsx)(\"h4\", null, \"Spinner\"),\r\n (0, react_1.jsx)(reactstrap_1.Spinner, { type: \"grow\", className: \"sb-spinner-default\" })))));\r\n }\r\n cards() {\r\n return ((0, react_1.jsx)(\"div\", { className: \"mb-4\" },\r\n (0, react_1.jsx)(\"h2\", null, \"Cards\"),\r\n (0, react_1.jsx)(reactstrap_1.Row, { className: \"mb-3\" },\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: \"6\" },\r\n (0, react_1.jsx)(reactstrap_1.Card, null,\r\n (0, react_1.jsx)(reactstrap_1.CardHeader, { className: \"bg-transparent\" },\r\n (0, react_1.jsx)(reactstrap_1.Row, { className: \"align-items-center\" },\r\n (0, react_1.jsx)(reactstrap_1.Col, null,\r\n (0, react_1.jsx)(\"h1\", { className: \"mb-0\" }, \"Example Card\")))),\r\n (0, react_1.jsx)(reactstrap_1.CardBody, null,\r\n (0, react_1.jsx)(reactstrap_1.FormGroup, null,\r\n (0, react_1.jsx)(reactstrap_1.InputGroup, null,\r\n (0, react_1.jsx)(\"input\", { type: \"text\", className: \"form-control\", placeholder: \"Example Form Control\", \"aria-label\": \"Example Form Control\" }))),\r\n (0, react_1.jsx)(reactstrap_1.FormGroup, null,\r\n (0, react_1.jsx)(\"textarea\", { className: \"form-control\", placeholder: \"Example Text Area\" })),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, null,\r\n (0, react_1.jsx)(reactstrap_1.Button, { className: \"btn-icon btn-3 btn-block\", type: \"button\", color: \"secondary\" },\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--icon mr-1\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faTimesCircle })),\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--text\" }, \"Cancel\"))),\r\n (0, react_1.jsx)(reactstrap_1.Col, null,\r\n (0, react_1.jsx)(reactstrap_1.Button, { className: \"btn-icon btn-3 btn-block\", type: \"button\", color: \"primary\" },\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--icon mr-1\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faSave })),\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--text\" }, \"Save\"))))))),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: \"6\" },\r\n (0, react_1.jsx)(reactstrap_1.Card, null,\r\n (0, react_1.jsx)(reactstrap_1.CardHeader, { className: \"bg-transparent\" },\r\n (0, react_1.jsx)(reactstrap_1.Row, { className: \"align-items-center\" },\r\n (0, react_1.jsx)(reactstrap_1.Col, null,\r\n (0, react_1.jsx)(\"h1\", { className: \"mb-0\" }, \"Example Table Card\")))),\r\n (0, react_1.jsx)(\"div\", { className: \"table-responsive\" },\r\n (0, react_1.jsx)(\"table\", { className: \"sb-max-width-table table align-items-center\" },\r\n (0, react_1.jsx)(\"thead\", { className: \"thead-light\" },\r\n (0, react_1.jsx)(\"tr\", null,\r\n (0, react_1.jsx)(\"th\", { scope: \"col\", className: \"sort\", \"data-sort\": \"name\" }, \"Name\"),\r\n (0, react_1.jsx)(\"th\", { scope: \"col\", className: \"sort d-none d-md-table-cell\", \"data-sort\": \"publish\" }, \"Publish\"),\r\n (0, react_1.jsx)(\"th\", { scope: \"col\", className: \"sort\", \"data-sort\": \"action\", style: { width: \"166px\" } }))),\r\n (0, react_1.jsx)(\"tbody\", { className: \"list\" },\r\n (0, react_1.jsx)(\"tr\", null,\r\n (0, react_1.jsx)(\"th\", null,\r\n \"CEO Update\",\r\n (0, react_1.jsx)(\"div\", { className: \"d-table-cell d-md-none\" },\r\n (0, react_1.jsx)(\"span\", { className: \"text-muted sb-cell-detail\" }, \"05/27/2021\"))),\r\n (0, react_1.jsx)(\"td\", { className: \"d-none d-md-table-cell\" },\r\n (0, react_1.jsx)(\"span\", { className: \"\" }, \"05/27/2021\")),\r\n (0, react_1.jsx)(\"td\", { className: \"text-right\" },\r\n (0, react_1.jsx)(\"button\", { className: \"btn btn-outline-primary btn-sm sb-play-btn\", type: \"button\" },\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--icon\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faPlay }),\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--text\" }, \"Play\"))))),\r\n (0, react_1.jsx)(\"tr\", null,\r\n (0, react_1.jsx)(\"th\", null,\r\n \"Welcome!\",\r\n (0, react_1.jsx)(\"div\", { className: \"d-table-cell d-md-none\" },\r\n (0, react_1.jsx)(\"span\", { className: \"text-muted sb-cell-detail\" }, \"05/26/2021\"))),\r\n (0, react_1.jsx)(\"td\", { className: \"d-none d-md-table-cell\" },\r\n (0, react_1.jsx)(\"span\", { className: \"\" }, \"05/26/2021\")),\r\n (0, react_1.jsx)(\"td\", { className: \"text-right\" },\r\n (0, react_1.jsx)(\"button\", { className: \"btn btn-outline-primary btn-sm sb-play-btn\", type: \"button\" },\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--icon\" },\r\n (0, react_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faPlay }),\r\n (0, react_1.jsx)(\"span\", { className: \"btn-inner--text\" }, \"Play\")))))))))))));\r\n }\r\n fakeUser(givenName, familyName) {\r\n const user = {\r\n email: \"Hello@World.Com\",\r\n givenName: givenName,\r\n familyName: familyName,\r\n phone: \"509-312-9058\",\r\n title: \"\",\r\n allowNews: true,\r\n allowMarketing: true,\r\n allowEmail: true,\r\n allowSms: true,\r\n userRole: api_1.UserRole.User,\r\n providerType: api_1.ProviderType.AAD,\r\n calendarSettings: \"\",\r\n isAccepting: true,\r\n imageSrc: \"\",\r\n route: \"\",\r\n createdUtc: \"\",\r\n updatedUtc: \"\",\r\n upn: \"\",\r\n };\r\n return user;\r\n }\r\n fakePerson(givenName, familyName) {\r\n const user = this.fakeUser(givenName, familyName);\r\n const person = {\r\n personRole: api_1.PersonRole.Person,\r\n user: user,\r\n route: \"\",\r\n createdUtc: \"\",\r\n updatedUtc: \"\",\r\n };\r\n return person;\r\n }\r\n participantPickers() {\r\n const allPeople = [\r\n this.fakePerson(\"Fooey\", \"Barla\"),\r\n this.fakePerson(\"Alice\", \"Aardvark\"),\r\n this.fakePerson(\"Bob\", \"Beaver\"),\r\n this.fakePerson(\"Clarissa\", \" Zebra\"),\r\n ];\r\n const selectedPeople = [allPeople[0], allPeople[1]];\r\n const selectedPeopleOptions = pickers_1.ParticipantPicker.peopleToOptions(selectedPeople);\r\n selectedPeopleOptions[0].isFixed = true;\r\n return ((0, react_1.jsx)(\"div\", { className: \"mb-4\" },\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: \"6\" },\r\n (0, react_1.jsx)(\"h4\", null, \"Participant Picker\"),\r\n (0, react_1.jsx)(pickers_1.ParticipantPicker, { defaultParticipants: selectedPeopleOptions, people: allPeople })),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: \"6\" },\r\n (0, react_1.jsx)(\"h4\", null, \"Disabled Participant Picker\"),\r\n (0, react_1.jsx)(pickers_1.ParticipantPicker, { defaultParticipants: selectedPeopleOptions, people: allPeople, disabled: true })))));\r\n }\r\n inputs() {\r\n const session = {\r\n name: \"Example\",\r\n limit: 120,\r\n sessionType: api_1.SessionType.Announcement,\r\n sessionSecurity: api_1.SessionSecurityType.Protected,\r\n route: \"\",\r\n createdUtc: \"\",\r\n updatedUtc: \"\",\r\n reminderCalEventId: \"\",\r\n recurrence: api_1.Recurrence.NoRepeat,\r\n recurrenceData: \"\",\r\n transcribe: true,\r\n sessionCommentPolicy: api_1.SessionCommentPolicy.Allowed,\r\n };\r\n return ((0, react_1.jsx)(\"div\", null,\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 6 },\r\n (0, react_1.jsx)(reactstrap_1.FormGroup, null,\r\n (0, react_1.jsx)(\"h4\", null, \"Text Input\"),\r\n (0, react_1.jsx)(reactstrap_1.InputGroup, { \"aria-disabled\": false },\r\n (0, react_1.jsx)(controls_1.FaPrepend, { icon: \"pen\" }),\r\n (0, react_1.jsx)(\"input\", { type: \"text\", className: \"form-control\", placeholder: \"Title\", \"aria-label\": \"Title\", \"aria-describedby\": \"basic-addon1\", disabled: false })))),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 6 },\r\n (0, react_1.jsx)(reactstrap_1.FormGroup, null,\r\n (0, react_1.jsx)(\"h4\", null, \"Disabled Text Input\"),\r\n (0, react_1.jsx)(reactstrap_1.InputGroup, { \"aria-disabled\": true },\r\n (0, react_1.jsx)(controls_1.FaPrepend, { icon: \"pen\" }),\r\n (0, react_1.jsx)(\"input\", { type: \"text\", className: \"form-control\", placeholder: \"Title\", \"aria-label\": \"Title\", \"aria-describedby\": \"basic-addon1\", disabled: true }))))),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 6 },\r\n (0, react_1.jsx)(\"h4\", null, \"Rich Text\"),\r\n (0, react_1.jsx)(reactstrap_1.FormGroup, null,\r\n (0, react_1.jsx)(controls_1.LabelInfo, { label: \"Call to Action\", info: \"Description shared with all participants\" }),\r\n (0, react_1.jsx)(controls_1.RichText, { placeholder: \"Call to Action for this Soundbite Session\" }))),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 6 },\r\n (0, react_1.jsx)(\"h4\", null, \"Disabled Rich Text\"),\r\n (0, react_1.jsx)(reactstrap_1.FormGroup, null,\r\n (0, react_1.jsx)(controls_1.LabelInfo, { label: \"Call to Action\", info: \"Description shared with all participants\" }),\r\n (0, react_1.jsx)(controls_1.RichText, { placeholder: \"Call to Action for this Soundbite Session\", disabled: true })))),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 6 },\r\n (0, react_1.jsx)(\"h4\", null, \"Schedule Picker\"),\r\n (0, react_1.jsx)(pickers_1.SchedulePicker, { session: session })),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 6 },\r\n (0, react_1.jsx)(\"h4\", null, \"Disabled Schedule Picker\"),\r\n (0, react_1.jsx)(pickers_1.SchedulePicker, { session: session, disabled: true }))),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 6 },\r\n (0, react_1.jsx)(\"h4\", null, \"Progress Bar - No Title, No Progress\"),\r\n (0, react_1.jsx)(controls_1.SbProgress, { progress: 0 }),\r\n (0, react_1.jsx)(\"h4\", null, \"Progress Bar - No Title, Progress\"),\r\n (0, react_1.jsx)(controls_1.SbProgress, { progress: 60 }),\r\n (0, react_1.jsx)(\"h4\", null, \"Progress Bar - No Title, Completed\"),\r\n (0, react_1.jsx)(controls_1.SbProgress, { progress: 100 }),\r\n (0, react_1.jsx)(\"h4\", null, \"Progress Bar - No Title, Progressing\"),\r\n (0, react_1.jsx)(controls_1.SbProgress, { progress: this.state.tick % 100 })),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 6 },\r\n (0, react_1.jsx)(\"h4\", null, \"Progress Bar - Title, No Progress\"),\r\n (0, react_1.jsx)(controls_1.SbProgress, { title: \"Example Title...\", progress: 0 }),\r\n (0, react_1.jsx)(\"h4\", null, \"Progress Bar - Title, Progress\"),\r\n (0, react_1.jsx)(controls_1.SbProgress, { title: \"Example Title...\", progress: 60 }),\r\n (0, react_1.jsx)(\"h4\", null, \"Progress Bar - Title, Completed\"),\r\n (0, react_1.jsx)(controls_1.SbProgress, { title: \"Example Title...\", progress: 100 }),\r\n (0, react_1.jsx)(\"h4\", null, \"Progress Bar - Title, Progressing\"),\r\n (0, react_1.jsx)(controls_1.SbProgress, { title: \"Example Title...\", progress: this.state.tick % 100 })))));\r\n }\r\n forms() {\r\n return ((0, react_1.jsx)(\"div\", { className: \"mb-4 sb-card\" },\r\n (0, react_1.jsx)(\"h2\", null, \"Forms\"),\r\n (0, react_1.jsx)(\"div\", { className: \"bg-midground p-4\" },\r\n this.participantPickers(),\r\n this.inputs())));\r\n }\r\n isLightActive() {\r\n return styles_1.GlobalTheme.current.name === styles_1.lightTheme.name;\r\n }\r\n sound() {\r\n return ((0, react_1.jsx)(\"div\", null,\r\n (0, react_1.jsx)(\"h4\", null, \"Player\"),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 6 },\r\n (0, react_1.jsx)(DemoPlayer, null)),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 6 },\r\n (0, react_1.jsx)(DemoPlayer, { disabled: true }))),\r\n (0, react_1.jsx)(\"h4\", null, \"Recorder\"),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 6 },\r\n (0, react_1.jsx)(\"div\", { className: \"sb-card\" },\r\n (0, react_1.jsx)(RecordAndPlay_1.RecordAndPlay, null))),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: 6 },\r\n (0, react_1.jsx)(\"div\", { className: \"sb-card\" },\r\n (0, react_1.jsx)(RecordAndPlay_1.RecordAndPlay, { disabled: true }))))));\r\n }\r\n alerts() {\r\n return ((0, react_1.jsx)(\"div\", { className: \"sb-card\" },\r\n (0, react_1.jsx)(\"h2\", null, \"Alerts\"),\r\n (0, react_1.jsx)(\"div\", { className: \"alert-default alert alert-success fade show\", role: \"alert\" },\r\n (0, react_1.jsx)(\"strong\", null, \"Default!\"),\r\n \" This is a default alert - check it out!\"),\r\n (0, react_1.jsx)(\"div\", { className: \"alert alert-primary fade show\", role: \"alert\" },\r\n (0, react_1.jsx)(\"strong\", null, \"Primary!\"),\r\n \" This is a primary alert - check it out!\"),\r\n (0, react_1.jsx)(\"div\", { className: \"alert alert-secondary fade show\", role: \"alert\" },\r\n (0, react_1.jsx)(\"strong\", null, \"Secondary!\"),\r\n \" This is a secondary alert - check it out!\"),\r\n (0, react_1.jsx)(\"div\", { className: \"alert alert-info fade show\", role: \"alert\" },\r\n (0, react_1.jsx)(\"strong\", null, \"Info!\"),\r\n \" This is a info alert - check it out!\"),\r\n (0, react_1.jsx)(\"div\", { className: \"alert alert-success fade show\", role: \"alert\" },\r\n (0, react_1.jsx)(\"strong\", null, \"Success!\"),\r\n \" This is a success alert - check it out!\"),\r\n (0, react_1.jsx)(\"div\", { className: \"alert alert-danger fade show\", role: \"alert\" },\r\n (0, react_1.jsx)(\"strong\", null, \"Danger!\"),\r\n \" This is a danger alert - check it out!\"),\r\n (0, react_1.jsx)(\"div\", { className: \"alert alert-warning fade show\", role: \"alert\" },\r\n (0, react_1.jsx)(\"strong\", null, \"Warning!\"),\r\n \" This is a warning alert - check it out!\")));\r\n }\r\n logos() {\r\n return ((0, react_1.jsx)(\"div\", { className: \"sb-card\" },\r\n (0, react_1.jsx)(\"h2\", null, \"Logos\"),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: \"6\", className: \"pb-4\" },\r\n (0, react_1.jsx)(\"h3\", null, \"Logo\"),\r\n (0, react_1.jsx)(\"p\", { className: \"text-muted\" }, \"Main Logo. EG, top of the left nav bar in Soundbite Studio\"),\r\n (0, react_1.jsx)(\"img\", { alt: \"Soundbite\", className: \"\", src: styles_1.GlobalTheme.current.images.logo })),\r\n (0, react_1.jsx)(reactstrap_1.Col, { md: \"6\", className: \"pb-4\" },\r\n (0, react_1.jsx)(\"h3\", null, \"Mark\"),\r\n (0, react_1.jsx)(\"p\", { className: \"text-muted\" }, \"Brand icon w/o words. EG, top of the mobile nav bar in Soundbite Studio\"),\r\n (0, react_1.jsx)(\"img\", { alt: \"Soundbite\", className: \"\", src: styles_1.GlobalTheme.current.images.mark }))),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, null,\r\n (0, react_1.jsx)(\"h3\", null, \"Alt Logo\"),\r\n (0, react_1.jsx)(\"p\", { className: \"text-muted\" }, \"Color reversed logo. EG, the top of the login view in Soundbite Studio\"))),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, null,\r\n (0, react_1.jsx)(\"div\", { className: \"rounded sb-progress-background mb-2\" },\r\n (0, react_1.jsx)(\"img\", { alt: \"Soundbite\", className: \"\", src: styles_1.GlobalTheme.current.images.logoAlt })))),\r\n (0, react_1.jsx)(reactstrap_1.Row, null,\r\n (0, react_1.jsx)(reactstrap_1.Col, null,\r\n (0, react_1.jsx)(\"div\", { className: \"rounded bg-dark\" },\r\n (0, react_1.jsx)(\"img\", { alt: \"Soundbite\", className: \"\", src: styles_1.GlobalTheme.current.images.logoAlt })))),\r\n (0, react_1.jsx)(reactstrap_1.Row, { className: \"pb-4\" },\r\n (0, react_1.jsx)(reactstrap_1.Col, null))));\r\n }\r\n render() {\r\n return ((0, react_1.jsx)(\"div\", { css: baseStyles },\r\n this.sound(),\r\n this.forms(),\r\n this.cards(),\r\n this.buttons(),\r\n this.typography(),\r\n this.alerts(),\r\n this.colors(),\r\n this.logos()));\r\n }\r\n}\r\nexports.ThemeDemo = ThemeDemo;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AzureMediaPlayerContext = void 0;\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst store_1 = require(\"../../../store\");\r\nconst MediaPlayerContext_1 = require(\"./MediaPlayerContext\");\r\n/** NOTE: This class is currently not in use but kept here for future reference */\r\n/**\r\n * Azure Media Player (AMP) IMediaPlayerContext implementation\r\n */\r\nclass AzureMediaPlayerContext extends MediaPlayerContext_1.MediaPlayerContext {\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////\r\n constructor() {\r\n super(\"azurestreaming\");\r\n }\r\n //////////[ Overrides ]///////////////////////////////////////////////////////////////////////////\r\n jumpTo(time) {\r\n if (this.playerRef) {\r\n this.playerRef.currentTime(time);\r\n }\r\n }\r\n load(clip, mediaUrl, autoPlay, isPublic) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.isPublic = isPublic !== null && isPublic !== void 0 ? isPublic : false;\r\n // Setup the Azure Media Player options\r\n const playerOptions = {\r\n controls: false,\r\n logo: { enabled: false },\r\n width: 448,\r\n };\r\n this.playerRef = window.amp(this.mediaElement, playerOptions, () => __awaiter(this, void 0, void 0, function* () {\r\n var _a;\r\n const token = yield api_1.SoundbiteApiConfig.getToken();\r\n let prefix = (_a = store_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.settings.azure.streamingEndpointUrlPrefix;\r\n if (!prefix && !store_1.WidgetStore.organizations.currentOrg) {\r\n prefix = yield api_1.OrganizationsService.readAmsStreamingUrl(store_1.WidgetStore.organizations.currentOrgRoute);\r\n }\r\n // Update the duration if it is a number that makes sense\r\n this.playerRef.addEventListener(\"durationchange\", () => {\r\n const newDuration = this.playerRef.duration();\r\n if (!Number.isNaN(newDuration) && Number.isFinite(newDuration)) {\r\n this.duration = newDuration;\r\n }\r\n });\r\n // Watch for completion of the media\r\n this.playerRef.addEventListener(\"ended\", () => {\r\n // Ended can fire when the end of the media is encountered OR the data stream stops. When\r\n // encoutering the end of the video, the Azure Media Player seems to rewind the video to\r\n // the zero mark. I have NOT encountered a data stream termianting the player, so my\r\n // ASSUMPTION is that the player does not reset when encountering a data issue, but I may\r\n // very well be wrong.\r\n if (this.playerRef.currentTime() === 0) {\r\n if (this.onPlaybackComplete) {\r\n this.onPlaybackComplete();\r\n }\r\n }\r\n });\r\n // Set is playing to false if the pause event fires. Pause fires right before playback ends.\r\n this.playerRef.addEventListener(\"pause\", () => {\r\n this.isPlaying = false;\r\n });\r\n // Set is playing to true if the play event fires and isPlaying is not already true. This\r\n // should not happen in theory but we have it here just in case.\r\n this.playerRef.addEventListener(\"play\", () => {\r\n if (!this.isPlaying) {\r\n this.isPlaying = true;\r\n }\r\n });\r\n // Update the location of the scrubber as the player time progresses\r\n this.playerRef.addEventListener(\"timeupdate\", () => {\r\n this.time = this.playerRef.currentTime();\r\n });\r\n // Load the streaming media source from Azure Media Services\r\n const sources = [\r\n {\r\n src: `${prefix}${clip === null || clip === void 0 ? void 0 : clip.hostingData}/clip.ism/manifest(format=m3u8-cmaf,encryption=cbc)`,\r\n //type: \"application/vnd.apple.mpegurl\"\r\n type: \"application/vnd.ms-sstr+xml\",\r\n },\r\n ];\r\n const origUrl = sources[0].src;\r\n const encodedOrigUrl = encodeURIComponent(origUrl.split(\"://\")[1])\r\n .replace(\"(\", \"%28\")\r\n .replace(\")\", \"%29\");\r\n const proxyUrl = api_1.SoundbiteApiConfig.ApiPrefixUrl +\r\n `/MediaProxy/Manifest/clip.ism/manifest(format=m3u8-cmaf,encryption=cbc)?playbackUrl=${encodedOrigUrl}&token=${token}`;\r\n sources[0].src = proxyUrl;\r\n // Include encryption / token settings for protected content\r\n if (!this.isPublic) {\r\n sources[0].protectionInfo = [\r\n {\r\n type: \"AES\",\r\n authenticationToken: `Bearer=${token}`,\r\n },\r\n ];\r\n }\r\n this.playerRef.src(sources);\r\n }));\r\n });\r\n }\r\n play() {\r\n if (this.playerRef) {\r\n this.playerRef.play();\r\n this.isPlaying = true;\r\n if (this.onPlay) {\r\n this.onPlay();\r\n }\r\n }\r\n }\r\n pause() {\r\n if (this.playerRef) {\r\n this.playerRef.pause();\r\n this.isPlaying = false;\r\n }\r\n }\r\n //////////[ Overrides ]///////////////////////////////////////////////////////////////////////////\r\n logAllEvents() {\r\n this.playerRef.addEventListener(\"canplaythrough\", () => {\r\n console.log(\"[Event]-canplaythrough\");\r\n });\r\n this.playerRef.addEventListener(\"tech-click\", () => {\r\n console.log(\"[Event]-tech-click\");\r\n });\r\n this.playerRef.addEventListener(\"complete\", () => {\r\n console.log(\"[Event]-complete\");\r\n });\r\n this.playerRef.addEventListener(\"decryptorInitialized\", () => {\r\n console.log(\"[Event]-decryptorInitialized\");\r\n });\r\n this.playerRef.addEventListener(\"disposing\", () => {\r\n console.log(\"[Event]-disposing\");\r\n });\r\n this.playerRef.addEventListener(\"downloadbitratechanged\", () => {\r\n console.log(\"[Event]-downloadbitratechanged\");\r\n });\r\n this.playerRef.addEventListener(\"durationchange\", () => {\r\n console.log(\"[Event]-durationchange\");\r\n });\r\n this.playerRef.addEventListener(\"embeddedcaptionsfound\", () => {\r\n console.log(\"[Event]-embeddedcaptionsfound\");\r\n });\r\n this.playerRef.addEventListener(\"emsgAvailable\", () => {\r\n console.log(\"[Event]-emsgAvailable\");\r\n });\r\n this.playerRef.addEventListener(\"ended\", () => {\r\n console.log(\"[Event]-ended\");\r\n });\r\n this.playerRef.addEventListener(\"error\", () => {\r\n console.log(\"[Event]-error\");\r\n });\r\n this.playerRef.addEventListener(\"errorInPlayingAd\", () => {\r\n console.log(\"[Event]-errorInPlayingAd\");\r\n });\r\n this.playerRef.addEventListener(\"exitfullscreen\", () => {\r\n console.log(\"[Event]-exitfullscreen\");\r\n });\r\n this.playerRef.addEventListener(\"firstquartile\", () => {\r\n console.log(\"[Event]-firstquartile\");\r\n });\r\n this.playerRef.addEventListener(\"fullscreen\", () => {\r\n console.log(\"[Event]-fullscreen\");\r\n });\r\n this.playerRef.addEventListener(\"fullscreenchange\", () => {\r\n console.log(\"[Event]-fullscreenchange\");\r\n });\r\n this.playerRef.addEventListener(\"livestartupretry\", () => {\r\n console.log(\"[Event]-livestartupretry\");\r\n });\r\n this.playerRef.addEventListener(\"loadeddata\", () => {\r\n console.log(\"[Event]-loadeddata\");\r\n });\r\n this.playerRef.addEventListener(\"loadedmetadata\", () => {\r\n console.log(\"[Event]-loadedmetadata\");\r\n });\r\n this.playerRef.addEventListener(\"loadstart\", () => {\r\n console.log(\"[Event]-loadstart\");\r\n });\r\n this.playerRef.addEventListener(\"midpoint\", () => {\r\n console.log(\"[Event]-midpoint\");\r\n });\r\n this.playerRef.addEventListener(\"mute\", () => {\r\n console.log(\"[Event]-mute\");\r\n });\r\n this.playerRef.addEventListener(\"pause\", () => {\r\n console.log(\"[Event]-pause\");\r\n });\r\n this.playerRef.addEventListener(\"play\", () => {\r\n console.log(\"[Event]-play\");\r\n });\r\n this.playerRef.addEventListener(\"playbackbitratechanged\", () => {\r\n console.log(\"[Event]-playbackbitratechanged\");\r\n });\r\n this.playerRef.addEventListener(\"playing\", () => {\r\n console.log(\"[Event]-playing\");\r\n });\r\n this.playerRef.addEventListener(\"ratechange\", () => {\r\n console.log(\"[Event]-ratechange\");\r\n });\r\n this.playerRef.addEventListener(\"resume\", () => {\r\n console.log(\"[Event]-resume\");\r\n });\r\n this.playerRef.addEventListener(\"rewind\", () => {\r\n console.log(\"[Event]-rewind\");\r\n });\r\n this.playerRef.addEventListener(\"seeked\", () => {\r\n console.log(\"[Event]-seeked\");\r\n });\r\n this.playerRef.addEventListener(\"seeking\", () => {\r\n console.log(\"[Event]-seeking\");\r\n });\r\n this.playerRef.addEventListener(\"skip\", () => {\r\n console.log(\"[Event]-skip\");\r\n });\r\n this.playerRef.addEventListener(\"sourceset\", () => {\r\n console.log(\"[Event]-sourceset\");\r\n });\r\n this.playerRef.addEventListener(\"splicewaiting\", () => {\r\n console.log(\"[Event]-splicewaiting\");\r\n });\r\n this.playerRef.addEventListener(\"start\", () => {\r\n console.log(\"[Event]-start\");\r\n });\r\n this.playerRef.addEventListener(\"thirdquartile\", () => {\r\n console.log(\"[Event]-thirdquartile\");\r\n });\r\n this.playerRef.addEventListener(\"timeupdate\", () => {\r\n console.log(\"[Event]-timeupdate\");\r\n });\r\n this.playerRef.addEventListener(\"unmute\", () => {\r\n console.log(\"[Event]-unmute\");\r\n });\r\n this.playerRef.addEventListener(\"volumechange\", () => {\r\n console.log(\"[Event]-volumechange\");\r\n });\r\n this.playerRef.addEventListener(\"waiting\", () => {\r\n console.log(\"[Event]-waiting\");\r\n });\r\n }\r\n}\r\nexports.AzureMediaPlayerContext = AzureMediaPlayerContext;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.VideoEditor = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst VideoEditorContext_1 = require(\"./VideoEditorContext\");\r\nconst VideoEditorButtons_1 = require(\"./VideoEditorButtons\");\r\nconst VideoRecorderButtons_1 = require(\"./VideoRecorderButtons\");\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst controls_1 = require(\"../controls\");\r\nconst GlobalTheme_1 = require(\"../../styles/GlobalTheme\");\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\n/**\r\n * VideoEditor is the top-level editor component for users to create and manipulate videos.\r\n * @param props\r\n */\r\nexports.VideoEditor = (0, mobx_react_lite_1.observer)((props) => {\r\n //////////[ State ]///////////////////////////////////////////////////////////////////////////////\r\n const [editorContext] = (0, react_1.useState)(new VideoEditorContext_1.VideoEditorContext());\r\n const videoRef = react_1.default.createRef();\r\n const [isVideoLoading, setIsVideoLoading] = (0, react_1.useState)(true);\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n (0, react_1.useEffect)(() => {\r\n // It has not which implies this is a new context\r\n editorContext.VideoElement = videoRef.current;\r\n editorContext.onClipAdded = (clip) => {\r\n editorContext.showEditor();\r\n editorContext.playClip(clip);\r\n if (props.onRecorded) {\r\n props.onRecorded(clip);\r\n }\r\n };\r\n editorContext.showRecorder();\r\n editorContext.startWebCam();\r\n return function cleanup() {\r\n editorContext.stopWebCam();\r\n };\r\n }, []);\r\n //////////[ Utility Methods ]/////////////////////////////////////////////////////////////////////\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n function onLoaded() {\r\n setIsVideoLoading(false);\r\n }\r\n function onLoading() {\r\n setIsVideoLoading(true);\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n /**\r\n * Renders a message informing the user that video recording is not supported by the browser.\r\n */\r\n function VideoNotSupported() {\r\n return (react_1.default.createElement(react_1.default.Fragment, null, \"This browser does not appear to support video recording. Please upload a video or use a different browser.\"));\r\n }\r\n /**\r\n * Renders the video editor.\r\n */\r\n function VideoSupported() {\r\n const isEditing = (editorContext === null || editorContext === void 0 ? void 0 : editorContext.isEditing) === true;\r\n const backColor = GlobalTheme_1.GlobalTheme.current.colors.neutrals.n900;\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(controls_1.Loader, { isLoadedWhen: !isVideoLoading, isDisplayBased: true, style: { height: \"184px\" }, className: props.className },\r\n react_1.default.createElement(\"video\", { autoPlay: true, playsInline: true, className: \"rounded\", controls: isEditing, ref: videoRef, style: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n backgroundColor: backColor,\r\n transform: !editorContext.isEditing ? \"scaleX(-1)\" : \"\",\r\n }, onLoadStart: onLoading, onLoadedMetadata: onLoaded }),\r\n react_1.default.createElement(\"div\", { className: \"d-flex align-items-center justify-content-center\" }, (editorContext === null || editorContext === void 0 ? void 0 : editorContext.isEditing) === true ? (react_1.default.createElement(VideoEditorButtons_1.VideoEditorButtons, { Context: editorContext, onReset: props.onReset })) : (react_1.default.createElement(VideoRecorderButtons_1.VideoRecorderButtons, { Context: editorContext }))))));\r\n }\r\n return VideoEditorContext_1.VideoEditorContext.isVideoCaptureSupported()\r\n ? VideoSupported()\r\n : VideoNotSupported();\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.VideoClip = void 0;\r\n/**\r\n * Video clips reprent a piece of video media. Depending on how far we want to take the video\r\n * editor, the editor could be responsible for multiple clips to help arrange and piece together\r\n * various pieces of content.\r\n */\r\nclass VideoClip {\r\n constructor(id, name, url, isLocalRecording, durationInMs) {\r\n this.isLocalRecording = false;\r\n this.durationInMs = 0;\r\n this.id = id;\r\n this.name = name;\r\n this.url = url;\r\n this.isLocalRecording = isLocalRecording;\r\n this.durationInMs = durationInMs;\r\n }\r\n}\r\nexports.VideoClip = VideoClip;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.VideoEditorButtons = void 0;\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst VideoEditorService_1 = require(\"./VideoEditorService\");\r\nconst VideoEditorContext_1 = require(\"./VideoEditorContext\");\r\nconst SbButton_1 = require(\"../SbButton\");\r\n/**\r\n * VideoEditor is the top-level editor component for users to create and manipulate videos.\r\n * @param props\r\n */\r\nexports.VideoEditorButtons = (0, mobx_react_lite_1.observer)((props) => {\r\n //////////[ State ]///////////////////////////////////////////////////////////////////////////////\r\n const noContext = props.Context ? true : false;\r\n const context = props.Context\r\n ? props.Context\r\n : new VideoEditorContext_1.VideoEditorContext();\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n (0, react_1.useEffect)(() => { }, [props.Context]);\r\n //////////[ Utility Methods ]/////////////////////////////////////////////////////////////////////\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n /**\r\n * Deletes the current video and allows the user to re-record a video.\r\n */\r\n function onResetVideo() {\r\n context.removeClipAt(0);\r\n context.showRecorder();\r\n if (props.onReset) {\r\n props.onReset();\r\n }\r\n }\r\n function onTrimStart() {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const clip = (_a = props.Context) === null || _a === void 0 ? void 0 : _a.videoClips[0];\r\n if (context.VideoElement && clip && context.VideoElement) {\r\n if (!context.VideoElement.paused) {\r\n context.VideoElement.pause();\r\n }\r\n yield VideoEditorService_1.VideoEditorService.trimStart(clip, context.VideoElement.currentTime);\r\n context.VideoElement.src = (_b = clip.url) !== null && _b !== void 0 ? _b : \"\";\r\n context.VideoElement.currentTime = 0;\r\n context.VideoElement.load();\r\n }\r\n });\r\n }\r\n function onTrimEnd() { }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n /**\r\n * Renders the video editor.\r\n */\r\n function Render() {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.PrimaryOutline, size: SbButton_1.SbButtonSize.Large, icon: free_solid_svg_icons_1.faRedo, title: \"Reset Recording\", onClick: () => onResetVideo(), disabled: false })));\r\n }\r\n return Render();\r\n});\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.VideoEditorService = void 0;\r\nconst ffmpeg_1 = require(\"@ffmpeg/ffmpeg\");\r\nclass VideoEditorServiceClass {\r\n constructor() {\r\n this.ffmpeg = (0, ffmpeg_1.createFFmpeg)({\r\n log: true,\r\n corePath: `${window.location.origin}/ffmpeg-core.js`,\r\n });\r\n this.loadPromise = undefined;\r\n }\r\n /**\r\n * Retrieves a promise that indicates when ffmpeg is loaded. When first called, the method calls\r\n * ffmpeg.load which downloads the ffmpeg WASM libraries. When ffmpeg is loaded and ready to\r\n * run video editing commands, the promise resolves.\r\n */\r\n ensureLoaded() {\r\n if (!this.loadPromise) {\r\n this.loadPromise = new Promise((resolve, reject) => {\r\n this.ffmpeg\r\n .load()\r\n .then(() => resolve())\r\n .catch((ex) => reject(ex));\r\n });\r\n }\r\n return this.loadPromise;\r\n }\r\n /**\r\n * Trims the start of the video clip by the specified duration.\r\n * @videoClip - the video clip to update\r\n * @duration - the amount of time to trim from the front of the video\r\n */\r\n trimStart(videoClip, duration) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // TODO: Convert this to use mp4 instead of web\r\n if (videoClip === null || videoClip === void 0 ? void 0 : videoClip.file) {\r\n // Save off original data (if not already set)\r\n videoClip.originalFile = (_a = videoClip.originalFile) !== null && _a !== void 0 ? _a : videoClip.file;\r\n yield this.ensureLoaded();\r\n // TODO: Convert this to use mp4 instead of web\r\n this.ffmpeg.FS(\"writeFile\", \"temp_in.webm\", yield (0, ffmpeg_1.fetchFile)(videoClip.file));\r\n yield this.ffmpeg.run(\"-ss\", `${duration}`, \"-i\", \"temp_in.webm\", \"-c:a\", \"copy\", \"-c:v\", \"copy\", \"temp_out.webm\");\r\n // TODO: Convert this to use mp4 instead of web\r\n const output = this.ffmpeg.FS(\"readFile\", \"temp_out.webm\");\r\n const blob = new Blob([output.buffer], { type: \"video/webm\" });\r\n videoClip.file = new File([blob], \"clip.webm\");\r\n videoClip.url = URL.createObjectURL(videoClip.file);\r\n }\r\n });\r\n }\r\n}\r\nexports.VideoEditorService = new VideoEditorServiceClass();\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.VideoRecorderButtons = void 0;\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst RecorderState_1 = require(\"./RecorderState\");\r\nconst VideoEditorContext_1 = require(\"./VideoEditorContext\");\r\nconst SbButton_1 = require(\"../SbButton\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst controls_1 = require(\"../controls\");\r\n/**\r\n * VideoEditor is the top-level editor component for users to create and manipulate videos.\r\n * @param props\r\n */\r\nexports.VideoRecorderButtons = (0, mobx_react_lite_1.observer)((props) => {\r\n //////////[ State ]///////////////////////////////////////////////////////////////////////////////\r\n const context = props.Context\r\n ? props.Context\r\n : new VideoEditorContext_1.VideoEditorContext();\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n (0, react_1.useEffect)(() => { }, [props.Context]);\r\n //////////[ Utility Methods ]/////////////////////////////////////////////////////////////////////\r\n //function isRecordDisabled(): boolean {\r\n // return !noContext || !context.isWebCamOn;\r\n //}\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n //function onToggleWebCam() {\r\n // if (context.isWebCamOn) {\r\n // context.stopWebCam();\r\n // } else {\r\n // context.startWebCam();\r\n // }\r\n //}\r\n function onToggleRecording() {\r\n switch (context.recorderState) {\r\n case RecorderState_1.RecorderState.NotRecording:\r\n context.startRecording();\r\n break;\r\n case RecorderState_1.RecorderState.Recording:\r\n context.stopRecording();\r\n break;\r\n case RecorderState_1.RecorderState.Paused:\r\n context.resumeRecording();\r\n break;\r\n }\r\n }\r\n function onStopRecording() {\r\n if (context.isRecording || context.isPaused) {\r\n context.stopRecording();\r\n }\r\n else {\r\n api_1.Logger.LogWarning(\"Cannot stop recording because component is not currently recording.\");\r\n }\r\n }\r\n /**\r\n * Deletes the current video buffer and allows the user to re-record a video.\r\n */\r\n //function onResetVideo() {\r\n // context.clearVideoBuffer();\r\n //}\r\n function onSwitchCameras() {\r\n context.switchWebCam();\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n /**\r\n * Renders the video editor.\r\n */\r\n function Render() {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(\"div\", { className: \"\" },\r\n react_1.default.createElement(controls_1.ShowWhen, { is: VideoEditorContext_1.VideoEditorContext.isMultiDevice && !context.isRecording },\r\n react_1.default.createElement(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.PrimaryOutline, size: SbButton_1.SbButtonSize.Small, icon: free_solid_svg_icons_1.faCameraRotate, title: \"Switch Cameras\", onClick: () => onSwitchCameras() })),\r\n react_1.default.createElement(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.PrimaryOutline, size: SbButton_1.SbButtonSize.Large, icon: context.isRecording ? free_solid_svg_icons_1.faStop : free_solid_svg_icons_1.faVideo, title: context.isRecording ? \"Stop Recording\" : \"Record\", onClick: () => onToggleRecording(), disabled: !context }))));\r\n }\r\n return Render();\r\n});\r\n","\"use strict\";\r\n!function (A, I) { \"object\" == typeof exports && \"object\" == typeof module ? module.exports = I(require(\"prop-types\"), require(\"react\")) : \"function\" == typeof define && define.amd ? define([,], I) : \"object\" == typeof exports ? exports.ReactMicGold = I(require(\"prop-types\"), require(\"react\")) : A.ReactMicGold = I(A.PropTypes, A.React); }(window, (function (A, I) {\r\n return function (A) { var I = {}; function g(B) { if (I[B])\r\n return I[B].exports; var Q = I[B] = { i: B, l: !1, exports: {} }; return A[B].call(Q.exports, Q, Q.exports, g), Q.l = !0, Q.exports; } return g.m = A, g.c = I, g.d = function (A, I, B) { g.o(A, I) || Object.defineProperty(A, I, { enumerable: !0, get: B }); }, g.r = function (A) { \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(A, Symbol.toStringTag, { value: \"Module\" }), Object.defineProperty(A, \"__esModule\", { value: !0 }); }, g.t = function (A, I) { if (1 & I && (A = g(A)), 8 & I)\r\n return A; if (4 & I && \"object\" == typeof A && A && A.__esModule)\r\n return A; var B = Object.create(null); if (g.r(B), Object.defineProperty(B, \"default\", { enumerable: !0, value: A }), 2 & I && \"string\" != typeof A)\r\n for (var Q in A)\r\n g.d(B, Q, function (I) { return A[I]; }.bind(null, Q)); return B; }, g.n = function (A) { var I = A && A.__esModule ? function () { return A.default; } : function () { return A; }; return g.d(I, \"a\", I), I; }, g.o = function (A, I) { return Object.prototype.hasOwnProperty.call(A, I); }, g.p = \"\", g(g.s = 11); }([function (I, g) { I.exports = A; }, function (A, I, g) { A.exports = g(14); }, function (A, I) { A.exports = function (A, I) { if (!(A instanceof I))\r\n throw new TypeError(\"Cannot call a class as a function\"); }; }, function (A, I) { function g(A, I) { for (var g = 0; g < I.length; g++) {\r\n var B = I[g];\r\n B.enumerable = B.enumerable || !1, B.configurable = !0, \"value\" in B && (B.writable = !0), Object.defineProperty(A, B.key, B);\r\n } } A.exports = function (A, I, B) { return I && g(A.prototype, I), B && g(A, B), A; }; }, function (A, I) { function g(A, I, g, B, Q, C, E) { try {\r\n var i = A[C](E), o = i.value;\r\n }\r\n catch (A) {\r\n return void g(A);\r\n } i.done ? I(o) : Promise.resolve(o).then(B, Q); } A.exports = function (A) { return function () { var I = this, B = arguments; return new Promise((function (Q, C) { var E = A.apply(I, B); function i(A) { g(E, Q, C, i, o, \"next\", A); } function o(A) { g(E, Q, C, i, o, \"throw\", A); } i(void 0); })); }; }; }, function (A, I) { A.exports = function (A) { if (void 0 === A)\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return A; }; }, function (A, I) { A.exports = function (A, I, g) { return I in A ? Object.defineProperty(A, I, { value: g, enumerable: !0, configurable: !0, writable: !0 }) : A[I] = g, A; }; }, function (A, g) { A.exports = I; }, function (A, I, g) { var B = g(12), Q = g(5); A.exports = function (A, I) { return !I || \"object\" !== B(I) && \"function\" != typeof I ? Q(A) : I; }; }, function (A, I) { function g(I) { return A.exports = g = Object.setPrototypeOf ? Object.getPrototypeOf : function (A) { return A.__proto__ || Object.getPrototypeOf(A); }, g(I); } A.exports = g; }, function (A, I, g) { var B = g(13); A.exports = function (A, I) { if (\"function\" != typeof I && null !== I)\r\n throw new TypeError(\"Super expression must either be null or a function\"); A.prototype = Object.create(I && I.prototype, { constructor: { value: A, writable: !0, configurable: !0 } }), I && B(A, I); }; }, function (A, I, g) { A.exports = g(22); }, function (A, I) { function g(I) { return \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? A.exports = g = function (A) { return typeof A; } : A.exports = g = function (A) { return A && \"function\" == typeof Symbol && A.constructor === Symbol && A !== Symbol.prototype ? \"symbol\" : typeof A; }, g(I); } A.exports = g; }, function (A, I) { function g(I, B) { return A.exports = g = Object.setPrototypeOf || function (A, I) { return A.__proto__ = I, A; }, g(I, B); } A.exports = g; }, function (A, I, g) { var B = function (A) {\r\n \"use strict\";\r\n var I, g = Object.prototype, B = g.hasOwnProperty, Q = \"function\" == typeof Symbol ? Symbol : {}, C = Q.iterator || \"@@iterator\", E = Q.asyncIterator || \"@@asyncIterator\", i = Q.toStringTag || \"@@toStringTag\";\r\n function o(A, I, g, B) { var Q = I && I.prototype instanceof e ? I : e, C = Object.create(Q.prototype), E = new S(B || []); return C._invoke = function (A, I, g) { var B = a; return function (Q, C) { if (B === w)\r\n throw new Error(\"Generator is already running\"); if (B === h) {\r\n if (\"throw\" === Q)\r\n throw C;\r\n return q();\r\n } for (g.method = Q, g.arg = C;;) {\r\n var E = g.delegate;\r\n if (E) {\r\n var i = J(E, g);\r\n if (i) {\r\n if (i === s)\r\n continue;\r\n return i;\r\n }\r\n }\r\n if (\"next\" === g.method)\r\n g.sent = g._sent = g.arg;\r\n else if (\"throw\" === g.method) {\r\n if (B === a)\r\n throw B = h, g.arg;\r\n g.dispatchException(g.arg);\r\n }\r\n else\r\n \"return\" === g.method && g.abrupt(\"return\", g.arg);\r\n B = w;\r\n var o = D(A, I, g);\r\n if (\"normal\" === o.type) {\r\n if (B = g.done ? h : t, o.arg === s)\r\n continue;\r\n return { value: o.arg, done: g.done };\r\n }\r\n \"throw\" === o.type && (B = h, g.method = \"throw\", g.arg = o.arg);\r\n } }; }(A, g, E), C; }\r\n function D(A, I, g) { try {\r\n return { type: \"normal\", arg: A.call(I, g) };\r\n }\r\n catch (A) {\r\n return { type: \"throw\", arg: A };\r\n } }\r\n A.wrap = o;\r\n var a = \"suspendedStart\", t = \"suspendedYield\", w = \"executing\", h = \"completed\", s = {};\r\n function e() { }\r\n function G() { }\r\n function F() { }\r\n var r = {};\r\n r[C] = function () { return this; };\r\n var n = Object.getPrototypeOf, k = n && n(n(N([])));\r\n k && k !== g && B.call(k, C) && (r = k);\r\n var y = F.prototype = e.prototype = Object.create(r);\r\n function R(A) { [\"next\", \"throw\", \"return\"].forEach((function (I) { A[I] = function (A) { return this._invoke(I, A); }; })); }\r\n function M(A) { var I; this._invoke = function (g, Q) { function C() { return new Promise((function (I, C) { !function I(g, Q, C, E) { var i = D(A[g], A, Q); if (\"throw\" !== i.type) {\r\n var o = i.arg, a = o.value;\r\n return a && \"object\" == typeof a && B.call(a, \"__await\") ? Promise.resolve(a.__await).then((function (A) { I(\"next\", A, C, E); }), (function (A) { I(\"throw\", A, C, E); })) : Promise.resolve(a).then((function (A) { o.value = A, C(o); }), (function (A) { return I(\"throw\", A, C, E); }));\r\n } E(i.arg); }(g, Q, I, C); })); } return I = I ? I.then(C, C) : C(); }; }\r\n function J(A, g) { var B = A.iterator[g.method]; if (B === I) {\r\n if (g.delegate = null, \"throw\" === g.method) {\r\n if (A.iterator.return && (g.method = \"return\", g.arg = I, J(A, g), \"throw\" === g.method))\r\n return s;\r\n g.method = \"throw\", g.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\r\n }\r\n return s;\r\n } var Q = D(B, A.iterator, g.arg); if (\"throw\" === Q.type)\r\n return g.method = \"throw\", g.arg = Q.arg, g.delegate = null, s; var C = Q.arg; return C ? C.done ? (g[A.resultName] = C.value, g.next = A.nextLoc, \"return\" !== g.method && (g.method = \"next\", g.arg = I), g.delegate = null, s) : C : (g.method = \"throw\", g.arg = new TypeError(\"iterator result is not an object\"), g.delegate = null, s); }\r\n function U(A) { var I = { tryLoc: A[0] }; 1 in A && (I.catchLoc = A[1]), 2 in A && (I.finallyLoc = A[2], I.afterLoc = A[3]), this.tryEntries.push(I); }\r\n function c(A) { var I = A.completion || {}; I.type = \"normal\", delete I.arg, A.completion = I; }\r\n function S(A) { this.tryEntries = [{ tryLoc: \"root\" }], A.forEach(U, this), this.reset(!0); }\r\n function N(A) { if (A) {\r\n var g = A[C];\r\n if (g)\r\n return g.call(A);\r\n if (\"function\" == typeof A.next)\r\n return A;\r\n if (!isNaN(A.length)) {\r\n var Q = -1, E = function g() { for (; ++Q < A.length;)\r\n if (B.call(A, Q))\r\n return g.value = A[Q], g.done = !1, g; return g.value = I, g.done = !0, g; };\r\n return E.next = E;\r\n }\r\n } return { next: q }; }\r\n function q() { return { value: I, done: !0 }; }\r\n return G.prototype = y.constructor = F, F.constructor = G, F[i] = G.displayName = \"GeneratorFunction\", A.isGeneratorFunction = function (A) { var I = \"function\" == typeof A && A.constructor; return !!I && (I === G || \"GeneratorFunction\" === (I.displayName || I.name)); }, A.mark = function (A) { return Object.setPrototypeOf ? Object.setPrototypeOf(A, F) : (A.__proto__ = F, i in A || (A[i] = \"GeneratorFunction\")), A.prototype = Object.create(y), A; }, A.awrap = function (A) { return { __await: A }; }, R(M.prototype), M.prototype[E] = function () { return this; }, A.AsyncIterator = M, A.async = function (I, g, B, Q) { var C = new M(o(I, g, B, Q)); return A.isGeneratorFunction(g) ? C : C.next().then((function (A) { return A.done ? A.value : C.next(); })); }, R(y), y[i] = \"Generator\", y[C] = function () { return this; }, y.toString = function () { return \"[object Generator]\"; }, A.keys = function (A) { var I = []; for (var g in A)\r\n I.push(g); return I.reverse(), function g() { for (; I.length;) {\r\n var B = I.pop();\r\n if (B in A)\r\n return g.value = B, g.done = !1, g;\r\n } return g.done = !0, g; }; }, A.values = N, S.prototype = { constructor: S, reset: function (A) { if (this.prev = 0, this.next = 0, this.sent = this._sent = I, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = I, this.tryEntries.forEach(c), !A)\r\n for (var g in this)\r\n \"t\" === g.charAt(0) && B.call(this, g) && !isNaN(+g.slice(1)) && (this[g] = I); }, stop: function () { this.done = !0; var A = this.tryEntries[0].completion; if (\"throw\" === A.type)\r\n throw A.arg; return this.rval; }, dispatchException: function (A) { if (this.done)\r\n throw A; var g = this; function Q(B, Q) { return i.type = \"throw\", i.arg = A, g.next = B, Q && (g.method = \"next\", g.arg = I), !!Q; } for (var C = this.tryEntries.length - 1; C >= 0; --C) {\r\n var E = this.tryEntries[C], i = E.completion;\r\n if (\"root\" === E.tryLoc)\r\n return Q(\"end\");\r\n if (E.tryLoc <= this.prev) {\r\n var o = B.call(E, \"catchLoc\"), D = B.call(E, \"finallyLoc\");\r\n if (o && D) {\r\n if (this.prev < E.catchLoc)\r\n return Q(E.catchLoc, !0);\r\n if (this.prev < E.finallyLoc)\r\n return Q(E.finallyLoc);\r\n }\r\n else if (o) {\r\n if (this.prev < E.catchLoc)\r\n return Q(E.catchLoc, !0);\r\n }\r\n else {\r\n if (!D)\r\n throw new Error(\"try statement without catch or finally\");\r\n if (this.prev < E.finallyLoc)\r\n return Q(E.finallyLoc);\r\n }\r\n }\r\n } }, abrupt: function (A, I) { for (var g = this.tryEntries.length - 1; g >= 0; --g) {\r\n var Q = this.tryEntries[g];\r\n if (Q.tryLoc <= this.prev && B.call(Q, \"finallyLoc\") && this.prev < Q.finallyLoc) {\r\n var C = Q;\r\n break;\r\n }\r\n } C && (\"break\" === A || \"continue\" === A) && C.tryLoc <= I && I <= C.finallyLoc && (C = null); var E = C ? C.completion : {}; return E.type = A, E.arg = I, C ? (this.method = \"next\", this.next = C.finallyLoc, s) : this.complete(E); }, complete: function (A, I) { if (\"throw\" === A.type)\r\n throw A.arg; return \"break\" === A.type || \"continue\" === A.type ? this.next = A.arg : \"return\" === A.type ? (this.rval = this.arg = A.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === A.type && I && (this.next = I), s; }, finish: function (A) { for (var I = this.tryEntries.length - 1; I >= 0; --I) {\r\n var g = this.tryEntries[I];\r\n if (g.finallyLoc === A)\r\n return this.complete(g.completion, g.afterLoc), c(g), s;\r\n } }, catch: function (A) { for (var I = this.tryEntries.length - 1; I >= 0; --I) {\r\n var g = this.tryEntries[I];\r\n if (g.tryLoc === A) {\r\n var B = g.completion;\r\n if (\"throw\" === B.type) {\r\n var Q = B.arg;\r\n c(g);\r\n }\r\n return Q;\r\n }\r\n } throw new Error(\"illegal catch attempt\"); }, delegateYield: function (A, g, B) { return this.delegate = { iterator: N(A), resultName: g, nextLoc: B }, \"next\" === this.method && (this.arg = I), s; } }, A;\r\n }(A.exports); try {\r\n regeneratorRuntime = B;\r\n }\r\n catch (A) {\r\n Function(\"r\", \"regeneratorRuntime = r\")(B);\r\n } }, function (A, I, g) { A.exports = g(16)(\"AGFzbQEAAAABngM4YAJ/fwBgBH9/f38AYAV/f31/fwF/YAN/f38Bf2AEf39/fwF/YAAAYAJ8fAF8YAF/AGACfX0BfWABfAF8YAF9AX1gAX8Bf2ACf38Bf2ADf39/AGAFf39/f38Bf2AJf39/f39/f39/AGAGf39/f39/AGAFf39/f38AYAd/f39/fX1/AGADfX19AX1gAn99AX1gBn9/f39/fwF/YAR/fX9/AGAJf39/f39/f39/AX9gB39/f39/f38AYAd/f39/f39/AX9gBH19fX0BfWAEf39/fQF9YAJ9fwF/YAZ/f31/f38Bf2ACf38BfWABfQF/YAh/f39/f39/fwBgBH9/f38BfWAFf399f38AYAJ/fwF8YAR9fX9/AX1gAX8BfWACf3wAYAN8fHwBfGAGf31/f39/AGAFf31/f38AYAF8AX1gAn99AGAIf39/f39/f30Bf2AGf39/f399AGADfX1/AX1gAAF/YAd/fn5/f39/AX9gAn5/AX9gA35/fwF/YAJ+fgF/YAR/fn5/AGACfH8BfGAFf35+fn4AYAR+fn5+AX8CbgoDZW52Bm1lbW9yeQIAAwNlbnYDcG93AAYDZW52BGV4aXQABwNlbnYEcG93ZgAIA2VudgNleHAACQNlbnYFc3FydGYACgNlbnYDY29zAAkDZW52A2xvZwAJA2VudgNzaW4ACQNlbnYEc2JyawALA9IC0AINAwMLBw0MEQ0NNAAMDAwACjcMCgAMNAMxCxoDCwAEDjY2FAsEAwAaEQADAAADBDYJABAAFAALAAMWFgQLBA4MCwcNFRYVAA0OCwAoJiUACwALAAQnDAwLESEAAwwDAA0BABMSDQAMDAkLAAsMNAwNCwALBwcLLSwMCyslKyUrJSslKyUrJSslCSoVKQwMCgsADQsLCwMMCwwAAQEAJAsLIAQBAQQBAQICDRsRBBkBGAAXEAAHFBQBERAQDQEBEQEQAA8HAAEBAQ0HDwAOBwMFAAAzMyY3NQoDCzMMDA0yMTANDQsMAwwMCwwMAAsLAAsFLwcHBwwHLgwZEAQHDAAEBAQEDgwBAwcKBwcNBwcHDAcHBwwLCwcMBwQMDAwmAwsACw0ABwElJQ4MDAAHAQEBER4BIyIAAxEODgARAAARCwsYAAELDAAfHg0dHAENAAcEBQFwAQ4OBggBfwFB4PYJCwdMBRFfX3dhc21fY2FsbF9jdG9ycwDYAQl2bXNnX2luaXQA9QEJdm1zZ19mcmVlAHwLdm1zZ19lbmNvZGUA8wEKdm1zZ19mbHVzaADxAQkgAQBBAQsNsQGwAa8BrgG0Ao8CjgL3AYsCigKJAogC4QEK2eYH0AKUAQEEfyAAIABBoJcDaiIGKAIAQTBsakGktwJqKAIAIQMCQANAIAJBAUgNASAAIAYoAgBBMGxqIANBA3VqQai3AmoiBCAELQAAIAEgAiACQQggA0EHcWsiBCACIARIGyIFayICdSAEIAVrdHI6AAAgBSADaiEDDAALAAsgACAAQaCXA2ooAgBBMGxqQaS3AmogAzYCAAvPCwEIfwJAAkACQCACRSABQQNxRXJFBEAgACEDAkADQCADIAEtAAA6AAAgAkF/aiEEIANBAWohAyABQQFqIQEgAkEBRg0BIAQhAiABQQNxDQALCyADQQNxRQ0BDAILIAIhBCAAIgNBA3ENAQsCQCAEQRBPBEAgAyAEQXBqIgZBcHEiB0EQaiIIaiEFIAEhAgNAIAMgAigCADYCACADQQRqIAJBBGooAgA2AgAgA0EIaiACQQhqKAIANgIAIANBDGogAkEMaigCADYCACADQRBqIQMgAkEQaiECIARBcGoiBEEPSw0ACyAGIAdrIQQgASAIaiEBDAELIAMhBQsgBEEIcQRAIAUgASgCADYCACAFIAEoAgQ2AgQgAUEIaiEBIAVBCGohBQsgBEEEcQRAIAUgASgCADYCACABQQRqIQEgBUEEaiEFCyAEQQJxBEAgBSABLQAAOgAAIAUgAS0AAToAASAFQQJqIQUgAUECaiEBCyAEQQFxRQ0BIAUgAS0AADoAACAADwsCQCAEQSBJDQACQCADQQNxIgJBA0cEQCACQQJGDQEgAkEBRw0CIAMgAS0AAToAASADIAEoAgAiBjoAACADIAEtAAI6AAIgAUEQaiECIARBbWohCCAEQX1qIQcgA0EDaiEFIAEgBEFsakFwcSIJQRNqIgpqIQEDQCAFIAJBdGooAgAiBEEIdCAGQRh2cjYCACAFQQRqIAJBeGooAgAiBkEIdCAEQRh2cjYCACAFQQhqIAJBfGooAgAiBEEIdCAGQRh2cjYCACAFQQxqIAIoAgAiBkEIdCAEQRh2cjYCACAFQRBqIQUgAkEQaiECIAdBcGoiB0EQSw0ACyAIIAlrIQQgAyAKaiEDDAILIAMgASgCACIGOgAAIAFBEGohAiAEQW9qIQggBEF/aiEHIANBAWohBSABIARBbGpBcHEiCUERaiIKaiEBA0AgBSACQXRqKAIAIgRBGHQgBkEIdnI2AgAgBUEEaiACQXhqKAIAIgZBGHQgBEEIdnI2AgAgBUEIaiACQXxqKAIAIgRBGHQgBkEIdnI2AgAgBUEMaiACKAIAIgZBGHQgBEEIdnI2AgAgBUEQaiEFIAJBEGohAiAHQXBqIgdBEksNAAsgCCAJayEEIAMgCmohAwwBCyADIAEoAgAiBjoAACADIAEtAAE6AAEgAUEQaiECIARBbmohCCAEQX5qIQcgA0ECaiEFIAEgBEFsakFwcSIJQRJqIgpqIQEDQCAFIAJBdGooAgAiBEEQdCAGQRB2cjYCACAFQQRqIAJBeGooAgAiBkEQdCAEQRB2cjYCACAFQQhqIAJBfGooAgAiBEEQdCAGQRB2cjYCACAFQQxqIAIoAgAiBkEQdCAEQRB2cjYCACAFQRBqIQUgAkEQaiECIAdBcGoiB0ERSw0ACyAIIAlrIQQgAyAKaiEDCyAEQRBxBEAgAyABLQABOgABIAMgAS0AAjoAAiADIAEtAAM6AAMgAyABLQAEOgAEIAMgAS0ABToABSADIAEtAAY6AAYgAyABLQAHOgAHIAMgAS0ACDoACCADIAEtAAk6AAkgAyABLQAKOgAKIAMgAS0ACzoACyADIAEtAAw6AAwgAyABLQANOgANIAMgAS0ADjoADiADIAEtAAA6AAAgAyABLQAPOgAPIANBEGohAyABQRBqIQELIARBCHEEQCADIAEtAAA6AAAgAyABLQABOgABIAMgAS0AAjoAAiADIAEtAAM6AAMgAyABLQAEOgAEIAMgAS0ABToABSADIAEtAAY6AAYgAyABLQAHOgAHIANBCGohAyABQQhqIQELIARBBHEEQCADIAEtAAA6AAAgAyABLQABOgABIAMgAS0AAjoAAiADIAEtAAM6AAMgA0EEaiEDIAFBBGohAQsgBEECcQRAIAMgAS0AADoAACADIAEtAAE6AAEgA0ECaiEDIAFBAmohAQsgBEEBcUUNACADIAEtAAA6AAALIAAL/AICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhAgAyABNgIMIAMgATYCFCADIAE2AhggAkFoaiABNgIAIAJBZGogATYCACACQWxqIAE2AgAgAkFwaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDACABQQhqIAU3AwAgAUEQaiAFNwMAIAFBGGogBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACxQAIAAEQCAAKAIAQbucYkYPC0EAC6UNAQd/AkACQAJAIABFDQAgAEF4aiIFIABBfGooAgAiA0F4cSIAaiEGAkACQCADQQFxDQAgA0EDcUUNAiAFIAUoAgAiA2siBUG87AUoAgBJDQIgAyAAaiEAAkACQAJAAkBBwOwFKAIAIAVHBEAgA0H/AUsNASAFKAIMIgIgBSgCCCIBRg0CIAEgAjYCDCACIAE2AgggBSAGSQ0GDAcLIAYoAgQiA0EDcUEDRw0EQbTsBSAANgIAIAZBBGogA0F+cTYCAAwICyAFKAIYIQcgBSgCDCIBIAVGDQEgBSgCCCIDIAE2AgwgASADNgIIIAcNAgwDC0Gs7AVBrOwFKAIAQX4gA0EDdndxNgIAIAUgBkkNAwwECwJAIAVBFGoiAygCACICRQRAIAVBEGoiAygCACICRQ0BCwNAIAMhBCACIgFBFGoiAygCACICDQAgAUEQaiEDIAEoAhAiAg0ACyAEQQA2AgAgB0UNAgwBC0EAIQEgB0UNAQsCQAJAIAUoAhwiAkECdEHc7gVqIgMoAgAgBUcEQCAHQRBBFCAHKAIQIAVGG2ogATYCACABDQEMAwsgAyABNgIAIAFFDQELIAEgBzYCGCAFKAIQIgMEQCABIAM2AhAgAyABNgIYCyAFQRRqKAIAIgNFDQEgAUEUaiADNgIAIAMgATYCGCAFIAZJDQIMAwtBsOwFQbDsBSgCAEF+IAJ3cTYCAAsgBSAGTw0BCyAGKAIEIgNBAXFFDQACQAJAAkACQAJAAkACQAJAIANBAnFFBEBBxOwFKAIAIAZGDQFBwOwFKAIAIAZGDQIgA0F4cSAAaiEAIANB/wFLDQMgBigCDCICIAYoAggiAUYNBCABIAI2AgwgAiABNgIIDAcLIAZBBGogA0F+cTYCACAFIABBAXI2AgQgBSAAaiAANgIADAcLQcTsBSAFNgIAQbjsBUG47AUoAgAgAGoiADYCACAFIABBAXI2AgQgBUHA7AUoAgBHDQdBtOwFQQA2AgBBwOwFQQA2AgAPC0HA7AUgBTYCAEG07AVBtOwFKAIAIABqIgA2AgAMCAsgBigCGCEHIAYoAgwiASAGRg0BIAYoAggiAyABNgIMIAEgAzYCCCAHDQIMAwtBrOwFQazsBSgCAEF+IANBA3Z3cTYCAAwCCwJAIAZBFGoiAygCACICRQRAIAZBEGoiAygCACICRQ0BCwNAIAMhBCACIgFBFGoiAygCACICDQAgAUEQaiEDIAEoAhAiAg0ACyAEQQA2AgAgB0UNAgwBC0EAIQEgB0UNAQsCQAJAIAYoAhwiAkECdEHc7gVqIgMoAgAgBkcEQCAHQRBBFCAHKAIQIAZGG2ogATYCACABDQEMAwsgAyABNgIAIAFFDQELIAEgBzYCGCAGKAIQIgMEQCABIAM2AhAgAyABNgIYCyAGQRRqKAIAIgNFDQEgAUEUaiADNgIAIAMgATYCGAwBC0Gw7AVBsOwFKAIAQX4gAndxNgIACyAFIABBAXI2AgQgBSAAaiAANgIAIAVBwOwFKAIARw0AQbTsBSAANgIADwsCQAJAAkACQAJ/AkAgAEH/AU0EQCAAQQN2IgNBA3RB1OwFaiEAQazsBSgCACICQQEgA3QiA3FFDQEgACgCCAwCCyAFQgA3AhAgBUEcagJ/QQAgAEEIdiICRQ0AGkEfIABB////B0sNABogAEEOIAIgAkGA/j9qQRB2QQhxIgN0IgJBgOAfakEQdkEEcSIBIANyIAIgAXQiA0GAgA9qQRB2QQJxIgJyayADIAJ0QQ92aiIDQQdqdkEBcSADQQF0cgsiAzYCACADQQJ0QdzuBWohAkGw7AUoAgAiAUEBIAN0IgZxRQ0CIABBAEEZIANBAXZrIANBH0YbdCEDIAIoAgAhAQNAIAEiAigCBEF4cSAARg0FIANBHXYhASADQQF0IQMgAiABQQRxakEQaiIGKAIAIgENAAsgBiAFNgIADAMLQazsBSACIANyNgIAIAALIQMgAEEIaiAFNgIAIAMgBTYCDCAFIAA2AgwgBSADNgIIDwtBsOwFIAEgBnI2AgAgAiAFNgIACyAFQRhqIAI2AgAgBSAFNgIMIAUgBTYCCAwBCyACKAIIIgAgBTYCDCACIAU2AgggBSACNgIMIAUgADYCCCAFQRhqQQA2AgALQczsBUHM7AUoAgBBf2oiBTYCACAFRQ0BCw8LQfTvBSEFA0AgBSgCACIAQQhqIQUgAA0AC0HM7AVBfzYCAA8LIAUgAEEBcjYCBCAFIABqIAA2AgALFwAgAC0AAEEgcUUEQCABIAIgABDmAQsLXgEBfwJAAkAgAARAIAEgAGwhAiABIAByQYCABE8EQCACQX8gAiAAbiABRhshAgsgAhAiIgANAQwCC0EAECIiAEUNAQsgAEF8ai0AAEEDcUUNACAAQQAgAhALGgsgAAt2AQF/IwBBgAJrIgUkACACIANMIARBgMAEcXJFBEAgBSABIAIgA2siBEGAAiAEQYACSSICGxALIQMgAkUEQCAEIQIDQCAAIANBgAIQDiACQYB+aiICQf8BSw0ACyAEQf8BcSEECyAAIAMgBBAOCyAFQYACaiQAC+ABAQh/IABBsAJqIQQgAEGsAmohBSAAQagCaiEGIABBpJcDaiEJIABBoAJqIQcCQANAIAJBAUgNASAEKAIAIgNFBEAgBEEINgIAIAUgBSgCAEEBaiIDNgIAIAAgCSgCAEEwbGpBoLcCaigCACAGKAIARgRAIAAQhQIgBSgCACEDCyAHKAIAIANqQQA6AAAgBCgCACEDCyAEIAMgAiADIAIgA0gbIghrIgM2AgAgBygCACAFKAIAaiIKIAotAAAgASACIAhrIgJ1IAN0cjoAACAGIAggBigCAGo2AgAMAAsACws+AQF/IwBBEGsiAyQAAkAgAEUNACAAKALMngVFDQAgAyACNgIMIAEgAiAAQcyeBWooAgARAAALIANBEGokAAtZAQF+AkACfiADQcAAcUUEQCADRQ0CIAFBwAAgA2utiCACIAOtIgSGhCECIAEgBIYMAQsgASADQUBqrYYhAkIACyEBIAJCAIQhAgsgACABNwMAIAAgAjcDCAu9CAIHfxh9An8CQCAAEIIBIgNBAUcEQCADQQRHDQELQZCEAQwBC0Gg/gALIAFBxABsaiICKAIwIQUgAigCDCEDIAIoAgghBiACKAIEIQcgAigCNCEEIAJB+ABqKAIAIQggAioCECEOIAJB1ABqKgIAIRcgAioCFCEPIAJB2ABqKgIAIRggAioCGCEQIAJB3ABqKgIAIRkgAioCHCERIAJB4ABqKgIAIRogAioCICESIAJB5ABqKgIAIRsgAioCJCETIAJB6ABqKgIAIRwgAioCKCEUIAJB7ABqKgIAIR0gAioCLCEKIAJB8ABqKgIAIQwgAioCOCEVIAJB/ABqKgIAIR4gAioCPCENIAJBgAFqKgIAIR8gAioCQCEWIAJBhAFqKgIAISAgACoCoAEhCyAAIAIoAgAQhwICf0GAgICAeCALIAggBGuylCAEspIiCYtDAAAAT11FDQAaIAmoCyECIAAQWkF/RgRAIAAgBxBZCwJAIAAQWEF/R0UEQCAAIAYQVwsgA0UNACAAIgQQDARAIAQgAzYCjAELCyAAEJABQwAAgD+SIglDAAAAAFwgCSAJW3FFBEAgACAOIAsgFyAOk5SSEI8BCyAAEI4BQwAAgD+SIglDAAAAAFwgCSAJW3FFBEAgACAPIAsgGCAPk5SSEI0BCyAAEIwBIglDAAAAAFwgCSAJW3FFBEAgACAQIAsgGSAQk5SSEIsBCyAAEIoBIglDAAAAAFwgCSAJW3FFBEAgACARIAsgGiARk5SSEIkBCwJAIAAQggEiBEEERwRAIARBAUcNAQsgACIDEAwEQCADQQU2AtwBCwsgDCAKkyEMIAAQiAEiCUMAAAAAXCAJIAlbcUUEQCAAIBIgCyAbIBKTlJIQhwELIAsgDJQhDCAAEIYBQwAAgD+SIglDAAAAAFwgCSAJW3FFBEAgACATIAsgHCATk5SSEIUBCyAKIAySIQkCfSAAIgMQDARAIAMqAuwBDAELQwAAAAALIgpDAAAAAFwgCiAKW3FFBEAgFCALIB0gFJOUkiEKIAAiAxAMBEAgAyAKOALsAQsLAkAgCUMAAAAAXkEBcw0AIAAQhAFDAACAP5IiCkMAAAAAXCAKIApbcQ0AIAAgCRCDAQsgHyANkyEKIAVBAU4EQCAAIAAQP0ECchA+CyAgIBaTIQkgCyAKlCEKAkAgAkEBSA0AIAAQPyIEQYCAwB9xDQAgACAEIAJBFHRyED4LIAsgCZQhCSANIAqSIQ0gABBWQwAAgD+SIgpDAAAAAFwgCiAKW3FFBEAgACAVIAsgHiAVk5SSuxBVCyAAIAE2AqQBIABBoAFqIAs4AgAgACgCoAIiAkGcAmogDTgCACACQeQBaiAWIAmSuwJ8IAAqAhQiC0MAAAAAWyALIAtcckUEQCALi7sQOUQAAAAAAAAkQKIMAQtEAAAAAAAAAAALobY4AgAL0AEBBn8gAEGwlwNqIgcgAEHQAGooAgAiBUELdEF4aiICIABBmAFqKAIAIgYgABAsIgNrIgQgBCACShsiAjYCACADIABBHGooAgBBA3RrIAVtIQMCQCACQQBOBEAgAEGUAWooAgBFDQELIAdBADYCAEEAIQILIABBzKYBakEANgIAIAYgAEGslwNqKAIAIgQgAiAEIAJIGyADIAVsaiICIAIgBkobIQIgACgCsJ4FIgAEQCAAIAQ2AuC1DCAAIANBAm02Aty1DAsgASADNgIAIAILNQEBf0EDIQICQANAIAJBAEgNASAAIAJqIAE6AAAgAkF/aiECIAFBCHYhAQwACwALIABBBGoLCgAgACABcUEARwv2AQIDfQR8IAAgACsDAEQAAAAAAABgQaAiBTkDACAAIAArAwhEAAAAAAAAYEGgIgY5AwggACAAKwMQRAAAAAAAAGBBoCIHOQMQIAAgACsDGEQAAAAAAABgQaAiCDkDGCAItrxBAnRB4MeDoH1qKgIAIQIgB7a8QQJ0QeDHg6B9aioCACEDIAW2vEECdEHgx4OgfWoqAgAhBCABIAYgBra8QQJ0QeDHg6B9aioCALugtrxBgICAqHtqNgIEIAEgBSAEu6C2vEGAgICoe2o2AgAgASAHIAO7oLa8QYCAgKh7ajYCCCABIAggArugtrxBgICAqHtqNgIMC04BAn9DAACAPyAAvCIBQf//AHGyQwAAgDiUIgCTIAFBDHZB/A9xIgJBoNwFaioCAJQgACACQaTcBWoqAgCUkiABQRd2Qf8BcUGBf2qykgveAQIBfwJ+QQEhBAJAIABCAFIgAUL///////////8AgyIFQoCAgICAgMD//wBWIAVCgICAgICAwP//AFEbDQAgAkIAUiADQv///////////wCDIgZCgICAgICAwP//AFYgBkKAgICAgIDA//8AURsNAAJAIAIgAIQgBiAFhIRQRQRAIAMgAYNCAFMNAUF/IQQgACACVCABIANTIAEgA1EbDQIgACAChSABIAOFhEIAUg8LQQAPC0F/IQQgACACViABIANVIAEgA1EbDQAgACAChSABIAOFhEIAUiEECyAECykAIABBGHQgAEEIdEGAgPwHcXIgAEEIdkGA/gNxIABBGHZyciAAIAEbC08AIABDAAAAAJe7RPyp8dJNYlA/orYiALtEUrgehetR6D+iEJEBRAAAAAAAACpAoiAAIACUu0QAAAAAACBMQKMQkQFEAAAAAAAADECioLYLEQAgABAMBEAgACABNgKcAQsLIAECfUEBQX9BACAAKgIAIgIgASoCACIDXRsgAiADXhsLXQEBfgJAAn4gA0HAAHFFBEAgA0UNAiACQcAAIANrrYYgASADrSIEiIQhASACIASIIQJCAAwBCyACIANBQGqtiCEBQgAhAkIACyABhCEBCyAAIAE3AwAgACACNwMIC+IDAQZ/AkAgACABRg0AAkACQAJAAkACQAJAAkACQAJAIAEgAmogAE0NACAAIAJqIgMgAU0NACABIABzQQNxIQQgACABTw0BIARFDQIgACEEIAJFDQkMCAsgACABIAIQCg8LIARFDQEMBAsgAEEDcUUNASAAIQMDQCACRQ0HIAMgAS0AADoAACABQQFqIQEgAkF/aiECIANBAWoiA0EDcQ0ADAMLAAsgA0EDcQRAIAJBf2ohAgNAIAJBf0YNByAAIAJqIgQgASACai0AADoAACACQX9qIQIgBEEDcQ0ACyACQQFqIQILIAJBBEkNAiACQXxqIQQDQCAAIARqIAEgBGooAgA2AgAgBEEDSyEDIARBfGohBCADDQALIAJBA3EiAg0DDAULIAAhAwsgAkEETwRAIAMgAkF8aiIGQXxxIgdBBGoiCGohBCABIQUDQCADIAUoAgA2AgAgBUEEaiEFIANBBGohAyACQXxqIgJBA0sNAAsgASAIaiEBIAYgB2siAg0DDAQLIAMhBCACDQIMAwsgAkUNAgsDQCAAIAJqQX9qIAEgAmpBf2otAAA6AAAgAkF/aiICDQAMAgsACwNAIAQgAS0AADoAACAEQQFqIQQgAUEBaiEBIAJBf2oiAg0ACwsgAAuEAQIDfwF+AkAgAEKAgICAEFoEQANAIAFBf2oiASAAQgqAIgVCdn4gAHynQTByOgAAIABC/////58BViED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IARqIAQ2AgACfwJAAn8CQCAEQf8BTQRAIARBA3YiAkEDdEHU7AVqIQBBrOwFKAIAIgRBASACdCICcUUNASAAQQhqIQQgACgCCAwCCyAEQQh2IgJFDQJBHyAEQf///wdLDQMaIARBDiACIAJBgP4/akEQdkEIcSIAdCICQYDgH2pBEHZBBHEiBSAAciACIAV0IgBBgIAPakEQdkECcSICcmsgACACdEEPdmoiAEEHanZBAXEgAEEBdHIMAwtBrOwFIAQgAnI2AgAgAEEIaiEEIAALIQIgBCAHNgIAIAIgBzYCDCAHIAA2AgwgByACNgIIDAILQQALIQAgByAANgIcIAdCADcCECAAQQJ0QdzuBWohAgJAAkBBASAAdCIFIApxBEAgBEEAQRkgAEEBdmsgAEEfRht0IQAgAigCACEFA0AgBSICKAIEQXhxIARGDQMgAEEddiEFIABBAXQhACACIAVBBHFqQRBqIgEoAgAiBQ0ACyABIAc2AgAMAQtBsOwFIAUgCnI2AgAgAiAHNgIACyAHIAI2AhggByAHNgIMIAcgBzYCCAwBCyACKAIIIgAgBzYCDCACIAc2AgggByACNgIMIAcgADYCCCAHQQA2AhgLIANBCGohAEEHCyEIA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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F15BAXMNACADQQhqIBcgFiAXkyAQKAIAKgLgVpSSOAIACyADQQxqIQMgB0EDaiEHIApBAWohCgwACwALIAwL+wIBCn8gAQRAIAFBBHQiB0Hw8AVqKAIAIQYgBCACQQJ0aiEEIAdB+PAFaiENIAdB/PAFaiEOIAFBEEkhDAJAA0AgAiADTg0BIARBhBJqKAIAIQhBACEFAkACQAJAAn8CQAJAIARBgBJqKAIAIgkEQCAEKgIAQwAAAABdIQdB//8DIQEMAQtBACEBQQAhBwsgDA0AIAlBD08EQCAHIAlBAXRB4v8HakH+/wdxciEHQQ8hCSAGIQULQRAgCEEPSQ0BGiAHIAZ0IAhB8f8DakH//wNxciEHIAUgBmohBUEQIQtBDyEIDAILIAYLIQsgCEUNAQsgB0EBdCAEQQRqKgIAQwAAAABdciEHIAFBf2ohAQwBC0EAIQgLIAAgDSgCACALIAlsIAhqIghBAXRqLwEAIAEgDigCACAIai0AAGpBEHRBEHUiCBARIAAgByAFIAFrQf//A3EiARARIAogAWogCGohCiAEQQhqIQQgAkECaiECDAALAAsgCg8LQQALigsCBX8PfiMAQeAAayIFJAAgA0IRiCAEQi+GhCEPIAFCIIggAkIghoQhCyADQjGIIARC////////P4MiDEIPhoQhESAEIAKFQoCAgICAgICAgH+DIQogDEIRiCESIAJC////////P4MiDUIgiCETIARCMIinQf//AXEhBgJAAkACQCACQjCIp0H//wFxIghBf2pB/f8BTQRAIAZBf2pB/v8BSQ0BCyABUCACQv///////////wCDIhBCgICAgICAwP//AFQgEEKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEKDAMLIANQIARC////////////AIMiDkKAgICAgIDA//8AVCAOQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQogAyEBDAMLAkACQCABIBBCgICAgICAwP//AIWEQgBRBEAgAyAOhFANASAEQoCAgICAgICAgH+DIAKFIQoMBQsgAyAOQoCAgICAgMD//wCFhEIAUg0BIAEgEIRQDQAgAkKAgICAgICAgIB/gyAEhSEKIAMhAQwEC0KAgICAgIDg//8AIQoMAgsgASAQhEIAUSADIA6EQgBRcg0BIBBC////////P1gEQCAFQdAAaiABIA0gASANIA1QIgcbeSAHQQZ0rXynIgdBcWoQE0EQIAdrIQcgBSkDUCIBQiCIIAVB2ABqKQMAIg1CIIaEIQsgDUIgiCETCyAOQv///////z9WDQAgBUHAAGogAyAMIAMgDCAMUCIJG3kgCUEGdK18pyIJQXFqEBNBECAJayAHaiEHIAUpA0AiA0IxiCAFQcgAaikDACICQg+GhCERIANCEYggAkIvhoQhDyACQhGIIRILIA9C/////w+DIgIgAUL/////D4MiBH4iDiADQg+GQoCA/v8PgyIBIAtC/////w+DIgN+fCIPQiCGIgwgASAEfnwiCyAMVK0gAiADfiIVIAEgDUL/////D4MiDH58IhAgEUL/////D4MiDSAEfnwiESAPQiCIIA8gDlStQiCGhHwiDiACIAx+IhYgASATQoCABIQiD358IhMgDSADfnwiFCASQv////8Hg0KAgICACIQiASAEfnwiEkIghnwiF3whBCAIIAZqIAdqQYGAf2ohBgJAIA0gDH4iGCACIA9+fCICIBhUrSACIAEgA358IgMgAlStfCADIBAgFVStIBEgEFStfHwiAiADVK18IAEgD358IAEgDH4iAyANIA9+fCIBIANUrUIghiABQiCIhHwgAiABQiCGfCIBIAJUrXwgASASQiCIIBMgFlStIBQgE1StfCASIBRUrXxCIIaEfCIDIAFUrXwgAyAOIBFUrSAXIA5UrXx8IgIgA1StfCIBQoCAgICAgMAAg1AEQCALQj+IIQMgAUIBhiACQj+IhCEBIARCP4ggAkIBhoQhAiALQgGGIQsgAyAEQgGGhCEEDAELIAZBAWohBgsgBkH//wFOBEAgCkKAgICAgIDA//8AhCEKDAELAn4gBq1CMIYgAUL///////8/g4QgBkEASg0AGkEBIAZrIgZB/wBLDQEgBUEgaiALIAQgBhAfIAVBEGogAiABQYABIAZrIggQEyAFQTBqIAsgBCAIEBMgBSACIAEgBhAfIAUpAxAgBSkDIIQgBSkDMCAFQThqKQMAhEIAUq2EIQsgBUEYaikDACAFQShqKQMAhCEEIAUpAwAhAiAFQQhqKQMACyAKhCEKIAtQIARCf1UgBEKAgICAgICAgIB/URtFBEAgCiACQgF8IgEgAlStfCEKDAILIAsgBEKAgICAgICAgIB/hYRCAFEEQCAKIAIgAkIBg3wiASACVK18IQoMAgsgAiEBDAELQgAhAQsgACABNwMAIAAgCjcDCCAFQeAAaiQAC+QJAgR/BH4jAEHwAGsiByQAIARC////////////AIMhCgJAAkAgAUJ/fCIJQn9RIAJC////////////AIMiCyAJIAFUrXxCf3wiCUL///////+///8AViAJQv///////7///wBRG0UEQCADQn98IglCf1IgCiAJIANUrXxCf3wiCUL///////+///8AVCAJQv///////7///wBRGw0BCyABUCALQoCAgICAgMD//wBUIAtCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhBCABIQMMAgsgA1AgCkKAgICAgIDA//8AVCAKQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQQMAgsgASALQoCAgICAgMD//wCFhEIAUQRAQoCAgICAgOD//wAgAiADIAGFIAQgAoVCgICAgICAgICAf4WEUCIFGyEEQgAgASAFGyEDDAILIAMgCkKAgICAgIDA//8AhYRQDQEgASALhEIAUgRAIAMgCoRQRQ0BIAEhAyACIQQMAgsgAyAKhEIAUg0BIAMgAYMhAyAEIAKDIQQMAQsgAyABIAMgAVYgCiALViAKIAtRGyIGGyEKIAQgAiAGGyILQv///////z+DIQkgAiAEIAYbIgJCMIinQf//AXEhCCALQjCIp0H//wFxIgVFBEAgB0HgAGogCiAJIAogCSAJUCIFG3kgBUEGdK18pyIFQXFqEBNBECAFayEFIAdB6ABqKQMAIQkgBykDYCEKCyABIAMgBhshAyACQv///////z+DIQEgCEUEQCAHQdAAaiADIAEgAyABIAFQIgYbeSAGQQZ0rXynIgZBcWoQE0EQIAZrIQggB0HYAGopAwAhASAHKQNQIQMLIAFCA4YgA0I9iIRCgICAgICAgASEIQQgCUIDhiAKQj2IhCEBIAsgAoUhCQJ+IANCA4YiAyAFIAhrIgZFDQAaIAZB/wBNBEAgB0HAAGogAyAEQYABIAZrEBMgB0EwaiADIAQgBhAfIAdBOGopAwAhBCAHKQMwIAcpA0AgB0HIAGopAwCEQgBSrYQMAQtCACEEQgELIQMgAUKAgICAgICABIQhDCAKQgOGIQICQAJAIAlCf1UEQCAEIAx8IAMgAnwiASADVK18IgNCgICAgICAgAiDUA0BIAFCAYggA0I/hoQgAUIBg4QhASAFQQFqIQUgA0IBiCEDDAELIAIgA30iASAMIAR9IAIgA1StfSIDhFANASADQv////////8DVg0AIAdBIGogASADIAEgAyADUCIGG3kgBkEGdK18p0F0aiIGEBMgBSAGayEFIAdBKGopAwAhAyAHKQMgIQELIAtCgICAgICAgICAf4MhBCAFQf//AU4EQCAEQoCAgICAgMD//wCEIQRCACEDDAILQQAhBgJAIAVBAEoEQCAFIQYMAQsgB0EQaiABIANBgAFBASAFayIFaxATIAcgASADIAUQHyAHKQMAIAcpAxAgB0EYaikDAIRCAFKthCEBIAdBCGopAwAhAwsgA0IDiEL///////8/gyAEhCAGrUIwhoQgAUIDiCADQj2GhCIEIAGnQQdxIgVBBEutfCIDIARUrXwgA0IBg0IAIAVBBEYbIgEgA3wiAyABVK18IQQMAQtCACEDQgAhBAsgACADNwMAIAAgBDcDCCAHQfAAaiQACzQAQwAAIEEgACoCtAEgACABED0gACoC0AEiAYxDAADIwiABQwAAAABeG5KSQ83MzD2UEAILWwECfwJ/IABBiJYFaigCACIBBEAgAEEUaigCACICQQZ0IAFBAnRqQYDGAGoMAQsgACgCFCECIABB/ABqCyEBIAIgAEHEAGooAgAgASgCACAAQZCWBWooAgAQXAtaAQN/IAIhBCAAIQUCQANAIARFDQEgBEF/aiEEIAUCfyABBEAgAUEBaiABIAEtAAAiBhshASAGIAMgBhsMAQtBACEBIAMLOgAAIAVBAWohBQwACwALIAAgAmoLZQEEfyACBEAgAS8BACEFIAIhBCAAIQMCQANAIARFDQEgAyAFIAEvAQAQnwEiBjoAACADQQFqIAZBCHY6AAAgA0ECaiEDIAFBAmohASAEQX9qIQQMAAsACyAAIAJBAXRqIQALIAALEwAgACABOgABIAAgAUEIdjoAAAuGAQEBfUMepr1CIAMgA0MAAIA/XRshBCABEBm7RH5YxyQYFQhAorYgApMhAUMAAAAAIQMgACAAlCIAQwjlPB5eQQFzRQRAIAAQGbtEpuQ9ZhQRoT+iRAAAAAAAAPA/oLYhAwtDAAAgQSACQxKetEKSIASTIAEgA0MAAAAA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QYxuaioCAEMAAAAAXUEBcw0AIAJBAXIhAgsgACACIAcoAgAgA0EBdGovAQBqIAYoAgAgA2oiAi0AABARIAFBEGohASAEQX9qIQQgBSACLQAAaiEFDAALAAsgBQuIAQEEfyAAQfSmAWoiAiABKALYJSIFIAEoAtwlakECdGpBCGooAgAhAyAAIAEoArwlQQAgASgCpCUiBCACIAVBAnRqQQRqKAIAIgIgAiAEShsiAiABECggACABQcAlaigCACACIAQgAyADIARKGyIDIAEQKGogACABQcQlaigCACADIAQgARAoaguLAwMDfwF+AnwjAEEQayICJAACfAJAAkAgAL0iBEIgiKdB/////wdxIgFBgOC/hARPBEAgBEIAUyABQYCAwIQESXINASAARAAAAAAAAOB/ogwDCyABQf//v+QDSw0BIABEAAAAAAAA8D+gDAILRAAAAAAAAPC/IACjIAFBgIDA/wdPDQEaIARCf1UNACAARAAAAAAAzJDAZUUEQCAARAAAAAAAADDDoEQAAAAAAAAwQ6AgAGENASACRAAAAAAAAKC2IACjtjgCDAwBCyACRAAAAAAAAKC2IACjtjgCDEQAAAAAAAAAAAwBCyAARAAAAAAAALhCoCIFvadBgAFqIgFBBHRB8B9xIgNBkKcBaisDACIGIAYgACAFRAAAAAAAALjCoKEgA0EIckGQpwFqKwMAoSIAoiAAIAAgACAARHRchwOA2FU/okQABPeIq7KDP6CiRKagBNcIa6w/oKJEdcWC/72/zj+gokTvOfr+Qi7mP6CioCABQYB+cUGAAm0Q3wELIQAgAkEQaiQAIAALNAECfyAABEAgAEEBcUUEQANAIAFBAWohASAAQQJxIQIgAEEBdiEAIAJFDQALCyABDwtBIAt/AQN/IwBBgAJrIgMkAAJAIAFBAkgNACAAIAFBAnRqIAM2AgAgAyAAKAIAIgQoAAA2AgAgAUF/aiEBA0AgBCAAQQRqIgIoAgAoAAA2AAAgACAAKAIAQQRqNgIAIAFFDQEgAUF/aiEBIAIoAgAhBCACIQAMAAsACyADQYACaiQACycBAX8gACgCAEF/ahByIgEEQCABDwsgACgCBBByIgBBIGpBACAAGwtJAQJ/IAAgASgCvCVBACABKAKkJSICIABB3KcBaigCAEEDbCIDIAMgAkobIgIgARAoIAAg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DQELIAMgABClAgwBCyACEKABBEAgAyAAEKQCDAELIAMgABCjAgshAyAAKAIAIQAMAAsACyAGBEAgAyAGIAVB4J0FaigCACAFQeSdBWooAgAQogIhAwsgA0EAIAQgAWogA2sQCxogBA8LQQAPCyAECyIBAX8gAEH+/wNGBEAgASICQRh0IAJBCHRyQRB2IQELIAELCAAgABCoAkULcwEDfyAABEAgACgCABANIABBADYCAAJAIAFFDQADQCABIAJqIQMgAkEBaiIEIQIgAy0AAA0AC0EAIQIgBEEBRg0AIAAgBEEBEA8iAzYCACADRQ0AIAMgASAEQX9qIgIQCiAEakF/akEAOgAACyACDwtBAAt2AQF/AkAgAUUNACABLQAARQ0AAkADQCACQQNPDQEgAS0AAEUNASAAIAJqIAEgAmotAAA6AAAgAkEBaiECDAALAAsCQANAIAJBAksNASAAIAJqQSA6AAAgAkEBaiECDAALAAsPCyAAQecAOgACIABB5dwBOwAAC48BAQN/IABBeGohACABQXhqIQEgA0EQaiEFIANBDGohBgJAA0AgAkUNASABQQhqIAAqAgAgAyoCAJQgAEEEaiIEKgIAIANBCGoqAgCUkiAAQQhqKgIAIAUqAgCUkiABKgIAIANBBGoqAgCUIAFBBGoiASoCACAGKgIAlJKTOAIAIAJBf2ohAiAEIQAMAAsACwvYAwELfyABQVhqIQEgAEFYaiEAIANBwABqIQUgA0E8aiEGIANBOGohByADQTRqIQggA0EwaiEJIANBLGohCiADQcgAaiELIANBxABqIQwgA0HQAGohDSADQcwAaiEOAkADQCACRQ0BIAFBKGogACoCACADKgIAlCAAQQRqIgQqAgAgA0EEaioCAJSSIABBCGoqAgAgA0EIaioCAJSSIABBDGoqAgAgA0EMaioCAJSSIABBEGoqAgAgA0EQaioCAJQgAEEUaioCACADQRRqKgIAlJIgAEEYaioCACADQRhqKgIAlJIgAEEcaioCACADQRxqKgIAlJKSIABBIGoqAgAgA0EgaioCAJQgAEEkaioCACADQSRqKgIAlJKSIABBKGoqAgAgA0EoaioCAJSSIAEqAgAgCioCAJQgAUEEaiIAKgIAIAkqAgCUkiABQQhqKgIAIAgqAgCUIAFBDGoqAgAgByoCAJSSkiABQRBq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IAVBCGohBSAIQQRqIQgMAAsACyAHQYDkAGohByAJQYDkAGohCSANQYDkAGohDSAKQQFqIQoMAAsACyAAQayXBWpBgICA/AM2AgAgACAWEM0BCyAAQYyWBWoiCCAIKAIAQQFqNgIAIAAQzAEgDEGwH2okACAVC0QAIABBoLcCakEANgIAIABBoJcDakIANwMAIABBgIAJQQEQDzYCoAIgAEGsAmpC/////w83AgAgAEGkAmpCgIAJNwIAC0UBAn8CQCAAQawCaigCACIEQQBIDQBBfyEDIAQgAk4NACABIAAoAqACIARBAWoiAxAKGiAAQawCakL/////DzcCAAsgAwsDAAELbAIBfwJ+IwBBEGsiAiQAAn4gAQRAIAIgAa1CAEHRAEEAIAFnIgFraxATIAIpAwAhAyACQQhqKQMAQoCAgICAgMAAhUGegAEgAWutQjCGfAwBC0IACyEEIAAgAzcDACAAIAQ3AwggAkEQaiQAC4cBAgJ/An4jAEEQayIDJAACfiABBEAgAyABIAFBH3UiAmogAnMiAq1CAEHRAEEAIAJnIgJraxATIAMpAwAhBCADQQhqKQMAQoCAgICAgMAAhUGegAEgAmutQjCGfCABQYCAgIB4ca1CIIaEDAELQgALIQUgACAENwMAIAAgBTcDCCADQRBqJAALbQEDfyMAQRBrIgIkAAJAIAFCAFMNACABQjCIp0H//wFxIgRB//8ASQ0AQX8hAyAEQYGAf2pBH0sNACACIAAgAUL///////8/g0KAgICAgIDAAIRB74ABIARrEB8gAigCACEDCyACQRBqJAAgAwuMAQEDfyMAQRBrIgMkAAJ/QQAgAUIwiKdB//8BcSIEQf//AEkNABogAUI+iKdBf3NBAnFBf2ohAkH/////B0GAgICAeCACQQFGGyAEQYGAf2pBIE8NABogAyAAIAFC////////P4NCgICAgICAwACEQe+AASAEaxAfIAIgAygCAGwLIQIgA0EQaiQAIAILjAICAn8EfiMAQRBrIgIkACABvSIFQoCAgICAgICAgH+DIQcCfiAFQv///////////wCDIgRCgICAgICAgHh8Qv/////////v/wBYBEAgBEI8hiEGIARCBIhCgICAgICAgIA8fAwBCyAEQoCAgICAgID4/wBaBEAgBUI8hiEGIAVCBIhCgICAgICAwP//AIQMAQsCfwJAIARQRQRAIARCgICAgBBaDQEgBadnQSBqDAILQgAMAgsgBEIgiKdnCyEDIAIgBEIAIANBMWoQEyACKQMAIQYgAkEIaikDAEKAgICAgIDAAIVBjPgAIANrrUIwhoQLIQQgACAGNwMAIAAgBCAHhDcDCCACQRBqJAALYwAgAEIAUiABQv///////////wCDIgFCgICAgICAwP//AFYgAUKAgICAgIDA//8AURsgAkIAUiADQv///////////wCDIgFCgICAgICAwP//AFYgAUKAgICAgIDA//8AURtyC7ABAAJAAkACQCABQYAITgRAIABEAAAAAAAA4H+iIQAgAUH/D0gNASABQYJwaiIBQf8HIAFB/wdIGyEBIABEAAAAAAAA4H+iIQAMAwsgAUGBeEoNAiAARAAAAAAAABAAoiEAIAFBg3BKDQEgAUH8D2oiAUGCeCABQYJ4ShshASAARAAAAAAAABAAoiEADAILIAFBgXhqIQEMAQsgAUH+B2ohAQsgACABQf8Haq1CNIa/oguzAgIBfwN9AkACQAJ/IAC8IgFBgICABEkgAUF/THJFBEAgAUH////7B00EQEMAAAAAIQBBgX8gAUGAgID8A0cNAhoLIAAPCyABQf////8HcUUNASABQX9MDQIgAEMAAABMlLwhAUHofgsgAUGN9qsCaiIBQRd2arIiBEOAIJo+lCABQf///wNxQfOJ1PkDar5DAACAv5IiACAAIABDAAAAP5SUIgKTvEGAYHG+IgNDAGDePpQgACADkyACkyAAIABDAAAAQJKVIgAgAiAAIACUIgAgACAAlCIAQ+7pkT6UQ6qqKj+SlCAAIABDJp54PpRDE87MPpKUkpKUkiIAQwBg3j6UIARD2ydUNZQgACADkkPZ6gS4lJKSkpIPC0MAAIC/IAAgAJSVDwsgACAAk0MAAAAAlQszAQF/IAAoAhQiAyABIAIgACgCECADayIDIAMgAksbIgMQChogACAAKAIUIANqNgIUIAILWgEBfyAAIAAtAEoiAUF/aiABcjoASiAAKAIAIgFBCHFFBEAgAEIANwIEIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhBBAA8LIAAgAUEgcjYCAEF/C0QCAX8BfiABQv///////z+DIQMCfyABQjCIp0H//wFxIgJB//8BRwRA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oAJqJAALiQEBAn8jAEGAAWsiAyQAIANB4PUFQfwAEAoiAyAANgIUIAMgADYCLCADQX4gAGsiBEH/////ByAEQf////8HSRsiBDYCMCADIAAgBGoiADYCECADIAA2AhwgAyABIAIQ6gEgBARAIANBFGooAgAiACAAIANBEGooAgBGa0EAOgAACyADQYABaiQAC9MGARN/AkAgACgCFEEBRgRAIABBtCZqIQMgAEHMAGohDQNAIApBAkYNAkEAIQ4gAyEBAkADQCAOIA0oAgBODQEgACAKQYjSAGxqIA5BhClsaiIGQbgoaiELIAZB5CdqKAIAQQJ0IgRBoMgAaigCACEJIARB4McAaigCACEHQQAhBSABIQJBACEEAkADQCAEIAsoAgBODQEgAigCACIIQX9HBEAgACAIIAcQESAFIAdqIQULIAJBBGohAiAEQQFqIQQMAAsACyAGQbAoaiEHAkADQCAEIAcoAgBODQEgAigCACIIQX9HBEAgACAIIAkQESAFIAlqIQULIAJBBGohAiAEQQFqIQQMAAsACyAGQbQCaiEEIAUgDGoCfyAGQegnaigCAEECRgRAIAAgBBB1DAELIAAgBBBwC2ogACAEEG9qIQwgAUGEKWohASAOQQFqIQ4MAAsACyADQYjSAGohAyAKQQFqIQoMAAsACyAAQcwAaiETIABBtCZqIg4hEQNAIA8gEygCAE4NASAAIA9BhClsaiINQfgqaiEDIA1BtAJqIRICfyANQegnaigCAEECRgRAQQAhAUEAIQRBACEKAkADQCABQQRGDQEgDSABQQJ0IgJqQfwqaigCACIFQQNsIQYgECAKQQxsaiEIIAMoAgAgAmooAgBBA20hC0EAIQICQANAIAIgC04NASAAIA4gCGoiCSgCACIHQQAgB0EAShsgBRARIAAgCUEEaigCACIHQQAgB0EAShsgBRARIAAgCUEIaigCACIJQQAgCUEAShsgBRARIAhBDGohCCACQQFqIQIgBCAGaiEEDAALAAsgCiACaiEKIAFBAWohAQwACwALIAAgEhB1DAELQQAhC0EAIQRBACEGAkADQCALQQRGDQEgDSALQQJ0IgJqQfwqaigCACEIIBEgBkECdGohBSADKAIAIAJqKAIAIQdBACECAkADQCACIAdODQEgACAFKAIAIglBACAJQQBKGyAIEBEgBUEE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BQtBBiECDAQLQQUhAgwDC0EEIQIMAgtBAyECDAELQQIhAgsgACACNgKArwIgACABQRNqQRRtNgLorgIgAEGIrwJqQQBBgPcCEAsaIABB/K4CakEANgIAIABB9K4CakIANwIAIABCADcC7K4CQQEhAgsgAgt1AQF/IAAgARCyAkEBRgRAIAAgAEHclwFqNgKEmAEgACAAQShqNgJQIAAgAEH8AGo2AoBMIAAgAEGwmAFqNgK04wEgACAAQazMAGo2ArCXASAAIABB4OMBajYC5K4CIABBiKYFakEAQYD3AhALGkEBIQILIAILsgcCHX8RfSABQQF0IRkgACABQQN0aiEYQYDvACETQQQhAgNAIAJBAnQiCiACQQF0IgRqIRUgBCACQQxsIgVqIRQgBCACQQN0IgZqIRYgAkEEdCEBIAJBAXUhGiAAIQIDQCACIAZqIgMgAioCACIfIAIgCmoiByoCACIgkiIjIAMqAgAiISACIAVqIgMqAgAiIpIiJJM4AgAgAiAjICSSOAIAIAMgHyAgkyIfICEgIpMiIJM4AgAgByAfICCSOAIAIAIgFGoiAyoCACEfIAIgFmoiByACIARqIggqAgAiICACIBVqIgkqAgAiI5IiISAHKgIAu0TNO39mnqD2P6K2IiKTOAIAIAggISAikjgCACADICAgI5MiICAfu0TNO39mnqD2P6K2Ih+TOAIAIAkgICAfkjgCACACIAFqIgIgGEkNAAtBBCELIApBBGohDCABQXxqIQ0gCkF8aiEOIAVBBGohDyAGQQRyIRAgBkF8aiERIAVBfGohEiATKgIEIR8gEyoCACEgQQEhFwJAA0AgFyAaTg0BICAgHyAfkiIhlCEjQwAAgD8gHyAhlJMhISAMIQIgDyEDIBAhByALIQggESEJIA0hBCASIQUgDiEGA0AgACAGaiIVKgIAISIgACAHaiIUIAAgCGoiFioCACIkICEgACACaiIbKgIAIiWUICMgACAJaiIcKgIAIiaUkiIqkiInICAgFCoCACIrICEgACADaiIUKgIAIiiUICMgACAEaiIdKgIAIimUkiIskiItlCAfIAAgBWoiHioCACIuICMgKJQgISAplJMiKJMiKZSSIi+TOAIAIBYgJyAvkjgCACAdICIgIyAllCAhICaUkyIlkyImIB8gLZQgICAplJMiJ5M4AgAgHCAmICeSOAIAIB4gIiAlkiIiIB8gLiAokiIllCAgICsgLJMiJpSSIieTOAIAIBUgIiAnkjgCACAUICQgKpMiIiAgICWUIB8gJpSTIiSTOAIAIBsgIiAkkjgCACACIAFqIQIgAyABaiEDIAcgAWohByAJIAFqIQkgBCABaiEEIAUgAWohBSAGIAFqIQYgACAIIAFqIghqIBhJDQALICAgE0EEaioCACIjlCEhICAgEyoCACIilCAfICOUkyEgIAxBBGohDCAPQQRqIQ8gEEEEaiEQIAtBBGohCyARQXxqIREgDUF8aiENIBJBfGohEiAOQXxqIQ4gF0EBaiEXICEgHyAilJIhHwwACwALIBNBCGohEyAKIgIgGUgNAAsLrgICAn8DfCAAQayeBWohAgJAA0AgAUGAIEYNASADRAAAAAAAAOA/oCIERBgtRFT7ISlAokQAAAAAAABQP6IQBSEFIAREGC1EVPshGUCiRAAAAAAAAFA/ohAFIQQgAigCACABaiAFRHsUrkfherQ/okThehSuR+HaPyAERAAAAAAAAOA/oqGgtjgCACABQQRqIQEgA0QAAAAAAADwP6AhAwwACwALRAAAAAAAAAAAIQNBgCAhASAAQayeBWohAgJAA0AgAUGAJEYNASACKAIAIAFqRAAAAAAAAPA/IANEAAAAAAAA4D+gRBgtRFT7IRlAokQAAAAAAABwP6IQBaFEAAAAAAAA4D+itjgCACABQQRqIQEgA0QAAAAAAADwP6AhAwwACwALIABBBTYCvJ4FC5YEAgV/BH0gAioCACACKgIEkiIJQwAAAABeQQFzRQRAAn9BgICAgHggASoCBCIKIAEqAgAiCyALIApdGyIKIAqSIAmTQwAAoEGUIAkgAEGkwgBqKAIAIABBqMIAaigCAGpBf2qylJUiCYtDAAAAT11FDQAaIAmoCyIGQQggBkEISBshBgsgAyAGOgAAIABB1MUAaiEIQQEhBgJAA0AgAiAFaiIEKgIAIARBBGoqAgCSIQkgBiAIKAIAQX9qTg0BQQAhByAJIARBCGoqAgCSIglDAAAAAF5BAXNFBEACf0GAgICAeCABIAVqIgRBCGoqAgAiCiAEQQRqKgIAIgsgBCoCACIMIAwgC10bIgsgCyAKXRtDAABAQJQgCZNDAACgQZQgCSAAIAVqIgRBpMIAaigCACAEQajCAGooAgBqIARBrMIAaigCAGpBf2qylJUiCYtDAAAAT11FDQAaIAmoCyIEQQggBEEISBshBwsgAyAGaiAHOgAAIAVBBGohBSAGQQFqIQYMAAsAC0EAIQQgCUMAAAAAXkEBc0UEQAJ/QYCAgIB4IAEgBWoiBEEEaioCACIKIAQqAgAiCyALIApdGyIKIAqSIAmTQwAAoEGUIAkgACAFaiIFQaTCAGooAgAgBUGowgBqKAIAakF/arKUlSIJi0MAAABPXUUNABogCagLIgVBCCAFQQhIGyEECyADIAZqIAQ6AAAL5wMCC38GfSADIAJBAnRqIQkgAEGsngVqIQogAEG8ngVqIQsCQANAIAVBA0YNASAFQQFqIgVBgICABmxBEHYhDCAKKAIAIQ0gCSgCACEOQQAhBkHM7gAhBwNAIAEgBmoiAEH4A2ogDUGAIGoiBCAHLQAAIgJBAnRqIggqAgAgDiAMIAJqQQJ0aiIDKgIAlCIPIARB/wAgAmtBAnRqKgIAIANBgARqKgIAlCIQkiIRIAhBgAJqKgIAIANBgAJqKgIAlCISIARBPyACa0ECdGoqAgAgA0GABmoqAgCUIhOSIhSTOAIAIABB8ANqIBEgFJI4AgAgAEH0A2ogDyAQkyIPIBIgE5MiEJI4AgAgAEH8A2ogDyAQkzgCACAAQfgHaiAIQQRqKgIAIANBBGoqAgCUIg8gBEH+ACACa0ECdGoqAgAgA0GEBGoqAgCUIhCSIhEgCEGEAmoqAgAgA0GEAmoqAgCUIhIgBEE+IAJrQQJ0aioCACADQYQGaioCAJQiE5IiFJM4AgAgAEHwB2ogESAUkjgCACAAQfQHaiAPIBCTIg8gEiATkyIQkjgCACAAQfwHaiAPIBCTOAIAIAdBfGohByAGQXBqIgZBgHxHDQALIAFBgAEgCygCABEAACABQYAIaiEBDAALAAsLjgQCBX8EfSACKgIAIAIqAgSSIglDAAAAAF5BAXNFBEACf0GAgICAeCABKgIEIgogASoCACILIAsgCl0bIgogCpIgCZNDAACgQZQgCSAAQbQxaigCACAAQbgxaigCAGpBf2qylJUiCYtDAAAAT11FDQAaIAmoCyIGQQggBkEISBshBgsgAyAGOgAAIABB5DRqIQhBASEGAkADQCACIAVqIgQqAgAgBEEEaioCAJIhCSAGIAgoAgBBf2pODQFBACEHIAkgBEEIaioCAJIiCUMAAAAAXkEBc0UEQAJ/QYCAgIB4IAEgBWoiBEEIaioCACIKIARBBGoqAgAiCyAEKgIAIgwgDCALXRsiCyALIApdG0MAAEBAlCAJk0MAAKBBlCAJIAAgBWoiBEG0MWooAgAgBEG4MWooAgBqIARBvDFqKAIAakF/arKUlSIJi0MAAABPXUUNABogCagLIgRBCCAEQQhIGyEHCyADIAZqIAc6AAAgBUEEaiEFIAZBAWohBgwACwALQQAhBCAJQwAAAABeQQFzRQRAAn9BgICAgHggASAFaiIEQQRqKgIAIgogBCoCACILIAsgCl0bIgogCpIgCZNDAACgQZQgCSAAIAVqIgVBtDFqKAIAIAVBuDFqKAIAakF/arKUlSIJi0MAAABPXUUNABogCagLIgVBCCAFQQhIGyEECyADIAZqIAQ6AAALuwECCH8DfSAAKALkECEKAkADQCAFIApODQEgASAHQQJ0aiEIIAAgBUECdCIJaiILQbQNaigCACEMQQAhBkMAAAAAIQ1DAAAAACEOAkADQCAGIAxODQEgCCoCACIPIA4gDiAPXRshDiAIQQRqIQggBkEBaiEGIA0gD5IhDQwACwALIAIgCWogDTgCACADIAlqIA44AgAgBCAJaiANIAtBgARqKgIAlDgCACAHIAZqIQcgBUEBaiEFDAALAAsLQgIBfwF9AkADQCACQYAQRg0BIAMgACACaioCACABIAJqKgIAlJIhAyACQQRqIQIMAAsACyADu0TRIopFZ7yjPaK2C54DAgV/Bn0gAyACQQJ0aigCACECIAAoAqyeBSEFQc/uACEIA0AgASAHaiIGQfgPaiAFIAgtAABBAnQiA2oqAgAgAiADaioCAJQiCSAFIANBgBByIgRqKgIAIAIgBGoqAgCUIgqSIgsgBSADQYAIciIEaioCACACIARqKgIAlCIMIAUgA0GAGHIiBGoqAgAgAiAEaioCAJQiDZIiDpM4AgAgBkHwD2ogCyAOkjgCACAGQfQPaiAJIAqTIgkgDCANkyIKkjgCACAGQfwPaiAJIAqTOAIAIAZB+B9qIAUgA0EEaiIEaioCACACIARqKgIAlCIJIAUgA0GEEGoiBGoqAgAgAiAEaioCAJQiCpIiCyAFIANBhAhqIgRqKgIAIAIgBGoqAgCUIgwgBSADQYQYaiIDaioCACACIANqKgIAlCINkiIOkzgCACAGQfAfaiALIA6SOAIAIAZB9B9qIAkgCpMiCSAMIA2TIgqSOAIAIAZB/B9qIAkgCpM4AgAgCEF/aiEIIAdBcGoiB0GAcEcNAAsgAUGABCAAKAK8ngURAAALcAIBfwF8RI+LikKdA0E4IQMCQANAIAIgAU4NASACQQFqIQIgAyAAKgIAuyIDRNNNYhBYOeQ/oiADoiADokRaZDvfT43XP6C2EBm7RP55n1ATRNM/oqAhAyAAQQRqIQAMAAsACyADRCNCkgyhnMc7pQuJBQETfyAEBEAgA0GsJWooAgAgBCgCAEYhEAtBJkEVIAMoArQlQQJGGyIRQQFqIQkgA0GsJWohEiADQeAlaiETIANB5CVqIRQgA0HYKGohFSAEQQRqIRYgA0G0JWohFyABIgUhByAAIQYCQAJAAkADQCAIIBFKDQECQAJAIBBFBEBBfyEPIBcoAgANAQsgAyAIQQJ0IgxqIg1BgCRqKAIAIQ8gEigCAAJ/IBMoAgAEQCAMQaAKaigCAAwBC0EACyAPaiAUKAIAQQFqdGsgAyANQaQnaigCAEECdGpByCVqKAIAQQN0ayEPIBBFDQAgBCAMakEIaigCACAPRw0AIAsEQCALIAIgACAHEEMLQQAhCyAKBEAgCiACIAAgBxBCC0EAIQoMAQsgAyAIQQJ0akGIJmooAgAiDCAOaiAVKAIAIg1KBEAgASANQQJ0IghqQQBBgBIgCGsQCxogDSAOa0EBaiIIQQAgCEEAShshDCAJIQgLIAAgBiAKIAtyIg0bIQAgByAFIA0bIQcCfwJAIARFDQAgFigCACINQQFIIAggDUhyDQAgBCAIQQJ0akEIaigCACINQQFIIA8gDUhyDQAgCwRAIAsgAiAAIAcQQyAFIQcgBiEACyAMIApqIQpBAAwBCyAKBEAgCiACIAAgBxBCIAUhByAGIQALQQAhCiAMIAtqCyELIAxBAEwNAwsgCCARTARAIAMgCEECdGpBiCZqKAIAIgwgDmohDiAGIAxBAnQiDGohBiAFIAxqIQULIAhBAWohCAwACwALIAsEQCALIAIgACAHEEMLIApFDQEgCiACIAAgBxBCDAELIAoEQCAKIAIgACAHEEILIAtFDQAgCyACIAAgBxBDCwv2AQIKfwF9IABB/CVqIQkgAEHgJWohCiAAQZwlaiEHAkADQCAFIAkoAgBODQEgACAFQQJ0IgRqIgJBgCRqIgsoAgAhAyACQYgmaigCACEIIAooAgAEQCAEQaAKaigCACADaiEDCyADQQFxBEBBACAIayEEIAEgBkECdGohAgJAA0AgBEF/Sg0BIAIgAioCAEPX/qU/lCIMOAIAIAwgByoCAF5BAXNFBEAgByAMOAIACyACQQRqIQIgBEEBaiEEDAALAAsgA0EBaiEDCyAIIAZqIQYgCyADQQF1NgIAIAVBAWohBQwACwALIABB4CVqQoCAgIAQNwIAC8wFAg9/A30gAUGAJGohBSABKALwJSEIQX8hBgJAAkADQCAGQQFqIgYgCE4NASAFKAIAIQkgBUEEaiEFIAlBD0wNAAwCCwALIAFBgCRqIQ9B2M4FKgIAIRMgAUHwJWohDCABQYQmaiEQIAFB/CVqIQ0gAUHkJWohDiABQZwlaiEJAkADQCADQQJLDQEgDyAMKAIAIANqIgVBAnRqIQYgECgCACEKQQAhCAJAA0AgBSAKTg0BIAYoAgAiByAIIAggB0gbIQggBkEMaiEGIAVBA2ohBQwACwALIA0oAgAhC0EAIQcCQANAIAUgC04NASAGKAIAIgogByAHIApIGyEHIAZBDGohBiAFQQNqIQUMAAsACyAIQQ9KIAdBB0pyRQRAIANBAWohAwwBCyABIANBAnRqQcglaiIFKAIAIgZBBkoNAiAFIAZBAWo2AgBBAiADayERIANBAWohBCAMKAIAIgUgA2ohCCAAIAVBAnRqQfSmAWooAgAhBQJAA0AgASAIQQJ0aiIGQYgmaigCACEHIAggDSgCAE4NAQJAIAZBgCRqIgYoAgBBBCAOKAIAdmsiCkEATgRAIAYgCjYCACAHQQNsIQsMAQsgBkEANgIAQQAgB2shBiAHIARsIAVqIQsgAiAFIAMgB2xqQQJ0aiEFIAogDigCAEEBanRBAnRB+M4FaioCACEUAkADQCAGQX9KDQEgBSAUIAUqAgCUIhI4AgAgEiAJKgIAXkEBc0UEQCAJIBI4AgALIAVBBGohBSAGQQFqIQYMAAsACyAHIBFsIQULIAhBA2ohCCALIAVqIQUMAAsAC0EAIAdrIQYgAiAFIAMgB2xqQQJ0aiEFAkADQCAGQX9KDQEgBSATIAUqAgCUIhI4AgAgEiAJKgIAXkEBc0UEQCAJIBI4AgALIAVBBGohBSAGQQFqIQYMAAsACyAEIQMMAAsAC0EADwtBAQv8AwIIfwN9IAEoAvwlIQggASgC5CUhByACIQUCQANAIAYgCE4NASAFKgIAIg4gDSANIA5dGyENIAVBBGohBSAGQQFqIQYMAAsACwJ9AkACQEECQQEgBEEBRhsgAEEsaiIJKAIAIgYgBkEDRhsiBkECRwRAIAZBAUcNASANQwAAgD9eQQFzDQIgDZEiDiAOXARAIA0QBCEOC0MAAIB/IA6LIA1DAACA/1sbDAMLIA0MAgtDAACAPyANQwAAgD9eDQEaIA27RGZmZmZmZu4/orYMAQsgDbtEZmZmZmZm7j+itgshD0P9RNc/Q9f+pT8gBxshDiABQfwlaiELIABB6JgFaiEMIAFBnCVqIQhBACEEQQAhBwJAA0AgBCALKAIATg0BIAEgBEECdCIGaiIFQYgmaigCACEKIAIgBmoqAgAgD11FBEACQCAMLQAAQQJxRQ0AIAAgBmpByJcFaiIGIAYoAgAiBkU2AgAgBkUNACAJKAIAQQJGDQMLIAVBgCRqIgYgBigCAEEBajYCAEEAIAprIQUgAyAHQQJ0aiEGAkADQCAFQX9KDQEgBiAOIAYqAgCUIg04AgAgDSAIKgIAXkEBc0UEQCAIIA04AgALIAZBBGohBiAFQQFqIQUMAAsACyAJKAIAQQJGDQILIAogB2ohByAEQQFqIQQMAAsACwviCAMBfwJ9A3wCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBCE0EQAJAAkACQAJAAkACQAJAIAAOCQABAgMEBQgGCQALQQEhAyACKAIMIgQgASgCDCIFSA0WQQAhACAEIAVHDRcgAioCACIGIAEqAgAiB10NFiAGIAeTi7shCCAGiyIGIAeLIgdeQQFzDREgBrtEAAAAoPfGsD6iIAhmQQFzDRcMEgsgAioCCCEGDAgLIAIqAgQgASoCBF0hAwwUC0EAIQAgAioCBCABKgIEXUEBcw0UIAIqAgggASoCCF0hAwwTC0EBIQMgAioCCCIGQwAAAABfQQFzRQ0GIAa7IQgMEQtBASEDIAIqAgAiBiABKgIAIgddDREgBiAHk4u7IQggBosiBiAHiyIHXkEBcw0IQQAhACAGu0QAAACg98awPqIgCGZBAXMNEgwJC0EBIQMgAigCDCABKAIMSA0QIAIqAgAgASoCAF0hAwwQCyABKAIMQQFIDQQgAigCECIAIAEoAhAiA0cNBSACKAIUIAEoAhRIIQMMDwtBASEDIAIqAgAiBiABKgIAIgddDQ4gBiAHk4u7IQggBosiBiAHiyIHXkEBcw0HQQAhACAGu0QAAACg98awPqIgCGZBAXMNDwwICyACIAQgAxC8ArYiBjgCCAsgBiABKgIIXSEDDAwLIAEqAggiB7siCUSamZmZmZnJP2QNCyAHQwAAAABdQQFzIAa7IghEmpmZmZmZyb+gIgogCWNBAXNyRQRAIAIqAgQgASoCBF0NDAsgB0MAAAAAXkEBcw0KIAogCWNBAXMNCiACKgIEIAEqAgQgASoCAJJdRQ0KDAsLQQAhACACKgIIIgZDAAAAAF1BAXMNCyAGQwAAIEGUIAIoAhSykiABKgIIQwAAIEGUIAEoAhSykl8hAwwKCyAAIANMIQMMCQtBACEAIAe7RAAAAKD3xrA+oiAIZkEBcw0JCyACKgIEIAEqAgRdIQMMBwtBACEAIAe7RAAAAKD3xrA+oiAIZkEBcw0HCyACKgIIIgYgASoCCCIHXQ0FIAYgB5OLuyEIIAaLIgYgB4siB15BAXMNAiAGu0QAAACg98awPqIgCGZBAXMNBgwDCyAHu0QAAACg98awPqIgCGZBAXMNBQsgAioCBCABKgIEXSEDDAMLIAe7RAAAAKD3xrA+oiAIZkEBcw0DCyACKgIEIAEqAgRfIQMMAQtBACEAIAZDAAAAAF5BAXMNAQJAIAEqAgi7IglEmpmZmZmZqb9kQQFzDQAgCESamZmZmZm5v6AgCWNBAXMNACACKgIEIAIqAgCSIAEqAgQgASoCAJJdDQELIAlEmpmZmZmZub9kQQFzIAhEMzMzMzMzw7+gIAljQQFzcg0BIAIqAgAiBiAGIAIqAgSSkiABKgIAIgYgBiABKgIEkpJdIQMLIAMgASgCDCIEQQBHcSEAIAQgA0VyDQAgAigCFCABKAIUSCEACyAAC7ABACAAIAEgAiADIAQQwAIgARCoAQRAQQAPCwJAAkACQAJAIABB0ABqKAIAIAEQSCICBEAgAEEgaigCAEECSA0EIABByJcFakEAQZwBEAsaIAEoAuQlRQ0BIAEoArQlQQJHDQQgAEEkaigCAEEBSA0EIAAgASADEL8CRQ0CQQEhAgwEC0EBDwsgASADEL4CDAELQQEhAiABEKgBDQELIABB0ABqKAIAIAEQSCECCyACRQvGAQMFfwF9AXwCQCAAKAIMQQFIDQAgAEEMaiEEIABBFGohBUEBIQIDQCACQeQARg0BIAEgAmoCf0GAgICAeCAFKAIAAn9BgICAgHggArJDAADIQpUgBCgCACIDspSOIgeLQwAAAE9dRQ0AGiAHqAsiBiADQX9qIAMgBkobQQJ0aigCALK7RAAAAAAAAHBAoiAAKAIAsrujIgiZRAAAAAAAAOBBY0UNABogCKoLIgNB/wEgA0H/AUgbOgAAIAJBAWohAgwACwALC8ACAQh/IAAgA0ECdGoiBkHAlwVqIgooAgAhAyABIAZBuJcFaiILKAIAIgw2AqwlIAIgASgC7CVrIQYgAUGsJWohBwJAA0AgA0EBRiAAIAQgAUEAEEQiAiAGRnINASAHQf8BQQAgBygCAAJ/IAIgBkoEQCAIQQJGIQJBASEIIANBAm0gA0EBIAUgAhsiAhsiAwwBCyAIQQFGIQJBAiEIQQAgA0ECbSADQQEgBSACGyICGyIDawtqIgUgBUEASCIFGyIJIAlB/wFKIgkbNgIAQQFBASACIAkbIAUbIQUMAAsACwJAA0AgAiAGTCABQawlaiIHKAIAIgNB/gFKcg0BIAFBrCVqIANBAWo2AgAgACAEIAFBABBEIQIMAAsACyAKQQRBAiAMIANrQQNKGzYCACALIAcoAgA2AgAgASACNgKgJQujBAEFfyMAQdABayIFJAAgBUIBNwMIAkAgAUECdCIGRQ0AIAVChICAgMAANwMQIAVBEGpBCHIhAUEEIQNBBCEEA0AgASADIgIgBGpBBGoiAzYCACABQQRqIQEgAiEEIAMgBkkNAAsCfyAAIAZqQXxqIgQgAEsEQEEBIQNBASEBA0ACfyADQQNxQQNGBEAgACABIAVBEGoQUCAFQQhqQQIQPCABQQJqDAELAkAgBUEQaiABQX9qIgJBAnRqKAIAIAQgAGtJBEAgACABIAVBEGoQUAwBCyAAIAMgBSgCDCABQQAgBUEQahA7CyABQQFGBEAgBUEIakEBEDpBAAwBCyAFQQhqIAIQOkEBCyEBIAUgBSgCCEEBciIDNgIIIABBBGoiACAESQ0ACyAFKAIMDAELQQEhA0EBIQFBAAshBCAAIAMgBCABQQAgBUEQahA7A0ACQAJAIANBAUYEQCABQQFGDQELIAFBAUwNASAFQQhqIgJBAhA6IAUgBSgCCEEHczYCCCACQQEQPCABQX9qIQMgACAFQRBqIgQgAUF+aiIBQQJ0aigCAGtBfGogBSgCCCAFKAIMIANBASAEEDsgAkEBEDogBSAFKAIIQQFyIgM2AgggAEF8aiIAIAMgBSgCDCABQQEgBBA7DAILIAUoAgxFDQILIABBfGohACAFQQhqIgIgAhB0IgMQPCADIAFqIQEgBSgCCCEDDAALAAsgBUHQAWokAAu4BAIQfwJ9IAAoAqieBSEFAkAgASgCtCVBAkYEQCABQXxqIQwgAEGEqAFqIQ0gAEGAqAFqIQ4gBUEUaiEPIAVBCGohECAAQaiXBWohEQNAIAZBA0YNAkEAIQNBBSEEAkADQCAEQQBIIANyDQEgECoCACAFIARBAnQiAWpBvAFqKgIAIA8qAgBDAAAAABAwIhIgESoCACITlCASIBNDzLyMK14bIRIgACABaiIBQaioAWooAgAiAyABQaSoAWooAgAiAWsgDSgCACAOKAIAIgJrIgggBmwgAkEDbCIJaiABIABBpKgBaigCACIKa2oiC2ohAiAMIAMgCWogCmtBAnRqIAcgCGxqIQECfwJAA0AgAiALTA0BQQEgASoCAIsgEl1BAXMNAhogAkF/aiECIAFBADYCACABQXxqIQEMAAsAC0EACyEDIARBf2ohBAwACwALIAdBBGohByAGQQFqIQYMAAsACyABQXxqIQhBBSEEIAVBFGohCSAFQQhqIQogAEH0lgVqIQYDQCADIARBAEhyDQEgACAEQQJ0IgFqIgJBiKgBaigCACELIAoqAgAgBSABakGkAWoqAgAgCSoCAEMAAAAAEDAiEiAGKgIAIhOUIBIgE0PMvIwrXhshEiAIIAJBjKgBaigCACICQQJ0aiEBAn8CQANAIAIgC0wNAUEBIAEqAgCLIBJdQQFzDQIaIAJBf2ohAiABQQA2AgAgAUF8aiEBDAALAAtBAAshAyAEQX9qIQQMAAsACwuUAgIEfwF8AkAgAEGslwNqKAIAIAFBACAEG2oiBEEKbAJ/IABBsJcDaigCACIGIABB6JgFaigCACIHQQFxIghFDQAaQYCAgIB4IAa3RM3MzMzMzOw/oiIJmUQAAAAAAADgQWNFDQAaIAmqC0EJbCIFSgRAIABB6JgFaiAHQYABcjYCACAEIAVBCm1rIgUgAWohAQwBCyAAQeiYBWogB0H/AHE2AgBBACEFIABBlAFqKAIAIAhyDQAgAbciCSAJRJqZmZmZmbm/oqAiCZlEAAAAAAAA4EFjRQRAQYCAgIB4IQEMAQsgCaohAQsgAiABNgIAIAMgBCAGQQZsQQptIgAgBCAASBsgBWsiAEEAIABBAEobNgIAC9cFAQ5/IwBBEGshCCAAKALgJSENAkADQCABQRBGDQEgCCABakEANgIAIAFBBGohAQwACwALQQJBACANGyEKAkAgACgCtCVBAkYEQCAAQYAkaiELIApBMGwhDkEBIQwDQCAHQQRGDQIgDiAHQQJ0IgFqQZAIaigCAEEDbSEJIAsgBEEMbGohBSAIIAFqIQNBACEGAkADQCAGIAlODQFBACEBAkADQCABQQxGDQEgBSABaigCACICIAMoAgBKBEAgAyACNgIACyABQQRqIQEMAAsACyAFQQxqIQUgBEEBaiEEIAZBAWohBgwACwALIAdBAWohBwwACwALIABBgCRqIQcgCkEwbCELAkADQCAEQQRGDQEgCyAEQQJ0IgFqQYAIaigCACEGIAcgCUECdGohAyAIIAFqIQJBACEBAkADQCABIAZODQEgAygCACIFIAIoAgBKBEAgAiAFNgIACyADQQRqIQMgAUEBaiEBDAALAAsgCSABaiEJIARBAWohBAwACwALCyAKQQR0QeDXAGohAkEAIQFBACEDAkADQCABQRBGDQEgAyAIIAFqKAIAIAIgAWooAgBKaiEDIAFBBGohAQwACwALAkAgAw0AIAAgCkEwbCAMQQR0akGACGo2AsQoIABByChqIQJBACEBAkADQCABQRBGDQEgAiABaiAIIAFqKAIAQQJ0QcDYAGooAgA2AgAgAUEEaiEBDAALAAsgAEHMKGooAgAhAiAAKALIKCEBAkAgDQRAIAFBA2xB9ANqIQUMAQsgAEHQKGooAgBBAnQgAUEFbCACakEEdGohBSAAQdQoaigCACECC0EAIQEgAEEANgLsJSAAIAUgAmo2ArAlIApBMGwgDEEEdGpBgAhqIQUgAEHIKGohBiAAQewlaiEEQQAhAgNAIAFBEEYNASAEIAUgAWooAgAgBiABaigCAGwgAmoiAjYCACABQQRqIQEMAAsACyADC84DAQh/AkAgACgCtCVBAkYEQEHA2QBBgNkAIAAoArglGyEHDAELQYDaACEHIAAoAuAlDQAgAEGsJGohBUELIQQCQANAIARBFEsNASAFIANqKAIAIANBzApqKAIASA0CIANBBGohAyAEQQFqIQQMAAsACyAEQRVHDQAgAEHgJWpBATYCACAAQawkaiEFQQAhAwNAIANBKEYNASAFIANqIgQgBCgCACADQcwKaigCAGs2AgAgA0EEaiEDDAALAAsgAEGAJGohBCAAKAKEJiEBQQAhA0EAIQUCQANAIAMgAU4NASAEKAIAIgYgBSAFIAZIGyEFIARBBGohBCADQQFqIQMMAAsACyAAKAL8JSECQQAhBgJAA0AgAyACTg0BIAQoAgAiASAGIAYgAUgbIQYgBEEEaiEEIANBAWohAwwACwALQaCNBiECIABBoI0GNgLsJUEAIQMgAEGwJWohCCAAQewlaiEAQQAhBAJAA0AgBEEQRg0BAkAgBSADQcDaAGooAgBODQAgBiADQYDbAGooAgBODQAgAiAHIANqKAIAIgFMDQAgCCAENgIAIAAgATYCACABIQILIANBBGohAyAEQQFqIQQMAAsACyACQaCNBkYL7AIBD38jAEEQayIPJAACQANAIAlB3ABGDQEgAyAJakGgjQY2AgAgCUEEaiEJDAALAAsgAEH8pgFqIQogAEG4ngVqIRICQANAIAdBD0sNASAAIAdBAWoiCEECdGpB9KYBaigCACIJIAFODQFBACEQIA9BADYCCCACIAIgCUECdGoiEyAPQQhqIBIoAgARAwAhFCAKIQsgAyEJIAQhDCAFIQ0gBiEOAkADQCAQQQdLDQEgCygCACIRIAFODQEgDyAPKAIINgIMIBMgAiARQQJ0aiAPQQxqIBIoAgARAwAhESAJKAIAIA8oAgwiFUoEQCAJIBU2AgAgDCAHNgIAIA0gFDYCACAOIBE2AgALIAtBBGohCyAJQQRqIQkgDEEEaiEMIA1BBGohDSAOQQRqIQ4gEEEBaiEQDAALAAsgCkEEaiEKIANBBGohAyAEQQRqIQQgBUEEaiEFIAZBBGohBiAIIQcMAAsACyAPQRBqJAALlQQBCX8gASAAQYQpbGpBiPYAaiEKAkADQCAGQQRGDQEgBkECdCEJIAZBAWoiBkECdEHAxwBqKAIAIQcgCiAJQcDHAGooAgAiAkECdGoiBSEEIAIhAwJAA0AgAyAHTg0BIARB+K1/aigCACAEKAIAIghHBEAgCEF/Sg0CCyAEQQRqIQQgA0EBaiEDDAALAAsgByADRw0AAkADQCACIAdODQEgBUF/NgIAIAVBBGohBSACQQFqIQIMAAsACyABIABBBHRqIAlqQaCkAWpBATYCAAwACwALIAEgAEGEKWxqQYj2AGohBUEAIQRBACEHQQAhAwJAA0AgBEEsRg0BIAUgBGooAgAiAkF/RwRAIAIgAyADIAJIGyEDIAdBAWohBwsgBEEEaiEEDAALAAsgASAAQYQpbGpBtPYAaiEGQQAhBEEAIQhBACEFAkADQCAEQShGDQEgBiAEaigCACICQX9HBEAgAiAFIAUgAkgbIQUgCEEBaiEICyAEQQRqIQQMAAsACyABIABBhClsaiIEQbj3AGohCiAEQfT3AGohBkEAIQRBACECAkADQCACQRBGDQECQCADIARBwNoAaigCAE4NACAFIARBgNsAaigCAE4NACAGKAIAIARBoMgAaigCACAIbCAEQeDHAGooAgAgB2xqIglMDQAgBiAJNgIAIAogAjYCAAsgBEEEaiEEIAJBAWohAgwACwALC5wBAQd/QYAEIQogACgCECIFQewlaiEJIAUoAqwlIgchBUGACCEEIAchBgJAA0AgBiAKSg0BAkAgACABIAIgCiAGakEBdSIFIAdrEKoBIggEQCAJKAIAIAhqIANODQELIAVBf2ohCiAFIQQMAQsgBSAEIARBgAhGGyEEIAVBAWohBgwACwALIAQgBUcEQCAAIAEgAiAEIAdrEKoBGgsLNgEDfwJAA0AgAUGcAUYNAUH/ASAAIAFqKAIAayIDIAIgAiADSBshAiABQQRqIQEMAAsACyACC/UDAQl/IwBB8ABrIggkAAJAIABFDQAgACgCoAIiCkUNACAKEEVFDQAgCkGgAWooAgBFDQAgCkGQngVqKAIAQQFIDQAgCkGkngVqKAIAIgNBoNgBSwRAIAMhBAwBCyABRQ0AIAogAUEAIAMQCyICEG4gCEEAQeQAEAshAwJAIApBnAFqKAIABEAgA0EBciEBQf8BIQQDQCAEQZzHAUYNAiABIARB5ABuOgAAIAFBAWohASAEQf8BaiEEDAALAAsgCkGEngVqIAMQwwILIAIgCkEcaiIHKAIAIgRBfmogBCAKQaQBaiIJKAIAGyIGaiIEQdgAQckAIApB7ABqKAIAIgEbOgAAIARBAWpB6QBB7gAgARs6AAAgBEECakHuAEHmACABGzoAACAEQQNqQecAQe8AIAEbOgAAIARBBGpBDxAmIARBCGogCkGcngVqKAIAECYgBEEMaiAKQaSeBWooAgAgCkGgngVqKAIAaiIFECYgBEEQaiADQeQAEAoaIAkoAgAEQCAHKAIAIAIQpQELQQAhAyACIQEgBkH0AGoiCSEEAkADQCAERQ0BIARBf2ohBCABLQAAIANB//8DcRBlIQMgAUEBaiEBDAALAAsgACAFIAIgCWogA0H//wNxEK4CIApBpJ4FaigCACEECyAIQfAAaiQAIAQL6QQCEH8BfSMAQTBrIgUkAEEEQQIgASgC5CUbIQ4gAUGAEmohAyABKALYKCEKIAFB4CVqIQ8gAUGsJWohECAFQShqIQsgBUEgaiEIAkADQCAKIAdJDQEgASAJQQJ0IgZqIgJBgCRqKAIAIQQCfyAPKAIABEAgBkGgCmooAgAMAQtBAAshEUEAIAogB2tBAWoiBiACQYgmaigCACIMIAwgBksbIg1BAnZrIQZBACABIAJBpCdqKAIAQQJ0akHIJWooAgBBA3RrIBEgBGogDmxrIBAoAgBqQf8BcUECdEGwyAVqKgIAIRIgAyEEIAAhAgJAA0AgBkUNASAFIBIgAioCAJS7OQMQIAUgEiACQQRqKgIAlLs5AxggCCASIAJBCGoqAgCUuzkDACALIBIgAkEMaioCAJS7OQMAIAJBEGohAiAGQQFqIQYgBUEQaiAEEBggBEEQaiEEDAALAAsgCUEBaiEJIAwgB2ohByAAIA1BAnRBcHEiAmohACADIAJqIQMgDUEDcSICRQ0AIAtCADcDACAIQgA3AwAgBUIANwMYIAVCADcDEAJAAkACQAJAIAJBA0cEQCACQQJGDQEgAkEBRw0DIAUgEiAAKgIAlLs5AxAgBUEQaiAFEBgMAgsgCCASIAAqAgiUuzkDAAsgBSASIAAqAgSUuzkDGCAFIBIgACoCAJS7OQMQIAVBEGogBRAYIAJBAkcEQCACQQNHDQMgAyAFKAIINgIICyADIAUoAgQ2AgQLIAMgBSgCADYCAAwBCyAFQRBqIAUQGAsgACACQQJ0IgJqIQAgAyACaiEDDAALAAsgBUEwaiQAC3gBBn9BgAEhAUHAACECQf8BIQQCQANAIANB/wFxQQdLDQEgAkEAIAJrIAFB/wFxQQJ0QbDIBWoqAgAgAJRDADgARl9BAXMiBRshBiAEIAEgBRshBCADQQFqIQMgAkH+AXFBAXYhAiAGIAFqIQEMAAsACyAEQf8BcQvmAQICfwV9QQAgAUECdmshAyAAIQICQANAIANFDQEgAkEMaioCACIEIAJBCGoqAgAiCCACQQRqKgIAIgcgAioCACIGIAUgBSAGXRsiBSAFIAddGyIFIAUgCF0bIgUgBSAEXRshBSACQRBqIQIgA0EBaiEDDAALAAsgACABQfz///8DcUECdGohAgJAAkAgAUEDcSIDQQFGDQACQCADQQJGDQAgA0EDRw0CIAUgAioCCCIEXUEBcw0AIAQhBQsgBSACKgIEIgRdQQFzDQAgBCEFCyAFIAIqAgAiBF1BAXMNACAEIQULIAUL6gQBDn9BB0ECQQEgACgC5CUbIgR0IQxBDyAEdCENIAAoAoAmIgRBEiAEQRJJGyEOIABBrCVqIQ8gAiEDQQchCQJAA0AgBkEDRg0BQQAhCkHoByEHIAMhBSAGIQQCQANAIAQgDk8NAUEAIAUoAgBrIgggByAHIAhKGyEHIAggCiAKIAhIGyEKIAVBDGohBSAEQQNqIQQMAAsAC0EAIQsCQANAIARBJksNAUEAIAUoAgBrIgggByAHIAhKGyEHIAggCyALIAhIGyELIAVBDGohBSAEQQNqIQQMAAsACyAHQQN2QQAgB0EAShshBCAAIAZBAnQiEGpByCVqIQcgCiANayIFIAsgDGsiCCAFIAhKGyIFQQFOBEAgBCAFQQdqQQN1IgUgBCAFShshBAsgByAENgIAAkAgBEEBTgRAIAEgEGooAgAiBSAPKAIAIgggBEEDdGtKBEAgByAIIAVrQQN1IgQ2AgALIARBCEgNAUEHIQQgB0EHNgIADAELQQAhBAsgBCAJIAkgBEobIQkgA0EEaiEDIAZBAWohBgwACwALIAAoAsglQQN0IQUgAEHQJWooAgBBA3QhCCAAQcwlaigCAEEDdCEKQQAhBAJAA0AgBEEmSw0BIAIgAigCACAFajYCACACQQRqIgcgBygCACAKajYCACACQQhqIgcgBygCACAIajYCACACQQxqIQIgBEEDaiEEDAALAAsgCUEBTgRAIABByCVqIQVBACEEAkADQCAEQQxGDQEgBSAEaiIHIAcoAgAgCWs2AgAgBEEEaiEEDAALAAsgAEGsJWoiBCAEKAIAIAlBA3RrNgIACwvwAQICfwF9AkAgBSAEQQN0aiIGKAIABEAgBioCBCEIDAELIAZBATYCACAGIAAgASADIAQQYiIIOAIECwJ/QQEgCCACXg0AGgJAIARB/wFHBEACQCAFIARBAWoiB0H/AXFBA3RqIgYoAgAEQCAGKgIEIQgMAQsgBkEBNgIAIAYgACABIAMgB0H/AXEQYiIIOAIEC0EBIAggAl4NAhogBEUNAQsCQCAFIARBf2oiBkH/AXFBA3RqIgQoAgAEQCAEKgIEIQgMAQsgBEEBNgIAIAQgACABIAMgBkH/AXEQYiIIOAIEC0EBIAggAl4NARoLQQALCzQAAn9BgICAgHggACABspUQ4AFDk5K5QJRDAAAAv5IiAItDAAAAT11FDQAaIACoC0HSAWoLsQIBCX8jAEGgAWsiBiQAIAAoAhAoAqwlIQsgARDNAiIEIQxBfyEIIAQhBQNAIAVBAm0iB0EBaiAKIAAgBiACIAEgBiAEIAcgCxBHEEYgA0oiCRsiCiAMIAdBf2ogCRsiDGohBSAIIAcgCRshCCAKIAxMDQALAkAgCEEATgRAIAcgCEYNASAAIAYgAiABIAYgBCAIIAsQRxBGGgwBC0H/ASEKIAtB/wFqIQhBfyEJA0AgCEECbSIHQQFqIAsgACAGIAIgASAGIAQgBCAHEEcQRiADSiIMGyILIAogB0F/aiAMGyIKaiEIIAkgByAMGyEJIAsgCkwNAAsgCUEATgRAIAcgCUYNASAAIAYgAiABIAYgBCAEIAkQRxBGGgwBCyAAIAYgAiADEMwCCyAGQaABaiQACzYBAn8CQANAIANBnAFGDQEgASADaiAAIANqKAIAIgQgAiAEIAJIGzYCACADQQRqIQMMAAsACwuMAgEFfyAAIAAoAhhBAWo2AhggACAAKAIAIAFqIgM2AgAgACAAKAIEQQFqIgE2AgQCQCABIAAoAghIDQAgACgCDCIBIAAoAhAiAkgEQCAAKAIUIAFBAnRqIAM2AgAgAEEEakEANgIAIABBDGoiASABKAIAQQFqIgE2AgAgAEEQaigCACECCyABIAJHDQBBASEBQQAhAyAAQRRqIQUgAEEQaiEGQQQhBAJAA0AgASACTg0BIAUoAgAiAiADaiACIARqKAIANgIAIARBCGohBCADQQRqIQMgAUECaiEBIAYoAgAhAgwACwALIABBCGoiASABKAIAQQF0NgIAIABBDGoiASABKAIAQQJtNgIACwsqACAAQYSeBWogACgCFEEGdCAAQYiWBWooAgBBAnRqQYDGAGooAgAQ1wILC4C7AXsAQYAIC2UGAAAABQAAAAUAAAAFAAAACQAAAAkAAAAJAAAACQAAAAYAAAAJAAAACQAAAAkAAAAGAAAABQAAAAcAAAADAAAACQAAAAkAAAAMAAAABgAAAAYAAAAJAAAADAAAAAYAAAALAAAACgBB8AgLBRIAAAASAEGACQsFDwAAABIAQZAJC4kBBwAAAAcAAAAHAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAGAAAADwAAAAwAAAAAAAAABgAAAAYAAAAGAAAAAwAAAAwAAAAJAAAACQAAAAYAAAAGAAAADAAAAAkAAAAGAAAACAAAAAgAAAAFAAAAAAAAAA8AAAAMAAAACQAAAAAAAAAGAAAAEgAAAAkAQcwKCyUBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAMAAAACAEGECwuNAQYAAAAMAAAAEgAAABgAAAAeAAAAJAAAACwAAAA2AAAAQgAAAFAAAABgAAAAdAAAAIwAAACoAAAAyAAAAO4AAAAcAQAAUAEAAIwBAADQAQAACgIAAEACAAAAAAAABAAAAAgAAAAMAAAAEgAAABgAAAAgAAAAKgAAADgAAABKAAAAZAAAAIQAAACuAAAAwABB0AwLjQEGAAAADAAAABIAAAAYAAAAHgAAACQAAAAsAAAANgAAAEIAAABQAAAAYAAAAHIAAACIAAAAogAAAMIAAADoAAAAFgEAAEwBAACKAQAA0AEAABwCAABAAgAAAAAAAAQAAAAIAAAADAAAABIAAAAaAAAAJAAAADAAAAA+AAAAUAAAAGgAAACIAAAAtAAAAMAAQZwOC40BBgAAAAwAAAASAAAAGAAAAB4AAAAkAAAALAAAADYAAABCAAAAUAAAAGAAAAB0AAAAjAAAAKgAAADIAAAA7gAAABwBAABQAQAAjAEAANABAAAKAgAAQAIAAAAAAAAEAAAACAAAAAwAAAASAAAAGgAAACQAAAAwAAAAPgAAAFAAAABoAAAAhgAAAK4AAADAAEHoDwuNAQQAAAAIAAAADAAAABAAAAAUAAAAGAAAAB4AAAAkAAAALAAAADQAAAA+AAAASgAAAFoAAABuAAAAhgAAAKIAAADEAAAA7gAAACABAABWAQAAogEAAEACAAAAAAAABAAAAAgAAAAMAAAAEAAAABYAAAAeAAAAKAAAADQAAABCAAAAVAAAAGoAAACIAAAAwABBtBELjQEEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAeAAAAJAAAACoAAAAyAAAAPAAAAEgAAABYAAAAagAAAIAAAACcAAAAvgAAAOYAAAAUAQAASgEAAIABAABAAgAAAAAAAAQAAAAIAAAADAAAABAAAAAWAAAAHAAAACYAAAAyAAAAQAAAAFAAAABkAAAAfgAAAMAAQYATC40BBAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHgAAACQAAAAsAAAANgAAAEIAAABSAAAAZgAAAH4AAACcAAAAwgAAAPAAAAAoAQAAbAEAAMABAAAmAgAAQAIAAAAAAAAEAAAACAAAAAwAAAAQAAAAFgAAAB4AAAAqAAAAOgAAAE4AAABoAAAAigAAALQAAADAAEHMFAuNAQYAAAAMAAAAEgAAABgAAAAeAAAAJAAAACwAAAA2AAAAQgAAAFAAAABgAAAAdAAAAIwAAACoAAAAyAAAAO4AAAAcAQAAUAEAAIwBAADQAQAACgIAAEACAAAAAAAABAAAAAgAAAAMAAAAEgAAABoAAAAkAAAAMAAAAD4AAABQAAAAaAAAAIYAAACuAAAAwABBmBYLjQEGAAAADAAAABIAAAAYAAAAHgAAACQAAAAsAAAANgAAAEIAAABQAAAAYAAAAHQAAACMAAAAqAAAAMgAAADuAAAAHAEAAFABAACMAQAA0AEAAAoCAABAAgAAAAAAAAQAAAAIAAAADAAAABIAAAAaAAAAJAAAADAAAAA+AAAAUAAAAGgAAACGAAAArgAAAMAAQeQXC40BDAAAABgAAAAkAAAAMAAAADwAAABIAAAAWAAAAGwAAACEAAAAoAAAAMAAAADoAAAAGAEAAFABAACQAQAA3AEAADYCAAA4AgAAOgIAADwCAAA+AgAAQAIAAAAAAAAIAAAAEAAAABgAAAAkAAAANAAAAEgAAABgAAAAfAAAAKAAAACiAAAApAAAAKYAAADAAEGtGQsEAQQDBQBBwBkLJQEFBQcFCAcJBQcHCQcJCQoEBQUGBQYGBwUGBgcGBwcIAQABAAEAQfAZC+UBAQACAAEAAwABAAEAAwACAAAAAQQHBAUHBgcIAAAAAAADAAIAAQABAAEAAQADAAIAAAACAwcEBAcGBwgAAAAAAAEAAgAGAAUAAwABAAQABAAHAAUABwABAAYAAQABAAAAAQQHCAQFCAkHCAkKCAgJCgcAAwAFAAEABgACAAMAAgAFAAQABAABAAMAAwACAAAAAwQGCAQEBgcFBgcIBwcICQEAAgAKABMAEAAKAAMAAwAHAAoABQADAAsABAANABEACAAEAAwACwASAA8ACwACAAcABgAJAA4AAwABAAYABAAFAAMAAgBB4BsLJAEEBwkJCgQGCAkJCgcHCQoKCwgJCgsLCwgJCgsLDAkKCwwMDABBkBwLRQMABAAGABIADAAFAAUAAQACABAACQADAAcAAwAFAA4ABwADABMAEQAPAA0ACgAEAA0ABQAIAAsABQABAAwABAAEAAEAAQBB4BwLJAIEBwkJCgQEBgoKCgcGCAoKCwkKCgsLDAkJCgsMDAoKCwsNDQBBkB0LRQcABQAJAA4ADwAHAAYABAAFAAUABgAHAAcABgAIAAgACAAFAA8ABgAJAAoABQABAAsABwAJAAYABAABAA4ABAAGAAIABgBB4B0LJAMEBgcJCgQFBgcICgUGBwgJCgcHCAkJCggICQkKCwkJCgoLCwBBkB4LoycBAAIACgAXACMAHgAMABEAAwADAAgADAASABUADAAHAAsACQAPABUAIAAoABMABgAOAA0AFgAiAC4AFwASAAcAFAATACEALwAbABYACQADAB8AFgApABoAFQAUAAUAAwAOAA0ACgALABAABgAFAAEACQAIAAcACAAEAAQAAgAAAAEEBwkKCgoLBAYICQoLCgoHCAkKCwwLCwgJCgsMDAsMCQoLDAwMDAwKCwwMDQ0MDQkKCwwMDA0NCgoLDAwNDQ0DAAQACgAYACIAIQAVAA8ABQADAAQACgAgABEACwAKAAsABwANABIAHgAfABQABQAZAAsAEwA7ABsAEgAMAAUAIwAhAB8AOgAeABAABwAFABwAGgAgABMAEQAPAAgADgAOAAwACQANAA4ACQAEAAEACwAEAAYABgAGAAMAAgAAAAIEBggJCgkKBAUGCAoKCQoGBwgJCgsKCggICQsKDAoLCQoKCwsMCwwJCgsMDA0MDQkJCQoLDAwMCQkKCwwMDAwJAAYAEAAhACkAJwAmABoABwAFAAYACQAXABAAGgALABEABwALAA4AFQAeAAoABwARAAoADwAMABIAHAAOAAUAIAANABYAEwASABAACQAFACgAEQAfAB0AEQANAAQAAgAbAAwACwAPAAoABwAEAAEAGwAMAAgADAAGAAMAAQAAAAQEBggJCgoKBAUGBwkJCgoGBgcICQoJCgcHCAgJCgoKCAgJCQoKCgsJCQoKCgsKCwkJCQoKCwsMCgoKCwsLCwwBAAUADgAVACIAMwAuAEcAKgA0AEQANABDACwAKwATAAMABAAMABMAHwAaACwAIQAfABgAIAAYAB8AIwAWAA4ADwANABcAJAA7ADEATQBBAB0AKAAeACgAGwAhACoAEAAWABQAJQA9ADgATwBJAEAAKwBMADgAJQAaAB8AGQAOACMAEAA8ADkAYQBLAHIAWwA2AEkANwApADAANQAXABgAOgAbADIAYABMAEYAXQBUAE0AOgBPAB0ASgAxACkAEQAvAC0ATgBKAHMAXgBaAE8ARQBTAEcAMgA7ACYAJAAPAEgAIgA4AF8AXABVAFsAWgBWAEkATQBBADMALAArACoAKwAUAB4ALAA3AE4ASABXAE4APQAuADYAJQAeABQAEAA1ABkAKQAlACwAOwA2AFEAQgBMADkANgAlABIAJwALACMAIQAfADkAKgBSAEgAUAAvADoANwAVABYAGgAmABYANQAZABcAJgBGADwAMwAkADcAGgAiABcAGwAOAAkABwAiACAAHAAnADEASwAeADQAMAAoADQAHAASABEACQAFAC0AFQAiAEAAOAAyADEALQAfABMADAAPAAoABwAGAAMAMAAXABQAJwAkACMANQAVABAAFwANAAoABgABAAQAAgAQAA8AEQAbABkAFAAdAAsAEQAMABAACAABAAEAAAABAAEFBwgJCgoLCgsMDA0NDg4EBggJCgoLCwsLDAwNDg4OBwgJCgsLDAwLDAwNDQ4PDwgJCgsLDAwMDA0NDQ0ODw8JCQsLDAwNDQwNDQ4ODw8QCgoLDAwMDQ0NDQ4NDw8QEAoLDAwNDQ0NDQ4ODg8PEBALCwwNDQ0ODg4ODw8PEBISCgoLDAwNDQ4ODg4PDxAREQsLDAwNDQ0PDg8PEBAQEhELDAwNDQ4ODw4PEA8QERITDAwMDQ4ODg4PDw8QEREREgwNDQ4ODw4PEBARERESEhINDQ4PDw8QEBAQEBESERISDg4ODw8PERAQExERERMSEg0ODxAQEBEQERESEhUUFRIBBQcJCgoLCwwMDA0NDQ4LBAYICQoLCwsMDAwNDg0OCwcICQoLCwwMDQwNDQ0ODgwJCQoLCwwMDA0NDg4ODw8NCgoLCwwMDQ0NDg4ODw8PDAoKCwsMDQ0ODQ4ODw8PEA0LCwsMDQ0NDQ4ODg4PDxANCwsMDA0NDQ4ODw8PDxERDQsMDA0NDQ4ODw8PDxAQEA0MDAwNDQ4ODw8PDxAPEA8ODA0MDQ4ODg4PEBAQEREQDQ0NDQ0ODg8QEBAQEBAPEA4NDg4ODg8PDw8REBAQEBIODw4ODg8PEBAQEhERERMRDg4PDQ4QEA8QEBESERMREA4LCwsMDA0NDQ4ODg4ODg4MBwAMABIANQAvAEwAfABsAFkAewBsAHcAawBRAHoAPwANAAUAEAAbAC4AJAA9ADMAKgBGADQAUwBBACkAOwAkABMAEQAPABgAKQAiADsAMAAoAEAAMgBOAD4AUAA4ACEAHQAcABkAKwAnAD8ANwBdAEwAOwBdAEgANgBLADIAHQA0ABYAKgAoAEMAOQBfAE8ASAA5AFkARQAxAEIALgAbAE0AJQAjAEIAOgA0AFsASgA+ADAATwA/AFoAPgAoACYAfQAgADwAOAAyAFwATgBBADcAVwBHADMASQAzAEYAHgBtADUAMQBeAFgASwBCAHoAWwBJADgAKgBAACwAFQAZAFoAKwApAE0ASQA/ADgAXABNAEIALwBDADAANQAkABQARwAiAEMAPAA6ADEAWABMAEMAagBHADYAJgAnABcADwBtADUAMwAvAFoAUgA6ADkAMABIADkAKQAXABsAPgAJAFYAKgAoACUARgBAADQAKwBGADcAKgAZAB0AEgALAAsAdgBEAB4ANwAyAC4ASgBBADEAJwAYABAAFgANAA4ABwBbACwAJwAmACIAPwA0AC0AHwA0ABwAEwAOAAgACQADAHsAPAA6ADUALwArACAAFgAlABgAEQAMAA8ACgACAAEARwAlACIAHgAcABQAEQAaABUAEAAKAAYACAAGAAIAAAADBQYICAkKCgoLCwwMDA0OBQUHCAkJCgoKCwsMDAwNDQYHBwgJCQoKCgsLDAwNDQ0HCAgJCQoKCwsLDAwMDQ0NCAgJCQoKCwsLCwwMDA0NDQkJCQoKCgsLCwsMDA0NDQ4KCQoKCgsLCwsMDAwNDQ4OCgoKCwsLCwwMDAwMDQ0NDgoKCgsLCwsMDAwMDQ0ODg4KCgsLCwsMDAwNDQ0NDg4OCwsLCwwMDAwMDQ0NDQ4PDgsLCwsMDAwMDQ0NDQ4ODg8MDAsMDAwNDQ0NDQ0ODg8PDAwMDAwNDQ0NDg4ODg4PDw0NDQ0NDQ0NDg4ODg8PDg8NDQ0NDQ0NDg4ODg4PDw8PAQAFAA4ALABKAD8AbgBdAKwAlQCKAPIA4QDDAHgBEQADAAQADAAUACMAPgA1AC8AUwBLAEQAdwDJAGsAzwAJAA8ADQAXACYAQwA6AGcAWgChAEgAfwB1AG4A0QDOABAALQAVACcARQBAAHIAYwBXAJ4AjAD8ANQAxwCDAW0BGgBLACQARABBAHMAZQCzAKQAmwAIAfYA4gCLAX4BagEJAEIAHgA7ADgAZgC5AK0ACQGOAP0A6ACQAYQBegG9ARAAbwA2ADQAZAC4ALIAoACFAAEB9ADkANkAgQFuAcsCCgBiADAAWwBYAKUAnQCUAAUB+ACXAY0BdAF8AXkDdAMIAFUAVABRAJ8AnACPAAQB+QCrAZEBiAF/AdcCyQLEAgcAmgBMAEkAjQCDAAAB9QCqAZYBigGAAd8CZwHGAmABCwCLAIEAQwB9APcA6QDlANsAiQHnAuEC0AJ1A3IDtwEEAPMAeAB2AHMA4wDfAIwB6gLmAuAC0QLIAsIC3wC0AQYAygDgAN4A2gDYAIUBggF9AWwBeAO7AcMCuAG1AcAGBADrAtMA0gDQAHIBewHeAtMCygLHBnMDbQNsA4MNYQMCAHkBcQFmALsA1gLSAmYBxwLFAmIDxgZnA4INZgOyAQAADAAKAAcACwAKABEACwAJAA0ADAAKAAcABQADAAEAAwABBQcJCgoLCwwMDA0NDQ4KBAYICQoLCwsMDAwNDg0OCgcICQoLCwwMDQwNDQ0ODgsJCQoLCwwMDA0NDg4ODw8MCgoLCwwMDQ0NDg4ODw8PCwoKCwsMDQ0ODQ4ODw8PEAwLCwsMDQ0NDQ4ODg4PDxAMCwsMDA0NDQ4ODw8PDxERDAsMDA0NDQ4ODw8PDxAQEAwMDAwNDQ4ODw8PDxAPEA8NDA0MDQ4ODg4PEBAQEREQDA0NDQ0ODg8QEBAQEBAPEA0NDg4ODg8PDw8REBAQEBINDw4ODg8PEBAQEhERERMRDQ4PDQ4QEA8QEBESERMREA0KCgoLCwwMDA0NDQ0NDQ0KDwANAC4AUACSAAYB+ACyAaoBnQKNAokCbQIFAggEWAAOAAwAFQAmAEcAggB6ANgA0QDGAEcBWQE/ASkBFwEqAC8AFgApAEoARACAAHgA3QDPAMIAtgBUATsBJwEdAhIAUQAnAEsARgCGAH0AdADcAMwAvgCyAEUBNwElAQ8BEACTAEgARQCHAH8AdgBwANIAyAC8AGABQwEyAR0BHAIOAAcBQgCBAH4AdwByANYAygDAALQAVQE9AS0BGQEGAQwA+QB7AHkAdQBxANcAzgDDALkAWwFKATQBIwEQAQgCCgCzAXMAbwBtANMAywDEALsAYQFMATkBKgEbARMCfQERAKsB1ADQAM0AyQDBALoAsQCpAEABLwEeAQwBAgJ5ARAATwHHAMUAvwC9ALUArgBNAUEBMQEhARMBCQJ7AXMBCwCcArgAtwCzAK8AWAFLAToBMAEiARUBEgJ/AXUBbgEKAIwCWgGrAKgApAA+ATUBKwEfARQBBwEBAncBcAFqAQYAiAJCATwBOAEzAS4BJAEcAQ0BBQEAAngBcgFsAWcBBABsAiwBKAEmASABGgERAQoBAwJ8AXYBcQFtAWkBZQECAAkEGAEWARIBCwEIAQMBfgF6AXQBbwFrAWgBZgFkAQAAKwAUABMAEQAPAA0ACwAJAAcABgAEAAcABQADAAEAAwAEBQcICQoKCwsMDAwMDA0KBQYHCAkKCgsLCwwMDAwMCgcHCAkJCgoLCwsLDAwMDQkICAkJCgoKCwsLCwwMDAwJCQkJCgoKCgsLCwwMDAwNCQoJCgoKCgsLCwsMDAwMDAkKCgoKCgsLCwsMDAwMDA0JCwoKCgsLCwsMDAwMDA0NCgsLCwsLCwsLCwwMDAwNDQoLCwsLCwsLDAwMDAwNDQ0KDAsLCwsMDAwMDAwNDQ0NCgwMCwsLDAwMDAwMDQ0NDQoMDAwMDAwMDAwMDQ0NDQ0KDAwMDAwMDAwNDQ0NDQ0NCg0MDAwMDAwNDQ0NDQ0NDQoJCQkJCQkJCQkJCQoKCgoGAQAKAAgAFAAMABQAEAAgAA4ADAAYAAAAHAAQABgAEAAPABwAGgAwABYAKAAkAEAADgAYABQAIAAMABAACAAAAAQAAQAFAAUABwAHAAgACQAJAAoACgAKAAoACwALAAsACwAMAAwADAAMAAwADAANAAwADQAMAA0ADQAOAAoACgAFAAQABgAGAAcACAAIAAkACQAKAAoACwAKAAsACwALAAsADAALAAwADAAMAAwADQAMAA4ADAANAAwADgAKAAoABwAHAAcACAAIAAkACQAKAAkACwAKAAsACgAMAAsADAALAA0ACwAMAAsADQAMAA0ADAANAAwADgANAA4ACQALAAgACQAIAAkACQAKAAkACwAKAAsACgAMAAoADAALAAwACwANAAsADQALAA4ADAAOAAwADgAMAA8ADAAPAAkADAAJAAoACQAKAAkACwAKAAsACgAMAAoADAAKAA0ACwANAAsADQALAA4ADAAOAAwADgAMAA8ADAAPAA0ADwAJAAsACgAKAAkACgAKAAsACgALAAoADAAKAA0ACwANAAsADgALAA0ACwAOAAwADgAMAA8ADAAPAAwADwAMABAACQAMAAoACwAKAAsACgALAAoADAAKAA0ACwANAAsADQALAA0ACwAOAAwADgAMAA4ADAAOAAwADwAMAA8ADQAQAAkADAALAAsACgALAAoADAAKAAwACwANAAsADQALAA0ACwAOAAwADgAMAA8ADAAPAAwADwAMAA8ADQARAA0AEQAKAAwACwALAAsADAALAAwACwANAAsADQALAA0ACwAOAAsADgALAA8ADAAPAAwADwAMAA8ADAAQAA0AEAANABAACgAMAAsADAALAAwACwAMAAsADQALAA0ACwAOAAsADgAMAA8ADAAPAAwADwAMAA8ADAAQAA0ADwANABAADQAPAAoADQAMAAwACwANAAsADAALAA0ACwAOAAwADgAMAA4ADAAOAAwADwAMABAADAAQAA0AEAANABEADQARAA0AEAAKAAwADAANAAwADQALAA0ACwANAAsADgAMAA4ADAAPAAwAEAAMABAADAAQAAwAEAANABAADQAQAA0ADwANABAACgANAAwADQAMAA4ADAAOAAwADgAMAA4ADAAPAAwADwAMAA8ADAAPAAwAEQANABAADQAQAA0AEAANABAADQASAAoADQAMAA8ADAAOAAwADgAMAA4ADAAPAAwADwAMABAADAAQAA0AEAANABIADQARAA0AEQANABEADQATAA0AEQAKAA0ADQAOAAwADwAMAA0ADAAOAAwAEAAMABAADAAPAA0AEAANABAADQARAA0AEgANABEADQATAA0AEQANABAACgANAAkACgAJAAoACQAKAAkACwAJAAsACQAMAAkADAAJAAwACQANAAkADQAJAA0ACgANAAoADQAKAA0ACgANAAYACgACAAEAAwAEAAcABwAEAAQABAAFAAcABwAGAAYABwAHAAgACABBwMUAC5ECAwABAAQABAAGAAcACAAIAAQABAAEAAUABgAIAAcACQAFAAcABgAIAAcACQAIAAoABwAIAAcACAAIAAkACQAKAAAAAAAIAAAAEAAAABgAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAAP////8AAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAAAAAAEAAEABAAD/////AAAAAAgAAAAQAAAAGAAAACAAAAAoAAAAMAAAADgAAABAAAAA/////////////////////////////////////wAAAAAGAAAACwAAABAAAAAVAEHwxwALlwEDAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAABAAAAAQAAAAAAAAAAQAAAAIAAAADAAAAAAAAAAEAAAACAAAAAwAAAAEAAAACAAAAAwAAAAEAAAACAAAAAwAAAAIAAAADAAAARXJyb3I6IGNhbid0IGFsbG9jYXRlIFZickZyYW1lcyBidWZmZXIKAEGUyQALwQ7BwAAAgcEAAEABAAABwwAAwAMAAIACAABBwgAAAcYAAMAGAACABwAAQccAAAAFAADBxQAAgcQAAEAEAAABzAAAwAwAAIANAABBzQAAAA8AAMHPAACBzgAAQA4AAAAKAADBygAAgcsAAEALAAAByQAAwAkAAIAIAABByAAAAdgAAMAYAACAGQAAQdkAAAAbAADB2wAAgdoAAEAaAAAAHgAAwd4AAIHfAABAHwAAAd0AAMAdAACAHAAAQdwAAAAUAADB1AAAgdUAAEAVAAAB1wAAwBcAAIAWAABB1gAAAdIAAMASAACAEwAAQdMAAAARAADB0QAAgdAAAEAQAAAB8AAA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cgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFt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\"); }, function (A, I, g) {\r\n \"use strict\";\r\n (function (I) { A.exports = function (A) { for (var g = \"undefined\" != typeof window && \"function\" == typeof window.atob ? window.atob(A) : I.from(A, \"base64\").toString(\"binary\"), B = new Uint8Array(g.length), Q = 0; Q < g.length; ++Q)\r\n B[Q] = g.charCodeAt(Q); return B.buffer; }; }).call(this, g(17).Buffer);\r\n }, function (A, I, g) {\r\n \"use strict\";\r\n (function (A) {\r\n /*!\r\n * The buffer module from node.js, for the browser.\r\n *\r\n * @author Feross Aboukhadijeh \r\n * @license MIT\r\n */\r\n var B = g(19), Q = g(20), C = g(21);\r\n function E() { return o.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823; }\r\n function i(A, I) { if (E() < I)\r\n throw new RangeError(\"Invalid typed array length\"); return o.TYPED_ARRAY_SUPPORT ? (A = new Uint8Array(I)).__proto__ = o.prototype : (null === A && (A = new o(I)), A.length = I), A; }\r\n function o(A, I, g) { if (!(o.TYPED_ARRAY_SUPPORT || this instanceof o))\r\n return new o(A, I, g); if (\"number\" == typeof A) {\r\n if (\"string\" == typeof I)\r\n throw new Error(\"If encoding is specified then the first argument must be a string\");\r\n return t(this, A);\r\n } return D(this, A, I, g); }\r\n function D(A, I, g, B) { if (\"number\" == typeof I)\r\n throw new TypeError('\"value\" argument must not be a number'); return \"undefined\" != typeof ArrayBuffer && I instanceof ArrayBuffer ? function (A, I, g, B) { if (I.byteLength, g < 0 || I.byteLength < g)\r\n throw new RangeError(\"'offset' is out of bounds\"); if (I.byteLength < g + (B || 0))\r\n throw new RangeError(\"'length' is out of bounds\"); I = void 0 === g && void 0 === B ? new Uint8Array(I) : void 0 === B ? new Uint8Array(I, g) : new Uint8Array(I, g, B); o.TYPED_ARRAY_SUPPORT ? (A = I).__proto__ = o.prototype : A = w(A, I); return A; }(A, I, g, B) : \"string\" == typeof I ? function (A, I, g) { \"string\" == typeof g && \"\" !== g || (g = \"utf8\"); if (!o.isEncoding(g))\r\n throw new TypeError('\"encoding\" must be a valid string encoding'); var B = 0 | s(I, g), Q = (A = i(A, B)).write(I, g); Q !== B && (A = A.slice(0, Q)); return A; }(A, I, g) : function (A, I) { if (o.isBuffer(I)) {\r\n var g = 0 | h(I.length);\r\n return 0 === (A = i(A, g)).length ? A : (I.copy(A, 0, 0, g), A);\r\n } if (I) {\r\n if (\"undefined\" != typeof ArrayBuffer && I.buffer instanceof ArrayBuffer || \"length\" in I)\r\n return \"number\" != typeof I.length || (B = I.length) != B ? i(A, 0) : w(A, I);\r\n if (\"Buffer\" === I.type && C(I.data))\r\n return w(A, I.data);\r\n } var B; throw new TypeError(\"First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.\"); }(A, I); }\r\n function a(A) { if (\"number\" != typeof A)\r\n throw new TypeError('\"size\" argument must be a number'); if (A < 0)\r\n throw new RangeError('\"size\" argument must not be negative'); }\r\n function t(A, I) { if (a(I), A = i(A, I < 0 ? 0 : 0 | h(I)), !o.TYPED_ARRAY_SUPPORT)\r\n for (var g = 0; g < I; ++g)\r\n A[g] = 0; return A; }\r\n function w(A, I) { var g = I.length < 0 ? 0 : 0 | h(I.length); A = i(A, g); for (var B = 0; B < g; B += 1)\r\n A[B] = 255 & I[B]; return A; }\r\n function h(A) { if (A >= E())\r\n throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\" + E().toString(16) + \" bytes\"); return 0 | A; }\r\n function s(A, I) { if (o.isBuffer(A))\r\n return A.length; if (\"undefined\" != typeof ArrayBuffer && \"function\" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(A) || A instanceof ArrayBuffer))\r\n return A.byteLength; \"string\" != typeof A && (A = \"\" + A); var g = A.length; if (0 === g)\r\n return 0; for (var B = !1;;)\r\n switch (I) {\r\n case \"ascii\":\r\n case \"latin1\":\r\n case \"binary\": return g;\r\n case \"utf8\":\r\n case \"utf-8\":\r\n case void 0: return b(A).length;\r\n case \"ucs2\":\r\n case \"ucs-2\":\r\n case \"utf16le\":\r\n case \"utf-16le\": return 2 * g;\r\n case \"hex\": return g >>> 1;\r\n case \"base64\": return O(A).length;\r\n default:\r\n if (B)\r\n return b(A).length;\r\n I = (\"\" + I).toLowerCase(), B = !0;\r\n } }\r\n function e(A, I, g) { var B = !1; if ((void 0 === I || I < 0) && (I = 0), I > this.length)\r\n return \"\"; if ((void 0 === g || g > this.length) && (g = this.length), g <= 0)\r\n return \"\"; if ((g >>>= 0) <= (I >>>= 0))\r\n return \"\"; for (A || (A = \"utf8\");;)\r\n switch (A) {\r\n case \"hex\": return K(this, I, g);\r\n case \"utf8\":\r\n case \"utf-8\": return c(this, I, g);\r\n case \"ascii\": return N(this, I, g);\r\n case \"latin1\":\r\n case \"binary\": return q(this, I, g);\r\n case \"base64\": return U(this, I, g);\r\n case \"ucs2\":\r\n case \"ucs-2\":\r\n case \"utf16le\":\r\n case \"utf-16le\": return L(this, I, g);\r\n default:\r\n if (B)\r\n throw new TypeError(\"Unknown encoding: \" + A);\r\n A = (A + \"\").toLowerCase(), B = !0;\r\n } }\r\n function G(A, I, g) { var B = A[I]; A[I] = A[g], A[g] = B; }\r\n function F(A, I, g, B, Q) { if (0 === A.length)\r\n return -1; if (\"string\" == typeof g ? (B = g, g = 0) : g > 2147483647 ? g = 2147483647 : g < -2147483648 && (g = -2147483648), g = +g, isNaN(g) && (g = Q ? 0 : A.length - 1), g < 0 && (g = A.length + g), g >= A.length) {\r\n if (Q)\r\n return -1;\r\n g = A.length - 1;\r\n }\r\n else if (g < 0) {\r\n if (!Q)\r\n return -1;\r\n g = 0;\r\n } if (\"string\" == typeof I && (I = o.from(I, B)), o.isBuffer(I))\r\n return 0 === I.length ? -1 : r(A, I, g, B, Q); if (\"number\" == typeof I)\r\n return I &= 255, o.TYPED_ARRAY_SUPPORT && \"function\" == typeof Uint8Array.prototype.indexOf ? Q ? Uint8Array.prototype.indexOf.call(A, I, g) : Uint8Array.prototype.lastIndexOf.call(A, I, g) : r(A, [I], g, B, Q); throw new TypeError(\"val must be string, number or Buffer\"); }\r\n function r(A, I, g, B, Q) { var C, E = 1, i = A.length, o = I.length; if (void 0 !== B && (\"ucs2\" === (B = String(B).toLowerCase()) || \"ucs-2\" === B || \"utf16le\" === B || \"utf-16le\" === B)) {\r\n if (A.length < 2 || I.length < 2)\r\n return -1;\r\n E = 2, i /= 2, o /= 2, g /= 2;\r\n } function D(A, I) { return 1 === E ? A[I] : A.readUInt16BE(I * E); } if (Q) {\r\n var a = -1;\r\n for (C = g; C < i; C++)\r\n if (D(A, C) === D(I, -1 === a ? 0 : C - a)) {\r\n if (-1 === a && (a = C), C - a + 1 === o)\r\n return a * E;\r\n }\r\n else\r\n -1 !== a && (C -= C - a), a = -1;\r\n }\r\n else\r\n for (g + o > i && (g = i - o), C = g; C >= 0; C--) {\r\n for (var t = !0, w = 0; w < o; w++)\r\n if (D(A, C + w) !== D(I, w)) {\r\n t = !1;\r\n break;\r\n }\r\n if (t)\r\n return C;\r\n } return -1; }\r\n function n(A, I, g, B) { g = Number(g) || 0; var Q = A.length - g; B ? (B = Number(B)) > Q && (B = Q) : B = Q; var C = I.length; if (C % 2 != 0)\r\n throw new TypeError(\"Invalid hex string\"); B > C / 2 && (B = C / 2); for (var E = 0; E < B; ++E) {\r\n var i = parseInt(I.substr(2 * E, 2), 16);\r\n if (isNaN(i))\r\n return E;\r\n A[g + E] = i;\r\n } return E; }\r\n function k(A, I, g, B) { return W(b(I, A.length - g), A, g, B); }\r\n function y(A, I, g, B) { return W(function (A) { for (var I = [], g = 0; g < A.length; ++g)\r\n I.push(255 & A.charCodeAt(g)); return I; }(I), A, g, B); }\r\n function R(A, I, g, B) { return y(A, I, g, B); }\r\n function M(A, I, g, B) { return W(O(I), A, g, B); }\r\n function J(A, I, g, B) { return W(function (A, I) { for (var g, B, Q, C = [], E = 0; E < A.length && !((I -= 2) < 0); ++E)\r\n g = A.charCodeAt(E), B = g >> 8, Q = g % 256, C.push(Q), C.push(B); return C; }(I, A.length - g), A, g, B); }\r\n function U(A, I, g) { return 0 === I && g === A.length ? B.fromByteArray(A) : B.fromByteArray(A.slice(I, g)); }\r\n function c(A, I, g) { g = Math.min(A.length, g); for (var B = [], Q = I; Q < g;) {\r\n var C, E, i, o, D = A[Q], a = null, t = D > 239 ? 4 : D > 223 ? 3 : D > 191 ? 2 : 1;\r\n if (Q + t <= g)\r\n switch (t) {\r\n case 1:\r\n D < 128 && (a = D);\r\n break;\r\n case 2:\r\n 128 == (192 & (C = A[Q + 1])) && (o = (31 & D) << 6 | 63 & C) > 127 && (a = o);\r\n break;\r\n case 3:\r\n C = A[Q + 1], E = A[Q + 2], 128 == (192 & C) && 128 == (192 & E) && (o = (15 & D) << 12 | (63 & C) << 6 | 63 & E) > 2047 && (o < 55296 || o > 57343) && (a = o);\r\n break;\r\n case 4: C = A[Q + 1], E = A[Q + 2], i = A[Q + 3], 128 == (192 & C) && 128 == (192 & E) && 128 == (192 & i) && (o = (15 & D) << 18 | (63 & C) << 12 | (63 & E) << 6 | 63 & i) > 65535 && o < 1114112 && (a = o);\r\n }\r\n null === a ? (a = 65533, t = 1) : a > 65535 && (a -= 65536, B.push(a >>> 10 & 1023 | 55296), a = 56320 | 1023 & a), B.push(a), Q += t;\r\n } return function (A) { var I = A.length; if (I <= S)\r\n return String.fromCharCode.apply(String, A); var g = \"\", B = 0; for (; B < I;)\r\n g += String.fromCharCode.apply(String, A.slice(B, B += S)); return g; }(B); }\r\n I.Buffer = o, I.SlowBuffer = function (A) { +A != A && (A = 0); return o.alloc(+A); }, I.INSPECT_MAX_BYTES = 50, o.TYPED_ARRAY_SUPPORT = void 0 !== A.TYPED_ARRAY_SUPPORT ? A.TYPED_ARRAY_SUPPORT : function () { try {\r\n var A = new Uint8Array(1);\r\n return A.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42; } }, 42 === A.foo() && \"function\" == typeof A.subarray && 0 === A.subarray(1, 1).byteLength;\r\n }\r\n catch (A) {\r\n return !1;\r\n } }(), I.kMaxLength = E(), o.poolSize = 8192, o._augment = function (A) { return A.__proto__ = o.prototype, A; }, o.from = function (A, I, g) { return D(null, A, I, g); }, o.TYPED_ARRAY_SUPPORT && (o.prototype.__proto__ = Uint8Array.prototype, o.__proto__ = Uint8Array, \"undefined\" != typeof Symbol && Symbol.species && o[Symbol.species] === o && Object.defineProperty(o, Symbol.species, { value: null, configurable: !0 })), o.alloc = function (A, I, g) { return function (A, I, g, B) { return a(I), I <= 0 ? i(A, I) : void 0 !== g ? \"string\" == typeof B ? i(A, I).fill(g, B) : i(A, I).fill(g) : i(A, I); }(null, A, I, g); }, o.allocUnsafe = function (A) { return t(null, A); }, o.allocUnsafeSlow = function (A) { return t(null, A); }, o.isBuffer = function (A) { return !(null == A || !A._isBuffer); }, o.compare = function (A, I) { if (!o.isBuffer(A) || !o.isBuffer(I))\r\n throw new TypeError(\"Arguments must be Buffers\"); if (A === I)\r\n return 0; for (var g = A.length, B = I.length, Q = 0, C = Math.min(g, B); Q < C; ++Q)\r\n if (A[Q] !== I[Q]) {\r\n g = A[Q], B = I[Q];\r\n break;\r\n } return g < B ? -1 : B < g ? 1 : 0; }, o.isEncoding = function (A) { switch (String(A).toLowerCase()) {\r\n case \"hex\":\r\n case \"utf8\":\r\n case \"utf-8\":\r\n case \"ascii\":\r\n case \"latin1\":\r\n case \"binary\":\r\n case \"base64\":\r\n case \"ucs2\":\r\n case \"ucs-2\":\r\n case \"utf16le\":\r\n case \"utf-16le\": return !0;\r\n default: return !1;\r\n } }, o.concat = function (A, I) { if (!C(A))\r\n throw new TypeError('\"list\" argument must be an Array of Buffers'); if (0 === A.length)\r\n return o.alloc(0); var g; if (void 0 === I)\r\n for (I = 0, g = 0; g < A.length; ++g)\r\n I += A[g].length; var B = o.allocUnsafe(I), Q = 0; for (g = 0; g < A.length; ++g) {\r\n var E = A[g];\r\n if (!o.isBuffer(E))\r\n throw new TypeError('\"list\" argument must be an Array of Buffers');\r\n E.copy(B, Q), Q += E.length;\r\n } return B; }, o.byteLength = s, o.prototype._isBuffer = !0, o.prototype.swap16 = function () { var A = this.length; if (A % 2 != 0)\r\n throw new RangeError(\"Buffer size must be a multiple of 16-bits\"); for (var I = 0; I < A; I += 2)\r\n G(this, I, I + 1); return this; }, o.prototype.swap32 = function () { var A = this.length; if (A % 4 != 0)\r\n throw new RangeError(\"Buffer size must be a multiple of 32-bits\"); for (var I = 0; I < A; I += 4)\r\n G(this, I, I + 3), G(this, I + 1, I + 2); return this; }, o.prototype.swap64 = function () { var A = this.length; if (A % 8 != 0)\r\n throw new RangeError(\"Buffer size must be a multiple of 64-bits\"); for (var I = 0; I < A; I += 8)\r\n G(this, I, I + 7), G(this, I + 1, I + 6), G(this, I + 2, I + 5), G(this, I + 3, I + 4); return this; }, o.prototype.toString = function () { var A = 0 | this.length; return 0 === A ? \"\" : 0 === arguments.length ? c(this, 0, A) : e.apply(this, arguments); }, o.prototype.equals = function (A) { if (!o.isBuffer(A))\r\n throw new TypeError(\"Argument must be a Buffer\"); return this === A || 0 === o.compare(this, A); }, o.prototype.inspect = function () { var A = \"\", g = I.INSPECT_MAX_BYTES; return this.length > 0 && (A = this.toString(\"hex\", 0, g).match(/.{2}/g).join(\" \"), this.length > g && (A += \" ... \")), \"\"; }, o.prototype.compare = function (A, I, g, B, Q) { if (!o.isBuffer(A))\r\n throw new TypeError(\"Argument must be a Buffer\"); if (void 0 === I && (I = 0), void 0 === g && (g = A ? A.length : 0), void 0 === B && (B = 0), void 0 === Q && (Q = this.length), I < 0 || g > A.length || B < 0 || Q > this.length)\r\n throw new RangeError(\"out of range index\"); if (B >= Q && I >= g)\r\n return 0; if (B >= Q)\r\n return -1; if (I >= g)\r\n return 1; if (this === A)\r\n return 0; for (var C = (Q >>>= 0) - (B >>>= 0), E = (g >>>= 0) - (I >>>= 0), i = Math.min(C, E), D = this.slice(B, Q), a = A.slice(I, g), t = 0; t < i; ++t)\r\n if (D[t] !== a[t]) {\r\n C = D[t], E = a[t];\r\n break;\r\n } return C < E ? -1 : E < C ? 1 : 0; }, o.prototype.includes = function (A, I, g) { return -1 !== this.indexOf(A, I, g); }, o.prototype.indexOf = function (A, I, g) { return F(this, A, I, g, !0); }, o.prototype.lastIndexOf = function (A, I, g) { return F(this, A, I, g, !1); }, o.prototype.write = function (A, I, g, B) { if (void 0 === I)\r\n B = \"utf8\", g = this.length, I = 0;\r\n else if (void 0 === g && \"string\" == typeof I)\r\n B = I, g = this.length, I = 0;\r\n else {\r\n if (!isFinite(I))\r\n throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");\r\n I |= 0, isFinite(g) ? (g |= 0, void 0 === B && (B = \"utf8\")) : (B = g, g = void 0);\r\n } var Q = this.length - I; if ((void 0 === g || g > Q) && (g = Q), A.length > 0 && (g < 0 || I < 0) || I > this.length)\r\n throw new RangeError(\"Attempt to write outside buffer bounds\"); B || (B = \"utf8\"); for (var C = !1;;)\r\n switch (B) {\r\n case \"hex\": return n(this, A, I, g);\r\n case \"utf8\":\r\n case \"utf-8\": return k(this, A, I, g);\r\n case \"ascii\": return y(this, A, I, g);\r\n case \"latin1\":\r\n case \"binary\": return R(this, A, I, g);\r\n case \"base64\": return M(this, A, I, g);\r\n case \"ucs2\":\r\n case \"ucs-2\":\r\n case \"utf16le\":\r\n case \"utf-16le\": return J(this, A, I, g);\r\n default:\r\n if (C)\r\n throw new TypeError(\"Unknown encoding: \" + B);\r\n B = (\"\" + B).toLowerCase(), C = !0;\r\n } }, o.prototype.toJSON = function () { return { type: \"Buffer\", data: Array.prototype.slice.call(this._arr || this, 0) }; };\r\n var S = 4096;\r\n function N(A, I, g) { var B = \"\"; g = Math.min(A.length, g); for (var Q = I; Q < g; ++Q)\r\n B += String.fromCharCode(127 & A[Q]); return B; }\r\n function q(A, I, g) { var B = \"\"; g = Math.min(A.length, g); for (var Q = I; Q < g; ++Q)\r\n B += String.fromCharCode(A[Q]); return B; }\r\n function K(A, I, g) { var B = A.length; (!I || I < 0) && (I = 0), (!g || g < 0 || g > B) && (g = B); for (var Q = \"\", C = I; C < g; ++C)\r\n Q += P(A[C]); return Q; }\r\n function L(A, I, g) { for (var B = A.slice(I, g), Q = \"\", C = 0; C < B.length; C += 2)\r\n Q += String.fromCharCode(B[C] + 256 * B[C + 1]); return Q; }\r\n function Y(A, I, g) { if (A % 1 != 0 || A < 0)\r\n throw new RangeError(\"offset is not uint\"); if (A + I > g)\r\n throw new RangeError(\"Trying to access beyond buffer length\"); }\r\n function f(A, I, g, B, Q, C) { if (!o.isBuffer(A))\r\n throw new TypeError('\"buffer\" argument must be a Buffer instance'); if (I > Q || I < C)\r\n throw new RangeError('\"value\" argument is out of bounds'); if (g + B > A.length)\r\n throw new RangeError(\"Index out of range\"); }\r\n function H(A, I, g, B) { I < 0 && (I = 65535 + I + 1); for (var Q = 0, C = Math.min(A.length - g, 2); Q < C; ++Q)\r\n A[g + Q] = (I & 255 << 8 * (B ? Q : 1 - Q)) >>> 8 * (B ? Q : 1 - Q); }\r\n function u(A, I, g, B) { I < 0 && (I = 4294967295 + I + 1); for (var Q = 0, C = Math.min(A.length - g, 4); Q < C; ++Q)\r\n A[g + Q] = I >>> 8 * (B ? Q : 3 - Q) & 255; }\r\n function l(A, I, g, B, Q, C) { if (g + B > A.length)\r\n throw new RangeError(\"Index out of range\"); if (g < 0)\r\n throw new RangeError(\"Index out of range\"); }\r\n function p(A, I, g, B, C) { return C || l(A, 0, g, 4), Q.write(A, I, g, B, 23, 4), g + 4; }\r\n function d(A, I, g, B, C) { return C || l(A, 0, g, 8), Q.write(A, I, g, B, 52, 8), g + 8; }\r\n o.prototype.slice = function (A, I) { var g, B = this.length; if ((A = ~~A) < 0 ? (A += B) < 0 && (A = 0) : A > B && (A = B), (I = void 0 === I ? B : ~~I) < 0 ? (I += B) < 0 && (I = 0) : I > B && (I = B), I < A && (I = A), o.TYPED_ARRAY_SUPPORT)\r\n (g = this.subarray(A, I)).__proto__ = o.prototype;\r\n else {\r\n var Q = I - A;\r\n g = new o(Q, void 0);\r\n for (var C = 0; C < Q; ++C)\r\n g[C] = this[C + A];\r\n } return g; }, o.prototype.readUIntLE = function (A, I, g) { A |= 0, I |= 0, g || Y(A, I, this.length); for (var B = this[A], Q = 1, C = 0; ++C < I && (Q *= 256);)\r\n B += this[A + C] * Q; return B; }, o.prototype.readUIntBE = function (A, I, g) { A |= 0, I |= 0, g || Y(A, I, this.length); for (var B = this[A + --I], Q = 1; I > 0 && (Q *= 256);)\r\n B += this[A + --I] * Q; return B; }, o.prototype.readUInt8 = function (A, I) { return I || Y(A, 1, this.length), this[A]; }, o.prototype.readUInt16LE = function (A, I) { return I || Y(A, 2, this.length), this[A] | this[A + 1] << 8; }, o.prototype.readUInt16BE = function (A, I) { return I || Y(A, 2, this.length), this[A] << 8 | this[A + 1]; }, o.prototype.readUInt32LE = function (A, I) { return I || Y(A, 4, this.length), (this[A] | this[A + 1] << 8 | this[A + 2] << 16) + 16777216 * this[A + 3]; }, o.prototype.readUInt32BE = function (A, I) { return I || Y(A, 4, this.length), 16777216 * this[A] + (this[A + 1] << 16 | this[A + 2] << 8 | this[A + 3]); }, o.prototype.readIntLE = function (A, I, g) { A |= 0, I |= 0, g || Y(A, I, this.length); for (var B = this[A], Q = 1, C = 0; ++C < I && (Q *= 256);)\r\n B += this[A + C] * Q; return B >= (Q *= 128) && (B -= Math.pow(2, 8 * I)), B; }, o.prototype.readIntBE = function (A, I, g) { A |= 0, I |= 0, g || Y(A, I, this.length); for (var B = I, Q = 1, C = this[A + --B]; B > 0 && (Q *= 256);)\r\n C += this[A + --B] * Q; return C >= (Q *= 128) && (C -= Math.pow(2, 8 * I)), C; }, o.prototype.readInt8 = function (A, I) { return I || Y(A, 1, this.length), 128 & this[A] ? -1 * (255 - this[A] + 1) : this[A]; }, o.prototype.readInt16LE = function (A, I) { I || Y(A, 2, this.length); var g = this[A] | this[A + 1] << 8; return 32768 & g ? 4294901760 | g : g; }, o.prototype.readInt16BE = function (A, I) { I || Y(A, 2, this.length); var g = this[A + 1] | this[A] << 8; return 32768 & g ? 4294901760 | g : g; }, o.prototype.readInt32LE = function (A, I) { return I || Y(A, 4, this.length), this[A] | this[A + 1] << 8 | this[A + 2] << 16 | this[A + 3] << 24; }, o.prototype.readInt32BE = function (A, I) { return I || Y(A, 4, this.length), this[A] << 24 | this[A + 1] << 16 | this[A + 2] << 8 | this[A + 3]; }, o.prototype.readFloatLE = function (A, I) { return I || Y(A, 4, this.length), Q.read(this, A, !0, 23, 4); }, o.prototype.readFloatBE = function (A, I) { return I || Y(A, 4, this.length), Q.read(this, A, !1, 23, 4); }, o.prototype.readDoubleLE = function (A, I) { return I || Y(A, 8, this.length), Q.read(this, A, !0, 52, 8); }, o.prototype.readDoubleBE = function (A, I) { return I || Y(A, 8, this.length), Q.read(this, A, !1, 52, 8); }, o.prototype.writeUIntLE = function (A, I, g, B) { (A = +A, I |= 0, g |= 0, B) || f(this, A, I, g, Math.pow(2, 8 * g) - 1, 0); var Q = 1, C = 0; for (this[I] = 255 & A; ++C < g && (Q *= 256);)\r\n this[I + C] = A / Q & 255; return I + g; }, o.prototype.writeUIntBE = function (A, I, g, B) { (A = +A, I |= 0, g |= 0, B) || f(this, A, I, g, Math.pow(2, 8 * g) - 1, 0); var Q = g - 1, C = 1; for (this[I + Q] = 255 & A; --Q >= 0 && (C *= 256);)\r\n this[I + Q] = A / C & 255; return I + g; }, o.prototype.writeUInt8 = function (A, I, g) { return A = +A, I |= 0, g || f(this, A, I, 1, 255, 0), o.TYPED_ARRAY_SUPPORT || (A = Math.floor(A)), this[I] = 255 & A, I + 1; }, o.prototype.writeUInt16LE = function (A, I, g) { return A = +A, I |= 0, g || f(this, A, I, 2, 65535, 0), o.TYPED_ARRAY_SUPPORT ? (this[I] = 255 & A, this[I + 1] = A >>> 8) : H(this, A, I, !0), I + 2; }, o.prototype.writeUInt16BE = function (A, I, g) { return A = +A, I |= 0, g || f(this, A, I, 2, 65535, 0), o.TYPED_ARRAY_SUPPORT ? (this[I] = A >>> 8, this[I + 1] = 255 & A) : H(this, A, I, !1), I + 2; }, o.prototype.writeUInt32LE = function (A, I, g) { return A = +A, I |= 0, g || f(this, A, I, 4, 4294967295, 0), o.TYPED_ARRAY_SUPPORT ? (this[I + 3] = A >>> 24, this[I + 2] = A >>> 16, this[I + 1] = A >>> 8, this[I] = 255 & A) : u(this, A, I, !0), I + 4; }, o.prototype.writeUInt32BE = function (A, I, g) { return A = +A, I |= 0, g || f(this, A, I, 4, 4294967295, 0), o.TYPED_ARRAY_SUPPORT ? (this[I] = A >>> 24, this[I + 1] = A >>> 16, this[I + 2] = A >>> 8, this[I + 3] = 255 & A) : u(this, A, I, !1), I + 4; }, o.prototype.writeIntLE = function (A, I, g, B) { if (A = +A, I |= 0, !B) {\r\n var Q = Math.pow(2, 8 * g - 1);\r\n f(this, A, I, g, Q - 1, -Q);\r\n } var C = 0, E = 1, i = 0; for (this[I] = 255 & A; ++C < g && (E *= 256);)\r\n A < 0 && 0 === i && 0 !== this[I + C - 1] && (i = 1), this[I + C] = (A / E >> 0) - i & 255; return I + g; }, o.prototype.writeIntBE = function (A, I, g, B) { if (A = +A, I |= 0, !B) {\r\n var Q = Math.pow(2, 8 * g - 1);\r\n f(this, A, I, g, Q - 1, -Q);\r\n } var C = g - 1, E = 1, i = 0; for (this[I + C] = 255 & A; --C >= 0 && (E *= 256);)\r\n A < 0 && 0 === i && 0 !== this[I + C + 1] && (i = 1), this[I + C] = (A / E >> 0) - i & 255; return I + g; }, o.prototype.writeInt8 = function (A, I, g) { return A = +A, I |= 0, g || f(this, A, I, 1, 127, -128), o.TYPED_ARRAY_SUPPORT || (A = Math.floor(A)), A < 0 && (A = 255 + A + 1), this[I] = 255 & A, I + 1; }, o.prototype.writeInt16LE = function (A, I, g) { return A = +A, I |= 0, g || f(this, A, I, 2, 32767, -32768), o.TYPED_ARRAY_SUPPORT ? (this[I] = 255 & A, this[I + 1] = A >>> 8) : H(this, A, I, !0), I + 2; }, o.prototype.writeInt16BE = function (A, I, g) { return A = +A, I |= 0, g || f(this, A, I, 2, 32767, -32768), o.TYPED_ARRAY_SUPPORT ? (this[I] = A >>> 8, this[I + 1] = 255 & A) : H(this, A, I, !1), I + 2; }, o.prototype.writeInt32LE = function (A, I, g) { return A = +A, I |= 0, g || f(this, A, I, 4, 2147483647, -2147483648), o.TYPED_ARRAY_SUPPORT ? (this[I] = 255 & A, this[I + 1] = A >>> 8, this[I + 2] = A >>> 16, this[I + 3] = A >>> 24) : u(this, A, I, !0), I + 4; }, o.prototype.writeInt32BE = function (A, I, g) { return A = +A, I |= 0, g || f(this, A, I, 4, 2147483647, -2147483648), A < 0 && (A = 4294967295 + A + 1), o.TYPED_ARRAY_SUPPORT ? (this[I] = A >>> 24, this[I + 1] = A >>> 16, this[I + 2] = A >>> 8, this[I + 3] = 255 & A) : u(this, A, I, !1), I + 4; }, o.prototype.writeFloatLE = function (A, I, g) { return p(this, A, I, !0, g); }, o.prototype.writeFloatBE = function (A, I, g) { return p(this, A, I, !1, g); }, o.prototype.writeDoubleLE = function (A, I, g) { return d(this, A, I, !0, g); }, o.prototype.writeDoubleBE = function (A, I, g) { return d(this, A, I, !1, g); }, o.prototype.copy = function (A, I, g, B) { if (g || (g = 0), B || 0 === B || (B = this.length), I >= A.length && (I = A.length), I || (I = 0), B > 0 && B < g && (B = g), B === g)\r\n return 0; if (0 === A.length || 0 === this.length)\r\n return 0; if (I < 0)\r\n throw new RangeError(\"targetStart out of bounds\"); if (g < 0 || g >= this.length)\r\n throw new RangeError(\"sourceStart out of bounds\"); if (B < 0)\r\n throw new RangeError(\"sourceEnd out of bounds\"); B > this.length && (B = this.length), A.length - I < B - g && (B = A.length - I + g); var Q, C = B - g; if (this === A && g < I && I < B)\r\n for (Q = C - 1; Q >= 0; --Q)\r\n A[Q + I] = this[Q + g];\r\n else if (C < 1e3 || !o.TYPED_ARRAY_SUPPORT)\r\n for (Q = 0; Q < C; ++Q)\r\n A[Q + I] = this[Q + g];\r\n else\r\n Uint8Array.prototype.set.call(A, this.subarray(g, g + C), I); return C; }, o.prototype.fill = function (A, I, g, B) { if (\"string\" == typeof A) {\r\n if (\"string\" == typeof I ? (B = I, I = 0, g = this.length) : \"string\" == typeof g && (B = g, g = this.length), 1 === A.length) {\r\n var Q = A.charCodeAt(0);\r\n Q < 256 && (A = Q);\r\n }\r\n if (void 0 !== B && \"string\" != typeof B)\r\n throw new TypeError(\"encoding must be a string\");\r\n if (\"string\" == typeof B && !o.isEncoding(B))\r\n throw new TypeError(\"Unknown encoding: \" + B);\r\n }\r\n else\r\n \"number\" == typeof A && (A &= 255); if (I < 0 || this.length < I || this.length < g)\r\n throw new RangeError(\"Out of range index\"); if (g <= I)\r\n return this; var C; if (I >>>= 0, g = void 0 === g ? this.length : g >>> 0, A || (A = 0), \"number\" == typeof A)\r\n for (C = I; C < g; ++C)\r\n this[C] = A;\r\n else {\r\n var E = o.isBuffer(A) ? A : b(new o(A, B).toString()), i = E.length;\r\n for (C = 0; C < g - I; ++C)\r\n this[C + I] = E[C % i];\r\n } return this; };\r\n var m = /[^+\\/0-9A-Za-z-_]/g;\r\n function P(A) { return A < 16 ? \"0\" + A.toString(16) : A.toString(16); }\r\n function b(A, I) { var g; I = I || 1 / 0; for (var B = A.length, Q = null, C = [], E = 0; E < B; ++E) {\r\n if ((g = A.charCodeAt(E)) > 55295 && g < 57344) {\r\n if (!Q) {\r\n if (g > 56319) {\r\n (I -= 3) > -1 && C.push(239, 191, 189);\r\n continue;\r\n }\r\n if (E + 1 === B) {\r\n (I -= 3) > -1 && C.push(239, 191, 189);\r\n continue;\r\n }\r\n Q = g;\r\n continue;\r\n }\r\n if (g < 56320) {\r\n (I -= 3) > -1 && C.push(239, 191, 189), Q = g;\r\n continue;\r\n }\r\n g = 65536 + (Q - 55296 << 10 | g - 56320);\r\n }\r\n else\r\n Q && (I -= 3) > -1 && C.push(239, 191, 189);\r\n if (Q = null, g < 128) {\r\n if ((I -= 1) < 0)\r\n break;\r\n C.push(g);\r\n }\r\n else if (g < 2048) {\r\n if ((I -= 2) < 0)\r\n break;\r\n C.push(g >> 6 | 192, 63 & g | 128);\r\n }\r\n else if (g < 65536) {\r\n if ((I -= 3) < 0)\r\n break;\r\n C.push(g >> 12 | 224, g >> 6 & 63 | 128, 63 & g | 128);\r\n }\r\n else {\r\n if (!(g < 1114112))\r\n throw new Error(\"Invalid code point\");\r\n if ((I -= 4) < 0)\r\n break;\r\n C.push(g >> 18 | 240, g >> 12 & 63 | 128, g >> 6 & 63 | 128, 63 & g | 128);\r\n }\r\n } return C; }\r\n function O(A) { return B.toByteArray(function (A) { if ((A = function (A) { return A.trim ? A.trim() : A.replace(/^\\s+|\\s+$/g, \"\"); }(A).replace(m, \"\")).length < 2)\r\n return \"\"; for (; A.length % 4 != 0;)\r\n A += \"=\"; return A; }(A)); }\r\n function W(A, I, g, B) { for (var Q = 0; Q < B && !(Q + g >= I.length || Q >= A.length); ++Q)\r\n I[Q + g] = A[Q]; return Q; }\r\n }).call(this, g(18));\r\n }, function (A, I) { var g; g = function () { return this; }(); try {\r\n g = g || new Function(\"return this\")();\r\n }\r\n catch (A) {\r\n \"object\" == typeof window && (g = window);\r\n } A.exports = g; }, function (A, I, g) {\r\n \"use strict\";\r\n I.byteLength = function (A) { var I = D(A), g = I[0], B = I[1]; return 3 * (g + B) / 4 - B; }, I.toByteArray = function (A) { var I, g, B = D(A), E = B[0], i = B[1], o = new C(function (A, I, g) { return 3 * (I + g) / 4 - g; }(0, E, i)), a = 0, t = i > 0 ? E - 4 : E; for (g = 0; g < t; g += 4)\r\n I = Q[A.charCodeAt(g)] << 18 | Q[A.charCodeAt(g + 1)] << 12 | Q[A.charCodeAt(g + 2)] << 6 | Q[A.charCodeAt(g + 3)], o[a++] = I >> 16 & 255, o[a++] = I >> 8 & 255, o[a++] = 255 & I; 2 === i && (I = Q[A.charCodeAt(g)] << 2 | Q[A.charCodeAt(g + 1)] >> 4, o[a++] = 255 & I); 1 === i && (I = Q[A.charCodeAt(g)] << 10 | Q[A.charCodeAt(g + 1)] << 4 | Q[A.charCodeAt(g + 2)] >> 2, o[a++] = I >> 8 & 255, o[a++] = 255 & I); return o; }, I.fromByteArray = function (A) { for (var I, g = A.length, Q = g % 3, C = [], E = 0, i = g - Q; E < i; E += 16383)\r\n C.push(a(A, E, E + 16383 > i ? i : E + 16383)); 1 === Q ? (I = A[g - 1], C.push(B[I >> 2] + B[I << 4 & 63] + \"==\")) : 2 === Q && (I = (A[g - 2] << 8) + A[g - 1], C.push(B[I >> 10] + B[I >> 4 & 63] + B[I << 2 & 63] + \"=\")); return C.join(\"\"); };\r\n for (var B = [], Q = [], C = \"undefined\" != typeof Uint8Array ? Uint8Array : Array, E = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", i = 0, o = E.length; i < o; ++i)\r\n B[i] = E[i], Q[E.charCodeAt(i)] = i;\r\n function D(A) { var I = A.length; if (I % 4 > 0)\r\n throw new Error(\"Invalid string. Length must be a multiple of 4\"); var g = A.indexOf(\"=\"); return -1 === g && (g = I), [g, g === I ? 0 : 4 - g % 4]; }\r\n function a(A, I, g) { for (var Q, C, E = [], i = I; i < g; i += 3)\r\n Q = (A[i] << 16 & 16711680) + (A[i + 1] << 8 & 65280) + (255 & A[i + 2]), E.push(B[(C = Q) >> 18 & 63] + B[C >> 12 & 63] + B[C >> 6 & 63] + B[63 & C]); return E.join(\"\"); }\r\n Q[\"-\".charCodeAt(0)] = 62, Q[\"_\".charCodeAt(0)] = 63;\r\n }, function (A, I) { I.read = function (A, I, g, B, Q) { var C, E, i = 8 * Q - B - 1, o = (1 << i) - 1, D = o >> 1, a = -7, t = g ? Q - 1 : 0, w = g ? -1 : 1, h = A[I + t]; for (t += w, C = h & (1 << -a) - 1, h >>= -a, a += i; a > 0; C = 256 * C + A[I + t], t += w, a -= 8)\r\n ; for (E = C & (1 << -a) - 1, C >>= -a, a += B; a > 0; E = 256 * E + A[I + t], t += w, a -= 8)\r\n ; if (0 === C)\r\n C = 1 - D;\r\n else {\r\n if (C === o)\r\n return E ? NaN : 1 / 0 * (h ? -1 : 1);\r\n E += Math.pow(2, B), C -= D;\r\n } return (h ? -1 : 1) * E * Math.pow(2, C - B); }, I.write = function (A, I, g, B, Q, C) { var E, i, o, D = 8 * C - Q - 1, a = (1 << D) - 1, t = a >> 1, w = 23 === Q ? Math.pow(2, -24) - Math.pow(2, -77) : 0, h = B ? 0 : C - 1, s = B ? 1 : -1, e = I < 0 || 0 === I && 1 / I < 0 ? 1 : 0; for (I = Math.abs(I), isNaN(I) || I === 1 / 0 ? (i = isNaN(I) ? 1 : 0, E = a) : (E = Math.floor(Math.log(I) / Math.LN2), I * (o = Math.pow(2, -E)) < 1 && (E--, o *= 2), (I += E + t >= 1 ? w / o : w * Math.pow(2, 1 - t)) * o >= 2 && (E++, o /= 2), E + t >= a ? (i = 0, E = a) : E + t >= 1 ? (i = (I * o - 1) * Math.pow(2, Q), E += t) : (i = I * Math.pow(2, t - 1) * Math.pow(2, Q), E = 0)); Q >= 8; A[g + h] = 255 & i, h += s, i /= 256, Q -= 8)\r\n ; for (E = E << Q | i, D += Q; D > 0; A[g + h] = 255 & E, h += s, E /= 256, D -= 8)\r\n ; A[g + h - s] |= 128 * e; }; }, function (A, I) { var g = {}.toString; A.exports = Array.isArray || function (A) { return \"[object Array]\" == g.call(A); }; }, function (A, I, g) {\r\n \"use strict\";\r\n g.r(I);\r\n var B, Q, C, E, i = g(2), o = g.n(i), D = g(3), a = g.n(D), t = g(8), w = g.n(t), h = g(9), s = g.n(h), e = g(5), G = g.n(e), F = g(10), r = g.n(F), n = g(6), k = g.n(n), y = g(7), R = g.n(y), M = g(0), J = g.n(M), U = g(1), c = g.n(U), S = g(4), N = g.n(S), q = new (window.AudioContext || window.webkitAudioContext), K = q.createAnalyser(), L = { getAudioContextObject: function () { return this; }, getAudioContext: function () { return q; }, getAnalyser: function () { return K; }, createGain: function () { return this.createGain; }, getAudioRecorder: function () { return B; }, getBufferSize: function () { return 8192; }, connect: function (A) { q.close(), q = new (window.AudioContext || window.webkitAudioContext), K = q.createAnalyser(), E = q.createGain(), C = A, Q = q.createMediaStreamSource(A), q && \"suspended\" === q.state && q.resume(), Q.connect(E), B = q.createScriptProcessor ? q.createScriptProcessor(8192, 2, 2) : q.createJavaScriptNode(8192, 2, 2), E.connect(B), Q.connect(K), B.connect(K); }, pauseConnection: function () { E.disconnect(q), B.disconnect(q), q.suspend(), this.stopRedDot(); }, disconnect: function () { E.disconnect(q), B.disconnect(q), this.stopRedDot(); }, stopRedDot: function () { C.getAudioTracks().forEach((function (A) { A.stop(); })); } }, Y = function () { function A(I, g) { o()(this, A), this.audioCtx = L.getAudioContextObject(), this.bufferSize = this.audioCtx.getBufferSize(), this.sampleRate = I.sampleRate, this.recorder = null, this.leftchannel = [], this.rightchannel = [], this.currentLeftChannelData = [], this.currentRightChannelData = [], this.prevLeftchannel = [], this.prevRightchannel = [], this.recordingLength = 0, this.startTime = null, this.volume = null, this.onDataCallback = g.onData; } return a()(A, [{ key: \"start\", value: function (A) { var I = this, g = this.audioCtx; this.stream = A, g.connect(A), g.getAudioRecorder().onaudioprocess = function (A) { var g = A.inputBuffer.getChannelData(0), B = A.inputBuffer.getChannelData(1), Q = new Float32Array(g), C = new Float32Array(B); I.setChannelData(Q, C); }, this.startTime = Date.now(); } }, { key: \"setTimeSliceInterval\", value: function (A) { var I = this; I.onDataCallback && setInterval((function () { var A = I.currentLeftChannelData, g = I.currentRightChannelData, B = I.exportRealTimeAudio(A, g); I.onDataCallback(B), I.resetCurrentChannelData(); }), A); } }, { key: \"setChannelData\", value: function (A, I) { this.leftchannel.push(A), this.rightchannel.push(I), this.currentLeftChannelData.push(A), this.currentRightChannelData.push(I), this.recordingLength += this.bufferSize; } }, { key: \"resetCurrentChannelData\", value: function () { this.currentLeftChannelData = [], this.currentRightChannelData = []; } }, { key: \"setPreviousChannelArrays\", value: function () { var A = this.prevLeftchannel, I = this.prevRightchannel, g = this.leftchannel, B = this.rightchannel; A.push(g.slice(0)), I.push(B.slice(0)); } }, { key: \"mergeAllChannelArrays\", value: function () { var A = this.prevLeftchannel, I = this.prevRightchannel, g = this.leftchannel, B = this.rightchannel; return A.length && I.length && (g.concat(A), B.concat(I)), [g, B]; } }, { key: \"pause\", value: function () { var A = this.audioCtx; this.setPreviousChannelArrays(), A.pauseConnection(); } }, { key: \"stop\", value: function () { var A = this.audioCtx, I = this.exportAudio(); return A.disconnect(), this.leftchannel = [], this.rightchannel = [], this.prevLeftchannel = [], this.prevRightchannel = [], this.recordingLength = 0, I; } }, { key: \"exportRealTimeAudio\", value: function (I, g) { var B = A.mergeBuffers(I, this.recordingLength), Q = A.mergeBuffers(g, this.recordingLength), C = A.interleave(B, Q), E = new ArrayBuffer(44 + 2 * C.length), i = new DataView(E); A.writeUTFBytes(i, 0, \"RIFF\"), i.setUint32(4, 44 + 2 * C.length, !0), A.writeUTFBytes(i, 8, \"WAVE\"), A.writeUTFBytes(i, 12, \"fmt \"), i.setUint32(16, 16, !0), i.setUint16(20, 1, !0), i.setUint16(22, 2, !0), i.setUint32(24, this.sampleRate, !0), i.setUint32(28, 4 * this.sampleRate, !0), i.setUint16(32, 4, !0), i.setUint16(34, 16, !0), A.writeUTFBytes(i, 36, \"data\"), i.setUint32(40, 2 * C.length, !0); for (var o = 44, D = 0; D < C.length; D += 1)\r\n i.setInt16(o, 32767 * C[D], !0), o += 2; var a = new Blob([i], { type: \"audio/wav\" }); return { blob: a, size: a.size, type: a.type }; } }, { key: \"exportAudio\", value: function () { var I = A.mergeBuffers(this.mergeAllChannelArrays()[0], this.recordingLength), g = A.mergeBuffers(this.mergeAllChannelArrays()[1], this.recordingLength), B = A.interleave(I, g), Q = new ArrayBuffer(44 + 2 * B.length), C = new DataView(Q); A.writeUTFBytes(C, 0, \"RIFF\"), C.setUint32(4, 44 + 2 * B.length, !0), A.writeUTFBytes(C, 8, \"WAVE\"), A.writeUTFBytes(C, 12, \"fmt \"), C.setUint32(16, 16, !0), C.setUint16(20, 1, !0), C.setUint16(22, 2, !0), C.setUint32(24, this.sampleRate, !0), C.setUint32(28, 4 * this.sampleRate, !0), C.setUint16(32, 4, !0), C.setUint16(34, 16, !0), A.writeUTFBytes(C, 36, \"data\"), C.setUint32(40, 2 * B.length, !0); for (var E = 44, i = 0; i < B.length; i += 1)\r\n C.setInt16(E, 32767 * B[i], !0), E += 2; var o = new Blob([C], { type: \"audio/wav\" }); return { blob: o, startTime: this.startTime, stopTime: Date.now(), blobURL: window.URL.createObjectURL(o) }; } }], [{ key: \"mergeBuffers\", value: function (A, I) { var g = new Float32Array(I), B = 0; if (A)\r\n for (var Q = A.length, C = 0; C < Q; C += 1) {\r\n var E = A[C];\r\n g.set(E, B), B += E.length;\r\n } return g; } }, { key: \"interleave\", value: function (A, I) { for (var g = A.length + I.length, B = new Float32Array(g), Q = 0, C = 0; C < g;)\r\n B[C += 1] = A[Q], B[C += 1] = I[Q], Q += 1; return B; } }, { key: \"writeUTFBytes\", value: function (A, I, g) { for (var B = g.length, Q = 0; Q < B; Q += 1)\r\n A.setUint8(I + Q, g.charCodeAt(Q)); } }]), A; }();\r\n var f, H = function () { var A = this, I = null, g = 5242880; function B(A) { var I = g; return g += A, I; } function Q(A) { postMessage({ type: \"internal-error\", data: A }); } var C = null, E = null, i = null; function o(A) { var I = new Uint32Array(A, E + 4, 1)[0], g = new Uint32Array(A, E + 8, 1)[0], B = new Uint8Array(A, I, g); return new Blob([B], { type: \"audio/mpeg\" }); } function D() { var A = new Uint32Array(I.buffer, E + 4, 1)[0], g = new Uint32Array(I.buffer, E + 8, 1)[0], B = new Uint8Array(I.buffer, A, g), Q = new Blob([B], { type: \"audio/mpeg\" }); return C.vmsg_free(E), Q; } onmessage = function (g) { var a, t = A, w = g.data; switch (w.type) {\r\n case \"init\":\r\n var h = w.data.wasmBuffer;\r\n Promise.resolve().then((function () { var A, g; return t.WebAssembly && (A = new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 6, 1, 96, 1, 127, 1, 127, 3, 2, 1, 0, 5, 3, 1, 0, 1, 7, 8, 1, 4, 116, 101, 115, 116, 0, 0, 10, 16, 1, 14, 0, 32, 0, 65, 1, 54, 2, 0, 32, 0, 40, 2, 0, 11]), g = new WebAssembly.Module(A), 0 === new WebAssembly.Instance(g, {}).exports.test(4)) && delete t.WebAssembly, { memory: I = new WebAssembly.Memory({ initial: 256, maximum: 256 }), pow: Math.pow, exit: Q, powf: Math.pow, exp: Math.exp, sqrtf: Math.sqrt, cos: Math.cos, log: Math.log, sin: Math.sin, sbrk: B }; })).then((function (A) { return function (A, I) { return WebAssembly.compile(A).then((function (A) { var g = A; return new WebAssembly.Instance(g, I); })); }(h, { env: A }); })).then((function (A) { C = A.exports, postMessage({ type: \"init\", data: null }); })).catch((function (A) { postMessage({ type: \"init-error\", data: A.toString() }); }));\r\n break;\r\n case \"start\":\r\n if (!function (A) { if (!(E = C.vmsg_init(A)))\r\n return !1; var g = new Uint32Array(I.buffer, E, 1)[0]; return i = new Float32Array(I.buffer, g), !0; }(w.data))\r\n return postMessage({ type: \"error\", data: \"vmsgInit\" });\r\n break;\r\n case \"data\":\r\n if (a = w.data, i.set(a), !(C.vmsg_encode(E, a.length) >= 0))\r\n return postMessage({ type: \"error\", data: \"vmsgEncode\" });\r\n postMessage({ type: \"data\", data: o(w.data) });\r\n break;\r\n case \"pause\":\r\n var s = D(w.data);\r\n if (!D(w.data))\r\n return postMessage({ type: \"error\", data: \"vmsgPause\" });\r\n postMessage({ type: \"pause\", data: s });\r\n break;\r\n case \"stop\":\r\n var e = function () { var A = new Uint32Array(I.buffer, E + 4, 1)[0], g = new Uint32Array(I.buffer, E + 8, 1)[0], B = new Uint8Array(I.buffer, A, g), Q = new Blob([B], { type: \"audio/mpeg\" }); return C.vmsg_free(E), E = null, i = null, Q; }(w.data);\r\n if (!e)\r\n return postMessage({ type: \"error\", data: \"vmsgFlush\" });\r\n e && e.size > 0 && postMessage({ type: \"stop\", data: e });\r\n } }; }, u = function () { function A() { var I = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, g = arguments.length > 1 ? arguments[1] : void 0, B = arguments.length > 2 ? arguments[2] : void 0; o()(this, A), this.shimURL = new URL(I.shimURL || \"/static/js/wasm-polyfill.js\", location).href, this.pitch = I.pitch || 0, this.sampleRate = I.mediaOptions.sampleRate, this.audioCtx = g, this.onDataCallback = B, this.gainNode = null, this.stream = null, this.pitchFX = null, this.encNode = null, this.worker = null, this.workerURL = null, this.recordedBlobs = [], this.isPaused = !1, this.blob = null, this.blobURL = null, this.resolve = null, this.reject = null, this.audio = new Audio, this.tid = 0, this.start = 0, Object.seal(this); } var I, B, Q; return a()(A, [{ key: \"close\", value: function () { this.encNode && this.encNode.disconnect(), this.encNode && (this.encNode.onaudioprocess = null), this.audioCtx && this.audioCtx.close(), this.worker && this.worker.terminate(), this.workerURL && URL.revokeObjectURL(this.workerURL), this.blobURL && URL.revokeObjectURL(this.blobURL); } }, { key: \"initAudio\", value: (Q = N()(c.a.mark((function A() { var I; return c.a.wrap((function (A) { for (;;)\r\n switch (A.prev = A.next) {\r\n case 0: I = this.audioCtx, this.encNode = I.getAudioRecorder();\r\n case 2:\r\n case \"end\": return A.stop();\r\n } }), A, this); }))), function () { return Q.apply(this, arguments); }) }, { key: \"initWorker\", value: (B = N()(c.a.mark((function A() { var I, B, Q, C, E, i, o, D = this; return c.a.wrap((function (A) { for (;;)\r\n switch (A.prev = A.next) {\r\n case 0:\r\n if (I = this, this.audioCtx) {\r\n A.next = 3;\r\n break;\r\n }\r\n throw new Error(\"missing audio initialization\");\r\n case 3: return B = new Blob([\"(\", H.toString(), \")()\"], { type: \"application/javascript\" }), Q = this.workerURL = URL.createObjectURL(B), C = this.worker = new Worker(Q), E = this.shimURL, A.next = 9, Promise.resolve().then(g.t.bind(null, 15, 7));\r\n case 9: return i = A.sent, o = i.default, C.postMessage({ type: \"init\", data: { wasmBuffer: o, shimURL: E } }), A.abrupt(\"return\", new Promise((function (A, g) { C.onmessage = function (B) { var Q = B.data; switch (Q.type) {\r\n case \"init\":\r\n I.isPaused = !1, A();\r\n break;\r\n case \"init-error\":\r\n g(new Error(Q.data));\r\n break;\r\n case \"error\":\r\n case \"internal-error\":\r\n console.error(\"Worker error:\", Q.data), D.reject && D.reject(Q.data);\r\n break;\r\n case \"pause\":\r\n I.recordedBlobs.push(Q.data), I.isPaused = !0;\r\n break;\r\n case \"data\":\r\n if (I.onDataCallback) {\r\n var C = Q.data;\r\n I.onDataCallback(C);\r\n }\r\n break;\r\n case \"stop\":\r\n D.blob = Q.data, I.isPaused || I.recordedBlobs.push(Q.data), D.blobURL = URL.createObjectURL(Q.data);\r\n var E = I.getAllBlobs();\r\n D.resolve && D.resolve(E), I.recordedBlobs.length = 0;\r\n } }; })));\r\n case 13:\r\n case \"end\": return A.stop();\r\n } }), A, this); }))), function () { return B.apply(this, arguments); }) }, { key: \"startRecording\", value: (I = N()(c.a.mark((function A(I, g) { var B = this; return c.a.wrap((function (A) { for (;;)\r\n switch (A.prev = A.next) {\r\n case 0: return this.audio.pause(), this.stream = I, this.start = Date.now(), this.updateTime(), A.next = 6, this.initAudio();\r\n case 6: return A.next = 8, this.initWorker();\r\n case 8:\r\n if (this.audioCtx) {\r\n A.next = 10;\r\n break;\r\n }\r\n throw new Error(\"missing audio initialization\");\r\n case 10:\r\n if (this.worker) {\r\n A.next = 12;\r\n break;\r\n }\r\n throw new Error(\"missing worker initialization\");\r\n case 12: this.blob = null, this.blobURL && URL.revokeObjectURL(this.blobURL), this.blobURL = null, this.worker.postMessage({ type: \"start\", data: this.sampleRate }), this.encNode.onaudioprocess = function (A) { var I = A.inputBuffer.getChannelData(0); B.worker.postMessage({ type: \"data\", data: I }); };\r\n case 17:\r\n case \"end\": return A.stop();\r\n } }), A, this); }))), function (A, g) { return I.apply(this, arguments); }) }, { key: \"pauseRecording\", value: function () { var A = this, I = new Promise((function (I, g) { A.resolve = I, A.reject = g; })); return this.worker ? (this.worker.postMessage({ type: \"pause\", data: null }), I) : Promise.resolve(this.blob); } }, { key: \"stopRecording\", value: function () { var A = this, I = new Promise((function (I, g) { A.resolve = I, A.reject = g; })); return this.worker ? (this.worker.postMessage({ type: \"stop\", data: null }), I) : Promise.resolve(this.blob); } }, { key: \"getAllBlobs\", value: function () { return this.recordedBlobs.reduce((function (A, I) { return new Blob([A, I], { type: \"audio/mpeg\" }); })); } }, { key: \"updateTime\", value: function () { var A = this; this.tid = setTimeout((function () { return A.updateTime(); }), 300); } }]), A; }(), l = \"https://unpkg.com/wasm-polyfill.js@0.2.0/wasm-polyfill.js\";\r\n navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;\r\n var p = function () { function A(I, g) { o()(this, A), this.audioCtx = L.getAudioContextObject(), this.wasmRecorder = new u({ shimURL: l, mediaOptions: I }, this.audioCtx, g.onData); } var I, g, B; return a()(A, [{ key: \"start\", value: (B = N()(c.a.mark((function A(I) { var g, B; return c.a.wrap((function (A) { for (;;)\r\n switch (A.prev = A.next) {\r\n case 0: return g = this.audioCtx, B = this.wasmRecorder, A.next = 3, g.connect(I);\r\n case 3: return A.next = 5, B.startRecording(I);\r\n case 5: f = Date.now();\r\n case 6:\r\n case \"end\": return A.stop();\r\n } }), A, this); }))), function (A) { return B.apply(this, arguments); }) }, { key: \"pause\", value: (g = N()(c.a.mark((function A() { var I, g; return c.a.wrap((function (A) { for (;;)\r\n switch (A.prev = A.next) {\r\n case 0: return I = this.audioCtx, g = this.wasmRecorder, I.pauseConnection(), A.next = 4, g.pauseRecording();\r\n case 4:\r\n case \"end\": return A.stop();\r\n } }), A, this); }))), function () { return g.apply(this, arguments); }) }, { key: \"stop\", value: (I = N()(c.a.mark((function A() { var I, g, B, Q; return c.a.wrap((function (A) { for (;;)\r\n switch (A.prev = A.next) {\r\n case 0: return I = this.audioCtx, g = this.wasmRecorder, I.disconnect(), A.next = 4, g.stopRecording();\r\n case 4: return B = A.sent, Q = { startTime: f, stopTime: Date.now(), blob: B, blobURL: window.URL.createObjectURL(B) }, A.abrupt(\"return\", Q);\r\n case 7:\r\n case \"end\": return A.stop();\r\n } }), A, this); }))), function () { return I.apply(this, arguments); }) }, { key: \"setTimeSliceInterval\", value: function (A) { } }]), A; }();\r\n navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;\r\n var d = function () { function A(I, g, B, Q, C, E, i, D) { var a = this; o()(this, A), k()(this, \"startRecording\", (function () { var A = a; if (navigator.mediaDevices) {\r\n var I = a.soundOptions, g = { audio: { echoCancellation: I.echoCancellation, autoGainControl: I.autoGainControl, noiseSuppression: I.noiseSuppression, channelCount: I.channelCount }, video: !1 };\r\n navigator.mediaDevices.getUserMedia(g).then((function (I) { var g = A.onDataCallback, B = A.onStartCallback, Q = A.mediaOptions; if (B && B(), null === A.recorder) {\r\n var C = \"audio/wav\" === Q.mimeType ? Y : p;\r\n A.recorder = new C(Q, { onData: g });\r\n } A.recorder.start(I), A.recorder.setTimeSliceInterval(Q.timeSlice); })).catch((function (A) { var I = a.onBlockCallback; I && I(A); }));\r\n }\r\n else\r\n alert(\"Your browser does not support audio recording. If you have an Iphone, you need to use Safari to record audio.\"); })), this.recorder = null, this.onStartCallback = I, this.onStopCallback = g, this.onSaveCallback = B, this.onDataCallback = Q, this.onBlockCallback = C, this.onPauseCallback = E, this.mediaOptions = i, this.soundOptions = D; } var I, g; return a()(A, [{ key: \"pauseRecording\", value: (g = N()(c.a.mark((function A() { var I, g; return c.a.wrap((function (A) { for (;;)\r\n switch (A.prev = A.next) {\r\n case 0:\r\n if (I = this.recorder, g = this.onPauseCallback, !I) {\r\n A.next = 5;\r\n break;\r\n }\r\n return A.next = 4, I.pause();\r\n case 4: g && g();\r\n case 5:\r\n case \"end\": return A.stop();\r\n } }), A, this); }))), function () { return g.apply(this, arguments); }) }, { key: \"stopRecording\", value: (I = N()(c.a.mark((function A() { var I, g, B; return c.a.wrap((function (A) { for (;;)\r\n switch (A.prev = A.next) {\r\n case 0:\r\n if (I = this.onStopCallback, g = this.onSaveCallback, !this.recorder) {\r\n A.next = 7;\r\n break;\r\n }\r\n return A.next = 4, this.recorder.stop();\r\n case 4: B = A.sent, I && I(B), g && g(B);\r\n case 7:\r\n case \"end\": return A.stop();\r\n } }), A, this); }))), function () { return I.apply(this, arguments); }) }]), A; }(), m = function () { function A(I, g, B, Q, C) { o()(this, A), this.canvas = I, this.canvasCtx = this.canvas.getContext(\"2d\"), this.width = g, this.height = B, this.backgroundColor = Q, this.strokeColor = C; } return a()(A, [{ key: \"visualizeSineWave\", value: function () { var A = this.canvas, I = this.canvasCtx, g = this.width, B = this.height, Q = this.backgroundColor, C = this.strokeColor; I.clearRect(0, 0, g, B), function E() { var i = L.getAnalyser(); if (requestAnimationFrame(E), i) {\r\n var o = i.fftSize, D = new Uint8Array(o);\r\n i.getByteTimeDomainData(D), I.fillStyle = Q, I.fillRect(0, 0, g, B), I.lineWidth = 2, I.strokeStyle = C, I.beginPath();\r\n for (var a = 1 * g / o, t = 0, w = 0; w < o; w += 1) {\r\n var h = D[w] / 128 * B / 2;\r\n 0 === w ? I.moveTo(t, h) : I.lineTo(t, h), t += a;\r\n }\r\n I.lineTo(A.width, A.height / 2), I.stroke();\r\n } }(); } }, { key: \"visualizeFrequencyBars\", value: function () { var A = this.canvasCtx, I = this.width, g = this.height, B = this.backgroundColor, Q = this.strokeColor, C = L.getAnalyser(); C.fftSize = 256; var E = C.frequencyBinCount, i = new Uint8Array(E); A.clearRect(0, 0, I, g), function o() { requestAnimationFrame(o), (C = L.getAnalyser()).getByteFrequencyData(i), A.fillStyle = B, A.fillRect(0, 0, I, g); for (var D, a = I / E * 2.5, t = 0, w = 0; w < E; w += 1)\r\n D = i[w], A.fillStyle = Q, A.fillRect(t, g - D / 2, a, D / 2), t += a + 1; }(); } }, { key: \"visualizeFrequencyCircles\", value: function () { var A = this.canvasCtx, I = this.width, g = this.height, B = this.backgroundColor, Q = this.strokeColor, C = L.getAnalyser(); C.fftSize = 32; var E = C.frequencyBinCount, i = new Uint8Array(E); A.clearRect(0, 0, I, g), function o() { requestAnimationFrame(o), C.getByteFrequencyData(i); for (var D = new Uint8Array(E / 3), a = 0; a < E; a += 3) {\r\n for (var t = 0, w = 0; w < 3; w += 1)\r\n t += i[a + w];\r\n D[a / 3] = t / 3;\r\n } A.clearRect(0, 0, I, g), A.beginPath(), A.arc(I / 2, g / 2, Math.min(g, I) / 2, 0, 2 * Math.PI), A.fillStyle = B, A.fill(); var h = Math.min(g, I) / 2 / D.length; A.strokeStyle = Q; for (var s = 0; s < D.length; s += 1) {\r\n A.beginPath();\r\n var e = h * s + h * (D[s] / 128);\r\n A.arc(I / 2, g / 2, e, 0, 2 * Math.PI), A.stroke();\r\n } }(); } }], [{ key: \"hexToRgb\", value: function (A) { var I = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(A); return I ? { r: parseInt(I[1], 16), g: parseInt(I[2], 16), b: parseInt(I[3], 16) } : null; } }]), A; }(), P = function (A) { function I(A) { var g; o()(this, I), g = w()(this, s()(I).call(this, A)), k()(G()(g), \"shouldComponentUpdate\", (function (A) { var I = G()(g).props; return A.record !== I.record || A.pause !== I.pause; })), k()(G()(g), \"visualize\", (function () { var A = g.props.visualSetting, I = g.state.visualizer; switch (A) {\r\n case \"sinewave\":\r\n I.visualizeSineWave();\r\n break;\r\n case \"frequencyBars\":\r\n I.visualizeFrequencyBars();\r\n break;\r\n case \"frequencyCircles\":\r\n I.visualizeFrequencyCircles();\r\n break;\r\n default: I.visualizeSineWave();\r\n } })); var B = A.audioBitsPerSecond, Q = A.mimeType, C = A.onSave, E = A.onStop, i = A.onStart, D = A.onData, a = A.onBlock, t = A.onPause, h = A.echoCancellation, e = A.autoGainControl, F = A.noiseSuppression, r = A.channelCount, n = { audioBitsPerSecond: B, mimeType: Q, timeSlice: A.timeSlice, sampleRate: A.sampleRate }, y = { echoCancellation: h, autoGainControl: e, noiseSuppression: F, channelCount: r }; return g.state = { recorder: new d(i, E, C, D, a, t, n, y), record: !1, pause: !1 }, g; } return r()(I, A), a()(I, [{ key: \"componentDidMount\", value: function () { var A = this, I = this.props, g = I.backgroundColor, B = I.strokeColor, Q = I.width, C = I.height, E = this.visualizer; this.setState({ visualizer: new m(E, Q, C, g, B) }, (function () { A.visualize(); })); } }, { key: \"componentWillUnmount\", value: function () { this.state.recorder.stopRecording(); } }, { key: \"executeRecorderAction\", value: function () { var A = this.state, I = A.recorder, g = A.record, B = A.pause, Q = A.onStop; I && (!0 === g && !1 === B && I.startRecording(), !1 === g && !0 === B && I.pauseRecording(), !1 === g && !1 === B && I.stopRecording(Q)); } }, { key: \"render\", value: function () { var A = this, I = this.props, g = I.className, B = I.width, Q = I.height; return this.executeRecorderAction(), R.a.createElement(\"canvas\", { ref: function (I) { A.visualizer = I; }, height: Q, width: B, className: g }); } }], [{ key: \"getDerivedStateFromProps\", value: function (A) { var I = {}; return !0 === A.record ? I = !0 === A.pause ? { record: !1, pause: !0 } : { record: !0, pause: !1 } : !1 === A.record && (I = { record: !1, pause: !1 }), I; } }]), I; }(y.Component);\r\n P.propTypes = { record: J.a.bool.isRequired, pause: J.a.bool, backgroundColor: J.a.string, strokeColor: J.a.string, className: J.a.string, audioBitsPerSecond: J.a.number, mimeType: J.a.string, height: J.a.number, width: J.a.number, onStart: J.a.func, onBlock: J.a.func, onStop: J.a.func.isRequired, onData: J.a.func, onSave: J.a.func, onPause: J.a.func, visualSetting: J.a.string, echoCancellation: J.a.bool, autoGainControl: J.a.bool, noiseSuppression: J.a.bool, channelCount: J.a.number, timeSlice: J.a.number, sampleRate: J.a.number }, P.defaultProps = { pause: !1, backgroundColor: \"rgba(255, 255, 255, 0.5)\", strokeColor: \"#000000\", className: \"visualizer\", audioBitsPerSecond: 128e3, mimeType: \"audio/mp3\", width: 640, height: 100, visualSetting: \"sinewave\", onStart: void 0, onBlock: void 0, onSave: void 0, onData: void 0, onPause: void 0, echoCancellation: !1, autoGainControl: !1, noiseSuppression: !1, channelCount: 2, timeSlice: 4e3, sampleRate: 44100 }, g.d(I, \"ReactMicGold\", (function () { return P; }));\r\n }]);\r\n}));\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ThemePicker = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = require(\"react\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst controls_1 = require(\"../controls\");\r\nconst styles_1 = require(\"../../styles\");\r\nconst store_1 = require(\"../../store\");\r\nconst ThemeConfig_1 = require(\"./ThemeConfig\");\r\nconst dialogs_1 = require(\"../../dialogs\");\r\nconst baseStyles = (0, react_1.css) `\r\n .sb-theme-toggle {\r\n display: flex;\r\n align-items: center;\r\n padding: 0.5rem;\r\n background-color: ${styles_1.GlobalTheme.current.colors.neutrals.midground};\r\n }\r\n\r\n .sb-theme-toggle label {\r\n margin: 0 0.5rem;\r\n }\r\n`;\r\nclass ThemePicker extends react_2.Component {\r\n constructor(props) {\r\n super(props);\r\n this.onCancel = this.onCancel.bind(this);\r\n this.onEdit = this.onEdit.bind(this);\r\n this.state = {\r\n isEditing: styles_1.GlobalTheme.current.name === api_1.ThemeName.Draft,\r\n };\r\n }\r\n onEdit() {\r\n this.setState({ isEditing: true });\r\n }\r\n onPreview() {\r\n var _a;\r\n // TODO: Replace with currentOrgTheme ?? lightTheme logic\r\n const lightThemeJson = JSON.stringify(styles_1.lightTheme);\r\n const currentThemeJson = JSON.stringify(styles_1.GlobalTheme.current);\r\n if (lightThemeJson !== currentThemeJson) {\r\n styles_1.GlobalTheme.current.name = api_1.ThemeName.Draft;\r\n const orgRoute = (_a = store_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.details.route;\r\n if (orgRoute == null) {\r\n return;\r\n }\r\n styles_1.GlobalTheme.set(styles_1.GlobalTheme.current, orgRoute, true);\r\n styles_1.GlobalTheme.apply();\r\n }\r\n }\r\n onCancel() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.setState({ isEditing: false });\r\n });\r\n }\r\n onReset() {\r\n dialogs_1.DialogManager.ShowConfirmDialog(\"Reset Theme\", \"Are you sure you want to reset the theme for your organization? All users will see the reset them after their next full refresh\", () => __awaiter(this, void 0, void 0, function* () {\r\n var _a;\r\n const orgRoute = (_a = store_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.details.route;\r\n if (orgRoute == null) {\r\n return;\r\n }\r\n yield api_1.OrganizationsService.updateThemeAsync(orgRoute, undefined);\r\n styles_1.GlobalTheme.clear(orgRoute);\r\n styles_1.GlobalTheme.apply();\r\n }), \"Reset\", dialogs_1.DialogStyleType.Danger);\r\n }\r\n render() {\r\n var _a;\r\n const isDraft = styles_1.GlobalTheme.current.name === api_1.ThemeName.Draft;\r\n return ((0, react_1.jsx)(reactstrap_1.Card, { css: baseStyles, className: \"mb-2\" },\r\n (0, react_1.jsx)(reactstrap_1.CardHeader, null,\r\n (0, react_1.jsx)(\"h1\", { className: \"mb-0\" }, `${(_a = store_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.details.name} Theme: ${styles_1.GlobalTheme.current.name}`),\r\n (0, react_1.jsx)(\"p\", { className: \"mt-0 text-muted\" }, \"Customize the visual styling of your organization on Soundbite\"),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: this.state.isEditing && !isDraft },\r\n (0, react_1.jsx)(ThemeConfig_1.ThemeConfig, null))),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: !isDraft },\r\n (0, react_1.jsx)(reactstrap_1.CardFooter, { className: \"text-right\" },\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: !this.state.isEditing },\r\n (0, react_1.jsx)(reactstrap_1.Button, { color: \"primary\", onClick: this.onEdit }, \"Edit\"),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: styles_1.GlobalTheme.current.name === api_1.ThemeName.Custom },\r\n (0, react_1.jsx)(reactstrap_1.Button, { color: \"secondary\", className: \"sb-link-simple-btn\", onClick: this.onReset }, \"Reset\"))),\r\n (0, react_1.jsx)(controls_1.ShowWhen, { is: this.state.isEditing },\r\n (0, react_1.jsx)(reactstrap_1.Button, { color: \"secondary\", outline: true, onClick: this.onCancel }, \"Cancel\"))))));\r\n }\r\n}\r\nexports.ThemePicker = ThemePicker;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./VideoEditorContext\"), exports);\r\n__exportStar(require(\"./context/HlsMediaPlayerContext\"), exports);\r\n__exportStar(require(\"./context/SbMediaPlayerContext\"), exports);\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AskAccess = void 0;\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst store_1 = require(\"../store\");\r\nconst controls_1 = require(\"./controls\");\r\nconst ErrorDlg_1 = require(\"./ErrorDlg\");\r\n/**\r\n * Provides a standard way of creating buttons in Soundbite Studio.\r\n */\r\nconst AskAccess = (props) => {\r\n var _a, _b;\r\n const [isLoading, setIsLoading] = (0, react_1.useState)(true);\r\n const [admins, setAdmins] = (0, react_1.useState)();\r\n const actionMsg = `Request ${props.roleMsg} Access`;\r\n (0, react_1.useEffect)(() => {\r\n const load = () => __awaiter(void 0, void 0, void 0, function* () {\r\n try {\r\n setIsLoading(true);\r\n // If we don't have an orgRoute yet, then abort\r\n if (props.orgRoute == null) {\r\n return;\r\n }\r\n const response = yield api_1.PeopleService.readAllAsync(props.orgRoute, {\r\n personRole: api_1.PersonRole.Admin,\r\n });\r\n setAdmins(response.result);\r\n }\r\n catch (err) {\r\n ErrorDlg_1.ErrorDlg.show(err, \"Error Retrieving List of Admins\");\r\n }\r\n finally {\r\n setIsLoading(false);\r\n }\r\n });\r\n load();\r\n }, [props.orgRoute]);\r\n function onRequestAccess(person) {\r\n var _a, _b;\r\n let email = person.user.email;\r\n if (person.user.givenName != null) {\r\n const receiverName = api_1.Utils.userDisplay(person.user);\r\n email = `${receiverName}<${person.user.email}>`;\r\n }\r\n let subject = actionMsg;\r\n const currentUser = (_b = (_a = store_1.WidgetStore.organizations) === null || _a === void 0 ? void 0 : _a.currentOrg) === null || _b === void 0 ? void 0 : _b.details.me;\r\n if (currentUser != null) {\r\n const currentUserName = api_1.Utils.userDisplay(currentUser === null || currentUser === void 0 ? void 0 : currentUser.user);\r\n subject = subject + \" for \" + currentUserName;\r\n }\r\n let body = \"\";\r\n if (person.user.givenName != null) {\r\n body += `${person.user.givenName},\\r\\n\\r\\n`;\r\n }\r\n body += `I'm reaching out to request access to create content in Soundbite. I can be added at the organization level or scoped just to a group. Let me know what you need from me to start creating content for my team?\\r\\n\\r\\n`;\r\n const supportEmail = \"Support@Soundbite.Freshdesk.Com\";\r\n body += `For more information on how organization and group permissions work in Soundbite, contact Soundbite Support: ${supportEmail}`;\r\n const mailtoLink = `mailto:${email}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;\r\n // Create a link element, set the href, and click it programmatically\r\n const link = document.createElement(\"a\");\r\n link.href = mailtoLink;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n const hasMoreThanOneAdmin = ((_a = admins === null || admins === void 0 ? void 0 : admins.length) !== null && _a !== void 0 ? _a : 0) > 1;\r\n return (react_1.default.createElement(\"div\", { className: `border-0 ${(_b = props.className) !== null && _b !== void 0 ? _b : \"\"}` },\r\n react_1.default.createElement(controls_1.Loader, { isLoadedWhen: props.orgRoute != null && !isLoading },\r\n react_1.default.createElement(\"p\", { className: \"align-items-center text-muted\" }, props.title),\r\n react_1.default.createElement(\"table\", { className: \"table align-items-center\" },\r\n react_1.default.createElement(\"thead\", { className: \"thead-light\" },\r\n react_1.default.createElement(\"tr\", null,\r\n react_1.default.createElement(\"th\", { scope: \"col\", className: \"sort\", \"data-sort\": \"name\" }, \"Admin\"),\r\n react_1.default.createElement(\"th\", { scope: \"col\", className: \"sort\", \"data-sort\": \"action\" }))),\r\n react_1.default.createElement(\"tbody\", null, admins === null || admins === void 0 ? void 0 : admins.map((person) => {\r\n return (react_1.default.createElement(\"tr\", { key: person.route },\r\n react_1.default.createElement(\"th\", { scope: \"row\" },\r\n react_1.default.createElement(controls_1.Avatar, { user: person.user, onClick: () => onRequestAccess(person), title: \"Show Member Profile\" })),\r\n react_1.default.createElement(\"td\", { className: \"text-right\" },\r\n react_1.default.createElement(controls_1.ShowWhen, { is: hasMoreThanOneAdmin },\r\n react_1.default.createElement(reactstrap_1.Button, { onClick: () => onRequestAccess(person), color: \"primary\", size: \"sm\", type: \"button\", title: actionMsg }, actionMsg)))));\r\n }))))));\r\n};\r\nexports.AskAccess = AskAccess;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GroupPlayer = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst GroupPlayerRow_1 = require(\"./GroupPlayerRow\");\r\nconst controls_1 = require(\"./controls\");\r\nconst SoundScrubber2_1 = require(\"./SoundScrubber2\");\r\nconst MediaPlayerContextFactory_1 = require(\"./video/context/MediaPlayerContextFactory\");\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\n/**\r\n * Displays a series of sessions allowing users to play through the list of content.\r\n */\r\nconst GroupPlayer = (props) => {\r\n //////////[ State ]///////////////////////////////////////////////////////////////////////////////\r\n var _a;\r\n const [contexts, setContexts] = (0, react_1.useState)([]);\r\n const [currentContextIndex, setCurrentContextIndex] = (0, react_1.useState)(0);\r\n //////////[ Variables ]///////////////////////////////////////////////////////////////////////////\r\n let clips = trimClipsBySessionType();\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n (0, react_1.useEffect)(() => {\r\n const contexts = new Array(length);\r\n // Initialize the contexts and load media URLs\r\n for (let i = 0; i < contexts.length - 1; i++) {\r\n // There should be a 1:1 ratio of contexts to clips\r\n const currentClip = clips[i];\r\n contexts[i] = MediaPlayerContextFactory_1.MediaPlayerContextFactory.getContext(currentClip);\r\n contexts[i].onPlaybackComplete = () => {\r\n onRowEnded();\r\n };\r\n if (currentClip) {\r\n contexts[i].load(currentClip);\r\n }\r\n }\r\n setContexts(contexts);\r\n }, [props.session, (_a = props.session) === null || _a === void 0 ? void 0 : _a.prompts[0].clips]);\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n /**\r\n * Responsible trimming down all cips in a session to only applicable clips\r\n */\r\n function trimClipsBySessionType() {\r\n var _a, _b;\r\n let result = ((_a = props.session) === null || _a === void 0 ? void 0 : _a.prompts[0].clips) || [];\r\n // For meetings trim down the clips to those other than the current user\r\n if (((_b = props.session) === null || _b === void 0 ? void 0 : _b.sessionType) === api_1.SessionType.Meeting) {\r\n result = result.filter((clip) => clip.contributor.route !== props.currentUserRoute);\r\n }\r\n return result;\r\n }\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n const onPlayToggle = () => {\r\n const context = contexts[currentContextIndex];\r\n if (context.isPlaying) {\r\n context.pause();\r\n }\r\n else {\r\n context.play();\r\n }\r\n };\r\n const onRowEnded = () => {\r\n // Determine if current context is NOT the last context.\r\n if (currentContextIndex < contexts.length - 2) {\r\n contexts[currentContextIndex + 1].play();\r\n setCurrentContextIndex(currentContextIndex + 1);\r\n }\r\n };\r\n //////////[ Build UI ]////////////////////////////////////////////////////////////////////////////\r\n return (react_1.default.createElement(reactstrap_1.Card, { className: \"sb-teamplayer\" },\r\n react_1.default.createElement(reactstrap_1.CardHeader, null,\r\n react_1.default.createElement(reactstrap_1.Row, null,\r\n react_1.default.createElement(reactstrap_1.Col, { xs: \"6\" },\r\n react_1.default.createElement(\"h5\", { className: \"h3 mb-0\" }, \"Participants\")),\r\n react_1.default.createElement(reactstrap_1.Col, null,\r\n react_1.default.createElement(controls_1.PlayButton, { onToggle: onPlayToggle, context: contexts[currentContextIndex] })))),\r\n react_1.default.createElement(reactstrap_1.CardBody, null,\r\n react_1.default.createElement(\"ul\", { className: \"list-group list-group-flush list my--3\" }, clips.map((clip, key) => {\r\n return (react_1.default.createElement(GroupPlayerRow_1.GroupPlayerRow, { key: key, clip: clip },\r\n react_1.default.createElement(SoundScrubber2_1.Scrubber2, { context: contexts[key] })));\r\n })))));\r\n};\r\nexports.GroupPlayer = GroupPlayer;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SoloPlayer = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst Player_1 = require(\"./Player\");\r\nconst controls_1 = require(\"./controls\");\r\nconst SoloPlayer = (props) => {\r\n var _a, _b, _c, _d, _e, _f;\r\n // Not all clips are valid for display\r\n const allValidClips = (_c = (_b = (_a = props.session) === null || _a === void 0 ? void 0 : _a.prompts[0].clips) === null || _b === void 0 ? void 0 : _b.filter((i) => i.clipType != api_1.ClipType.RawClip && i.clipType != api_1.ClipType.RawTranscript)) !== null && _c !== void 0 ? _c : [];\r\n const clip = allValidClips[0];\r\n const displayName = api_1.Utils.userDisplay(clip.contributor);\r\n const imageUrl = (_d = clip.contributor.imageSrc) !== null && _d !== void 0 ? _d : api_1.SoundbiteApiConfig.imgAvatarUrl;\r\n const videoRef = react_1.default.useRef(null);\r\n const [isVideo, setIsVideo] = (0, react_1.useState)(false);\r\n const [isVideoLoading, setIsVideoLoading] = (0, react_1.useState)(true);\r\n /**\r\n * Handles event that fires when player establishes a media context. This helps determine whether\r\n * the video components should be displayed to users.\r\n */\r\n function onContext(context) {\r\n // Set media duration\r\n context.duration = clip.seconds;\r\n // Setup Video (if applicable)\r\n const isVideoValue = context.isVideo;\r\n if (isVideo != isVideoValue) {\r\n setIsVideo(isVideoValue);\r\n }\r\n if (props.onContext) {\r\n props.onContext(context);\r\n }\r\n }\r\n function onLoaded() {\r\n setIsVideoLoading(false);\r\n }\r\n function onLoading() {\r\n setIsVideoLoading(true);\r\n }\r\n return (react_1.default.createElement(controls_1.Loader, { isLoadedWhen: props.session != null },\r\n react_1.default.createElement(controls_1.ShowWhen, { is: isVideo, isDisplayBased: true },\r\n react_1.default.createElement(controls_1.Loader, { isDisplayBased: true, isLoadedWhen: !isVideoLoading || true },\r\n react_1.default.createElement(\"video\", { className: \"sb-video mb-2\", ref: videoRef, \"webkit-playsinline\": true.toString(), playsInline: true, onLoadStart: onLoading, onLoadedMetadata: onLoaded }))),\r\n react_1.default.createElement(\"div\", { className: \"sb-soloplayer sb-cover-modal-body d-flex flex-row\" },\r\n react_1.default.createElement(controls_1.ShowWhen, { is: clip != null },\r\n react_1.default.createElement(\"div\", { className: \"d-none d-sm-block align-self-center mr-1 px-0\" },\r\n react_1.default.createElement(\"span\", { className: \"avatar rounded-circle\" },\r\n react_1.default.createElement(\"img\", { alt: \"Avatar\", src: imageUrl }))),\r\n react_1.default.createElement(\"div\", { className: \"align-self-center mx-1 px-0\" },\r\n react_1.default.createElement(\"h4\", { className: \"mb-0\" }, displayName)),\r\n react_1.default.createElement(Player_1.Player, { clip: clip, allowDownload: props.allowDownload, videoElement: videoRef === null || videoRef === void 0 ? void 0 : videoRef.current, onContext: onContext, onFirstPlay: props.onFirstPlay, onMediaError: props.onMediaError, isPublic: ((_e = props.session) === null || _e === void 0 ? void 0 : _e.sessionSecurity) == api_1.SessionSecurityType.Public, autoPlay: props.autoPlay })),\r\n react_1.default.createElement(controls_1.ShowWhen, { is: clip === undefined },\r\n react_1.default.createElement(\"div\", null,\r\n react_1.default.createElement(\"h1\", null,\r\n \"Unable to Load Clip for Session \", (_f = props.session) === null || _f === void 0 ? void 0 :\r\n _f.name))))));\r\n};\r\nexports.SoloPlayer = SoloPlayer;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionDetailWidget = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst sanitize_html_1 = __importDefault(require(\"sanitize-html\"));\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst components_1 = require(\"../components\");\r\nconst store_1 = require(\"../store\");\r\nconst TranscriptViewer_1 = require(\"../components/controls/TranscriptViewer\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst SessionSummary_1 = require(\"../components/controls/SessionSummary\");\r\nconst SessionReactions_1 = require(\"../components/SessionReactions\");\r\nconst SessionComments_1 = require(\"../components/controls/SessionComments\");\r\nexports.SessionDetailWidget = (0, mobx_react_lite_1.observer)((props) => {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\r\n let [cleanPromptContext, setCleanPromptContext] = react_1.default.useState(\"\");\r\n let [showTranscript, setShowTranscript] = react_1.default.useState(false);\r\n let [showWizard, setShowWizard] = react_1.default.useState(false);\r\n let [showComments, setShowComments] = react_1.default.useState(false);\r\n let [showAudience, setShowAudience] = react_1.default.useState(false);\r\n const isAdminOrMore = store_1.WidgetStore.isPersonRole(api_1.PersonRole.Admin);\r\n const isPublic = ((_a = props.session) === null || _a === void 0 ? void 0 : _a.sessionSecurity) === api_1.SessionSecurityType.Public;\r\n const isCommentsEnabled = ((_c = (_b = store_1.WidgetStore.organizations.currentOrg) === null || _b === void 0 ? void 0 : _b.settings.sessions.sessionCommentsEnabled) !== null && _c !== void 0 ? _c : true) &&\r\n ((_e = (_d = props.session) === null || _d === void 0 ? void 0 : _d.sessionCommentPolicy) !== null && _e !== void 0 ? _e : api_1.SessionCommentPolicy.Allowed) ===\r\n api_1.SessionCommentPolicy.Allowed;\r\n (0, react_1.useEffect)(() => {\r\n var _a;\r\n setCleanPromptContext((0, sanitize_html_1.default)(((_a = props.session) === null || _a === void 0 ? void 0 : _a.prompts[0].text) || \"\"));\r\n }, []);\r\n function getTranscriptButtonMsg() {\r\n var _a, _b;\r\n const validClips = getValidClips(props.session);\r\n const state = (_b = (_a = validClips[0]) === null || _a === void 0 ? void 0 : _a.transcriptState) !== null && _b !== void 0 ? _b : api_1.TranscriptState.None;\r\n if (showTranscript) {\r\n return \"Transcript\";\r\n }\r\n else {\r\n switch (state) {\r\n case api_1.TranscriptState.Available:\r\n return \"Transcript\";\r\n case api_1.TranscriptState.Requested:\r\n return \"Transcript Processing\";\r\n default:\r\n return \"Transcript Error\";\r\n }\r\n }\r\n }\r\n function getWizardBtnMsg() {\r\n var _a, _b;\r\n const validClips = getValidClips(props.session);\r\n const state = (_b = (_a = validClips[0]) === null || _a === void 0 ? void 0 : _a.transcriptState) !== null && _b !== void 0 ? _b : api_1.TranscriptState.None;\r\n if (showWizard) {\r\n return \"Wizard\";\r\n }\r\n else {\r\n switch (state) {\r\n case api_1.TranscriptState.Available:\r\n return \"Wizard\";\r\n case api_1.TranscriptState.Requested:\r\n return \"Wizard Processing\";\r\n default:\r\n return \"Wizard Error\";\r\n }\r\n }\r\n }\r\n function isTranscriptBtnVisible() {\r\n var _a, _b;\r\n const validClips = getValidClips(props.session);\r\n const state = (_b = (_a = validClips[0]) === null || _a === void 0 ? void 0 : _a.transcriptState) !== null && _b !== void 0 ? _b : api_1.TranscriptState.None;\r\n return state != api_1.TranscriptState.None;\r\n }\r\n function isTranscriptBtnEnabled() {\r\n var _a, _b;\r\n const validClips = getValidClips(props.session);\r\n const state = (_b = (_a = validClips[0]) === null || _a === void 0 ? void 0 : _a.transcriptState) !== null && _b !== void 0 ? _b : api_1.TranscriptState.None;\r\n return state == api_1.TranscriptState.Available;\r\n }\r\n function onShowTranscript() {\r\n const isShow = !showTranscript;\r\n setShowTranscript(isShow);\r\n if (isShow) {\r\n setShowAudience(false);\r\n setShowWizard(false);\r\n setShowComments(false);\r\n }\r\n }\r\n function onShowWizard() {\r\n const isShow = !showWizard;\r\n setShowWizard(isShow);\r\n if (isShow) {\r\n setShowAudience(false);\r\n setShowTranscript(false);\r\n setShowComments(false);\r\n }\r\n }\r\n function onShowComments() {\r\n const isShow = !showComments;\r\n setShowComments(isShow);\r\n if (isShow) {\r\n setShowAudience(false);\r\n setShowTranscript(false);\r\n setShowWizard(false);\r\n }\r\n }\r\n function onShowAudienceClick() {\r\n const isShow = !showAudience;\r\n setShowAudience(isShow);\r\n if (isShow) {\r\n setShowComments(false);\r\n setShowTranscript(false);\r\n setShowWizard(false);\r\n }\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n function iAmHost(session) {\r\n if ((session === null || session === void 0 ? void 0 : session.participants) == null) {\r\n return false;\r\n }\r\n const myHostParticipants = session.myParticipation.filter((p) => p.participantRole >= api_1.ParticipantRole.Host &&\r\n p.person.user.route === props.currentUserRoute);\r\n return myHostParticipants.length > 0;\r\n }\r\n function iAmParticipant(session) {\r\n if ((session === null || session === void 0 ? void 0 : session.participants) == null) {\r\n return false;\r\n }\r\n const myAudienceParticipants = session.myParticipation.filter((p) => (p.participantRole === api_1.ParticipantRole.Audience ||\r\n p.participantRole === api_1.ParticipantRole.Participant) &&\r\n p.person.user.route === props.currentUserRoute);\r\n return myAudienceParticipants.length > 0;\r\n }\r\n /**\r\n * Gets an array containing only those clips in the session which are valid for consumption.\r\n */\r\n function getValidClips(session) {\r\n var _a, _b, _c;\r\n return ((_c = (_b = (_a = session === null || session === void 0 ? void 0 : session.prompts[0]) === null || _a === void 0 ? void 0 : _a.clips) === null || _b === void 0 ? void 0 : _b.filter((i) => i.clipType != api_1.ClipType.RawClip &&\r\n i.clipType != api_1.ClipType.RawTranscript)) !== null && _c !== void 0 ? _c : []);\r\n }\r\n const isAudienceEnabled = store_1.WidgetStore.isPersonRole((_h = (_g = (_f = store_1.WidgetStore.organizations.currentOrg) === null || _f === void 0 ? void 0 : _f.permissions) === null || _g === void 0 ? void 0 : _g.minRoleForAudience) !== null && _h !== void 0 ? _h : api_1.PersonRole.Unknown);\r\n return (react_1.default.createElement(\"div\", { className: \"sb-cover-modal-body\" },\r\n react_1.default.createElement(SessionReactions_1.SessionReactions, { orgRoute: props.orgRoute, sessionRoute: props.sessionRoute, session: props.session, readOnly: !iAmParticipant(props.session) }),\r\n react_1.default.createElement(components_1.ShowWhen, { is: cleanPromptContext.trim().length > 0 },\r\n react_1.default.createElement(\"h3\", { className: \"mb-0 mt-3\" }, \"Call to Action\"),\r\n react_1.default.createElement(\"p\", { dangerouslySetInnerHTML: { __html: cleanPromptContext } })),\r\n react_1.default.createElement(components_1.ShowWhen, { is: isTranscriptBtnVisible() },\r\n react_1.default.createElement(reactstrap_1.Button, { disabled: !isTranscriptBtnEnabled(), onClick: onShowTranscript, color: \"secondary\", size: \"sm\", type: \"button\", outline: !showTranscript, title: \"Transcript\" }, getTranscriptButtonMsg())),\r\n react_1.default.createElement(components_1.ShowWhen, { is: isAudienceEnabled },\r\n react_1.default.createElement(reactstrap_1.Button, { onClick: onShowAudienceClick, color: \"secondary\", size: \"sm\", type: \"button\", outline: !showAudience, title: \"Audience\" }, \"Audience\")),\r\n react_1.default.createElement(components_1.ShowWhen, { is: isCommentsEnabled },\r\n react_1.default.createElement(reactstrap_1.Button, { onClick: onShowComments, color: \"secondary\", size: \"sm\", type: \"button\", outline: !showComments, title: \"Comments\" }, \"Comments\")),\r\n react_1.default.createElement(components_1.ShowWhen, { is: isPublic },\r\n react_1.default.createElement(\"a\", { target: \"_blank\", href: `/public/organizations/${props.orgRoute}/sessions/${props.sessionRoute}`, className: \"btn btn-outline-secondary btn-sm\" }, \"Public Player\")),\r\n react_1.default.createElement(components_1.ShowWhen, { is: showTranscript },\r\n react_1.default.createElement(TranscriptViewer_1.TranscriptViewer, { title: react_1.default.createElement(\"div\", { className: \"form-control-label ttitle\" }, \"Transcript\"), orgRoute: props.orgRoute, sessionRoute: (_j = props.session) === null || _j === void 0 ? void 0 : _j.route, promptRoute: (_l = (_k = props.session) === null || _k === void 0 ? void 0 : _k.prompts[0]) === null || _l === void 0 ? void 0 : _l.route, clipRoute: (_m = getValidClips(props.session)[0]) === null || _m === void 0 ? void 0 : _m.route, isExpanded: showTranscript, transcriptState: getValidClips(props.session)[0].transcriptState })),\r\n react_1.default.createElement(components_1.ShowWhen, { is: false },\r\n react_1.default.createElement(SessionSummary_1.SessionSummary, { className: \"pt-3\", orgRoute: props.orgRoute, sessionRoute: (_o = props.session) === null || _o === void 0 ? void 0 : _o.route })),\r\n react_1.default.createElement(components_1.ShowWhen, { is: showComments },\r\n react_1.default.createElement(SessionComments_1.SessionComments, { className: \"pt-3\", orgRoute: props.orgRoute, sessionRoute: (_p = props.session) === null || _p === void 0 ? void 0 : _p.route })),\r\n react_1.default.createElement(components_1.ShowWhen, { is: isAudienceEnabled },\r\n react_1.default.createElement(\"div\", { className: \"mt-2\" },\r\n react_1.default.createElement(components_1.ParticipantSummary, { session: props.session, isExpandable: false, isExpanded: showAudience, onToggleExpansion: (isExpanded) => {\r\n if (isExpanded != showAudience) {\r\n setShowAudience(isExpanded);\r\n }\r\n } })))));\r\n});\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionSummary = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = require(\"react\");\r\nconst classnames_1 = __importDefault(require(\"classnames\"));\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst SummaryViewer_1 = require(\"./SummaryViewer\");\r\n/***************************************************************************************************\r\n * Constants / Global Variables\r\n **************************************************************************************************/\r\nconst getStyles = () => {\r\n const ret = (0, react_1.css) ``;\r\n return ret;\r\n};\r\nlet styles = undefined;\r\n/** React component for showing a session's transcript */\r\nexports.SessionSummary = (0, mobx_react_lite_1.observer)((props) => {\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n const [currentType, setCurrentType] = (0, react_2.useState)(undefined);\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n function onToggleTab(tabValue) {\r\n if (currentType !== tabValue) {\r\n setCurrentType(tabValue);\r\n }\r\n }\r\n //////////[ Component UI Helper Methods ]/////////////////////////////////////////////////////////\r\n function createTab(title, value) {\r\n const className = (0, classnames_1.default)({ active: currentType === value }, \"sb-tab-btn\");\r\n return ((0, react_1.jsx)(reactstrap_1.NavItem, null,\r\n (0, react_1.jsx)(reactstrap_1.NavLink, { role: \"tab\", \"aria-selected\": currentType === value, className: className, onClick: () => {\r\n onToggleTab(value);\r\n }, title: title }, title)));\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n if (styles == null) {\r\n styles = getStyles();\r\n }\r\n return ((0, react_1.jsx)(\"div\", { className: props.className, css: styles },\r\n (0, react_1.jsx)(\"div\", { className: \"form-control-label ttitle\" }, \"(Beta) Wizard\"),\r\n (0, react_1.jsx)(reactstrap_1.Nav, { className: \"sb-3-tab nav-fill flex-column flex-md-row\", role: \"tablist\" },\r\n createTab(\"Summary\", api_1.SessionSummaryType.Paragraph),\r\n createTab(\"Social\", api_1.SessionSummaryType.Social),\r\n createTab(\"Tweets\", api_1.SessionSummaryType.Tweet),\r\n createTab(\"Blog\", api_1.SessionSummaryType.Blog),\r\n createTab(\"News\", api_1.SessionSummaryType.Newsletter)),\r\n (0, react_1.jsx)(reactstrap_1.TabContent, { activeTab: currentType },\r\n (0, react_1.jsx)(reactstrap_1.TabPane, { tabId: api_1.SessionSummaryType.Paragraph },\r\n (0, react_1.jsx)(SummaryViewer_1.SummaryViewer, { orgRoute: props.orgRoute, sessionRoute: props.sessionRoute, summaryType: currentType, isExpanded: true })),\r\n (0, react_1.jsx)(reactstrap_1.TabPane, { tabId: api_1.SessionSummaryType.Social },\r\n (0, react_1.jsx)(SummaryViewer_1.SummaryViewer, { orgRoute: props.orgRoute, sessionRoute: props.sessionRoute, summaryType: api_1.SessionSummaryType.Social, isExpanded: true })),\r\n (0, react_1.jsx)(reactstrap_1.TabPane, { tabId: api_1.SessionSummaryType.Tweet },\r\n (0, react_1.jsx)(SummaryViewer_1.SummaryViewer, { orgRoute: props.orgRoute, sessionRoute: props.sessionRoute, summaryType: api_1.SessionSummaryType.Tweet, isExpanded: true })),\r\n (0, react_1.jsx)(reactstrap_1.TabPane, { tabId: api_1.SessionSummaryType.Blog },\r\n (0, react_1.jsx)(SummaryViewer_1.SummaryViewer, { orgRoute: props.orgRoute, sessionRoute: props.sessionRoute, summaryType: api_1.SessionSummaryType.Blog, isExpanded: true })),\r\n (0, react_1.jsx)(reactstrap_1.TabPane, { tabId: api_1.SessionSummaryType.Newsletter },\r\n (0, react_1.jsx)(SummaryViewer_1.SummaryViewer, { orgRoute: props.orgRoute, sessionRoute: props.sessionRoute, summaryType: api_1.SessionSummaryType.Newsletter, isExpanded: true })))));\r\n});\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SummaryViewer = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = require(\"react\");\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst Loader_1 = require(\"./Loader\");\r\nconst ShowWhen_1 = require(\"./ShowWhen\");\r\nconst __1 = require(\"../..\");\r\n/***************************************************************************************************\r\n * Constants / Global Variables\r\n **************************************************************************************************/\r\nconst getStyles = () => {\r\n const ret = (0, react_1.css) `\r\n & > ul:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n & .sb-participant-block svg {\r\n margin-right: 0.25rem;\r\n }\r\n\r\n .sb-pg-expandable:hover {\r\n background-color: ${__1.GlobalTheme.current.colors.neutrals.n300};\r\n cursor: pointer;\r\n }\r\n\r\n .sb-block-list {\r\n padding-left: 0;\r\n }\r\n\r\n .sb-block-list:empty {\r\n display: none;\r\n }\r\n\r\n .sb-block-list li {\r\n display: inline-block;\r\n list-style: none;\r\n color: ${__1.GlobalTheme.current.colors.neutrals.n800};\r\n background-color: ${__1.GlobalTheme.current.colors.neutrals.n100};\r\n border-radius: 4px;\r\n padding: 2px 6px;\r\n margin: 2px;\r\n }\r\n\r\n .sb-block-list li:first-of-type {\r\n margin-left: 0;\r\n }\r\n\r\n .sb-transcript-viewer > ul:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n .sb-transcript-viewer .sb-participant-block i {\r\n margin-right: 0.25rem;\r\n }\r\n\r\n .ttitle {\r\n margin-top: 8px;\r\n }\r\n\r\n .tsection {\r\n margin-bottom: 8px;\r\n margin-top: 8px;\r\n }\r\n `;\r\n return ret;\r\n};\r\nlet styles = undefined;\r\n/***************************************************************************************************\r\n * State Enum\r\n **************************************************************************************************/\r\nvar ControlState;\r\n(function (ControlState) {\r\n ControlState[ControlState[\"NotRequested\"] = 0] = \"NotRequested\";\r\n ControlState[ControlState[\"Requested\"] = 1] = \"Requested\";\r\n ControlState[ControlState[\"Retrieved\"] = 2] = \"Retrieved\";\r\n ControlState[ControlState[\"Error\"] = 3] = \"Error\";\r\n ControlState[ControlState[\"CannotRequest\"] = 4] = \"CannotRequest\";\r\n})(ControlState || (ControlState = {}));\r\n/** React component for showing a session's transcript */\r\nexports.SummaryViewer = (0, mobx_react_lite_1.observer)((props) => {\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n const [isExpanded, setIsExpanded] = (0, react_2.useState)(props.isExpanded);\r\n const [state, setState] = (0, react_2.useState)(ControlState.NotRequested);\r\n const [summary, setSummary] = (0, react_2.useState)(undefined);\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n // Make sure to reset the control\r\n (0, react_2.useEffect)(() => {\r\n setState(ControlState.NotRequested);\r\n setSummary(undefined);\r\n }, [props.orgRoute, props.sessionRoute]);\r\n (0, react_2.useEffect)(() => {\r\n setIsExpanded(props.isExpanded);\r\n if (state != ControlState.Retrieved && props.isExpanded === true) {\r\n load();\r\n }\r\n }, [props.isExpanded]);\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n function title() {\r\n switch (props.summaryType) {\r\n case api_1.SessionSummaryType.Paragraph:\r\n return \"Summary\";\r\n case api_1.SessionSummaryType.Social:\r\n return \"Social\";\r\n case api_1.SessionSummaryType.Tweet:\r\n return \"Tweets\";\r\n case api_1.SessionSummaryType.Blog:\r\n return \"Blog\";\r\n case api_1.SessionSummaryType.Newsletter:\r\n return \"News\";\r\n default:\r\n return \"Summary\";\r\n }\r\n }\r\n /**\r\n * Calls our API to acquire the summary\r\n */\r\n function load() {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // Make sure we have all necessary information to continue\r\n if (props.orgRoute && props.sessionRoute) {\r\n setState(ControlState.Requested);\r\n // Attempt to get the URL of the transcript\r\n try {\r\n let sum = yield api_1.SessionsService.summaryAsync(props.orgRoute, props.sessionRoute, (_a = props.summaryType) !== null && _a !== void 0 ? _a : api_1.SessionSummaryType.Paragraph);\r\n if (sum == null || sum.summary == null) {\r\n setState(ControlState.CannotRequest);\r\n }\r\n else {\r\n sum.summary = (_b = sum.summary) === null || _b === void 0 ? void 0 : _b.trim();\r\n setSummary(sum);\r\n setState(ControlState.Retrieved);\r\n }\r\n }\r\n catch (ex) {\r\n var msg = `Failed to retrieve session summary for session '${props.sessionRoute}' in organization ${props.orgRoute}`;\r\n api_1.Logger.LogError(msg, ex);\r\n setState(ControlState.Error);\r\n throw new Error(msg);\r\n }\r\n }\r\n else {\r\n // We are missing key information so we cannot get the transcript\r\n var msg = \"Failed to retrieve summary because of missing information.\";\r\n api_1.Logger.LogError(msg);\r\n setState(ControlState.CannotRequest);\r\n throw new Error(msg);\r\n }\r\n });\r\n }\r\n /**\r\n * Determines the format/version of the transcript and offloads the processing\r\n * to the appropriate transcript text renderer.\r\n */\r\n function RenderSummary() {\r\n try {\r\n if (summary != null &&\r\n summary.summary != null &&\r\n summary.summary.trim().length > 0) {\r\n return ((0, react_1.jsx)(\"div\", { style: { whiteSpace: \"pre-line\" } },\r\n (0, react_1.jsx)(\"div\", null, summary === null || summary === void 0 ? void 0 : summary.summary),\r\n (0, react_1.jsx)(\"div\", { className: \"text-muted text-sm mt-1\" }, \"Powered by generative AI. May occasionally generate biased or incorrect information with limited knowledge up to the year 2021.\")));\r\n }\r\n else {\r\n return (0, react_1.jsx)(\"div\", null, \"Summary not available\");\r\n }\r\n }\r\n catch (_a) {\r\n return (0, react_1.jsx)(\"div\", null, \"Error Displaying Summary\");\r\n }\r\n }\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n //////////[ Component UI Helper Methods ]/////////////////////////////////////////////////////////\r\n function renderComponent() {\r\n if (styles == null) {\r\n styles = getStyles();\r\n }\r\n return ((0, react_1.jsx)(\"span\", { className: `sb-transcript-viewer ${props.className}`, css: styles },\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: isExpanded && state == ControlState.Requested },\r\n (0, react_1.jsx)(Loader_1.Loader, null)),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: isExpanded && state == ControlState.Retrieved }, RenderSummary()),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: isExpanded && state == ControlState.Error },\r\n (0, react_1.jsx)(\"div\", null, \"There was an issue loading the summary\")),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: isExpanded && state == ControlState.CannotRequest },\r\n (0, react_1.jsx)(\"div\", null, \"Session is missing information to request the summary\"))));\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n return renderComponent();\r\n});\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionComments = exports.CommentMode = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = __importStar(require(\"react\"));\r\nconst mobx_react_lite_1 = require(\"mobx-react-lite\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst fontawesome_svg_core_1 = require(\"@fortawesome/fontawesome-svg-core\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst ShowWhen_1 = require(\"./ShowWhen\");\r\nconst Loader_1 = require(\"./Loader\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst ErrorDlg_1 = require(\"../ErrorDlg\");\r\nconst Avatar_1 = require(\"./Avatar\");\r\nconst styles_1 = require(\"../../styles\");\r\nconst SessionCommentCreate_1 = require(\"./SessionCommentCreate\");\r\nconst store_1 = require(\"../../store\");\r\nconst SessionCommentEdit_1 = require(\"./SessionCommentEdit\");\r\nconst SessionCommentDelete_1 = require(\"./SessionCommentDelete\");\r\n/***************************************************************************************************\r\n * Constants / Global Variables\r\n **************************************************************************************************/\r\nfontawesome_svg_core_1.library.add(free_solid_svg_icons_1.faPlus, free_solid_svg_icons_1.faTrash, free_solid_svg_icons_1.faComment);\r\nconst getStyles = () => {\r\n const ret = (0, react_1.css) `\r\n .sb-comment-list {\r\n max-height: 300px;\r\n overflow-y: auto;\r\n width: 100%;\r\n\r\n table {\r\n width: 100%;\r\n \r\n tr {\r\n width: 100%;\r\n\r\n form-group {\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n .sb-row-delete {\r\n border-left: 2px solid ${styles_1.GlobalTheme.current.colors.bootstrap.danger};\r\n }\r\n }\r\n\r\n .sb-clear-comment-btn {\r\n border: 0 !important;\r\n }\r\n .sb-addon-btn {\r\n transform: translateY(0px) !important;\r\n box-shadow: none !important;\r\n\r\n &:active {\r\n outline: 1px;\r\n }\r\n\r\n svg {\r\n height: 1.25rem;\r\n padding: 3px 3px 0 3px;\r\n }\r\n }\r\n\r\n .sb-comments-table .table th,\r\n .sb-comments-table .table td {\r\n border: 0;\r\n }\r\n\r\n .sb-infinite-table {\r\n min-height: 150px;\r\n height: auto;\r\n max-height: 300px;\r\n }\r\n\r\n .alert .text-muted {\r\n color: ${styles_1.GlobalTheme.current.colors.neutrals.min} !important;\r\n }\r\n `;\r\n return ret;\r\n};\r\nlet styles = undefined;\r\nvar CommentMode;\r\n(function (CommentMode) {\r\n CommentMode[\"Create\"] = \"create\";\r\n CommentMode[\"Edit\"] = \"edit\";\r\n CommentMode[\"Delete\"] = \"delete\";\r\n})(CommentMode = exports.CommentMode || (exports.CommentMode = {}));\r\n/** React component for showing a session's transcript */\r\nexports.SessionComments = (0, mobx_react_lite_1.observer)((props) => {\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n var _a, _b;\r\n // State\r\n const [isLoading, setIsLoading] = (0, react_2.useState)(true);\r\n const [comments, setComments] = (0, react_2.useState)([]);\r\n const [targetComment, setTargetComment] = (0, react_2.useState)();\r\n const [mode, setMode] = (0, react_2.useState)(CommentMode.Create);\r\n const [count, setCount] = (0, react_2.useState)(undefined);\r\n // Refs\r\n const scrollableList = (0, react_2.useRef)(null);\r\n const actionElem = (0, react_2.useRef)(null);\r\n // Calculated\r\n const hasComments = count != null && count > 0;\r\n const currentPersonRoute = (_b = (_a = store_1.WidgetStore.organizations.currentOrg) === null || _a === void 0 ? void 0 : _a.details.me) === null || _b === void 0 ? void 0 : _b.route;\r\n //////////[ Component UI Helper Methods ]/////////////////////////////////////////////////////////\r\n const restoreScroll = () => {\r\n if (scrollableList.current) {\r\n const top = scrollableList.current.scrollTop;\r\n setTimeout(() => {\r\n if (scrollableList.current) {\r\n scrollableList.current.scrollTop = top;\r\n }\r\n });\r\n }\r\n };\r\n const ensureActionsInView = () => {\r\n if (actionElem.current) {\r\n actionElem.current.scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n };\r\n const setCreateMode = () => {\r\n setTargetComment(undefined);\r\n setMode(CommentMode.Create);\r\n };\r\n const setEditMode = (comment) => {\r\n setMode(CommentMode.Edit);\r\n setTargetComment(comment);\r\n ensureActionsInView();\r\n restoreScroll();\r\n };\r\n const setDeleteMode = (comment) => {\r\n setMode(CommentMode.Delete);\r\n setTargetComment(comment);\r\n ensureActionsInView();\r\n restoreScroll();\r\n };\r\n const loadComments = (page) => {\r\n setComments(page.result);\r\n scrollToBottom();\r\n };\r\n const load = () => __awaiter(void 0, void 0, void 0, function* () {\r\n if (props.orgRoute == null || props.sessionRoute == null) {\r\n return;\r\n }\r\n try {\r\n setIsLoading(true);\r\n const firstCommentsPage = yield api_1.SessionCommentsService.readAllSessionComments(props.orgRoute, props.sessionRoute, { includesCounts: true });\r\n loadComments(firstCommentsPage);\r\n setCount(firstCommentsPage.totalCount);\r\n }\r\n catch (err) {\r\n ErrorDlg_1.ErrorDlg.show(err, \"Error Loading Session Comments\");\r\n }\r\n setIsLoading(false);\r\n });\r\n function scrollToBottom() {\r\n setTimeout(() => {\r\n if (scrollableList.current) {\r\n const scrollHeight = scrollableList.current.scrollHeight;\r\n scrollableList.current.scrollTop = scrollHeight;\r\n }\r\n });\r\n }\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n (0, react_2.useEffect)(() => {\r\n const firstLoad = () => {\r\n load();\r\n };\r\n firstLoad();\r\n }, []);\r\n (0, react_2.useEffect)(() => { }, [targetComment]);\r\n // Whenever comments is set, scroll to the bottom of the list\r\n (0, react_2.useEffect)(() => {\r\n scrollToBottom();\r\n }, [comments]);\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n function onEdit(comment) {\r\n setEditMode(comment);\r\n }\r\n function onDelete(comment) {\r\n setDeleteMode(comment);\r\n }\r\n function onCommit() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield load();\r\n setCreateMode();\r\n });\r\n }\r\n function onCancel() {\r\n setCreateMode();\r\n }\r\n function commentRowContent(comment, person, isActionable = true) {\r\n return ((0, react_1.jsx)(react_2.default.Fragment, null,\r\n (0, react_1.jsx)(\"span\", { className: \"font-weight-bold pr-1\" }, api_1.Utils.userDisplay(person.user)),\r\n comment.content,\r\n (0, react_1.jsx)(\"div\", { className: \"sb-comment-subheader text-muted text-sm\", title: api_1.Utils.formatDateTime(comment.createdUtc) },\r\n api_1.Utils.formatRelativeDate(comment.createdUtc),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: currentPersonRoute === comment.person.route && isActionable },\r\n (0, react_1.jsx)(\"button\", { onClick: () => onEdit(comment), className: \"sb-link-btn text-muted\", title: \"Edit Comment\" }, \"Edit\"),\r\n (0, react_1.jsx)(\"button\", { onClick: () => onDelete(comment), className: \"sb-link-btn text-muted\", title: \"Delete Comment\" }, \"Delete\")))));\r\n }\r\n function wrappedCommentRowContent(comment, person) {\r\n const isCurrent = comment.route === (targetComment === null || targetComment === void 0 ? void 0 : targetComment.route);\r\n const isEdit = mode === CommentMode.Edit;\r\n const isDelete = mode === CommentMode.Delete;\r\n if (isCurrent && (isEdit || isDelete)) {\r\n return ((0, react_1.jsx)(reactstrap_1.Alert, { color: isEdit ? \"warning\" : \"danger\" }, commentRowContent(comment, person, false)));\r\n }\r\n else {\r\n return commentRowContent(comment, person);\r\n }\r\n }\r\n function commentsRow(comment, index) {\r\n const person = comment === null || comment === void 0 ? void 0 : comment.person;\r\n return ((0, react_1.jsx)(\"tr\", { key: comment.route },\r\n (0, react_1.jsx)(\"th\", { scope: \"row\" },\r\n (0, react_1.jsx)(Avatar_1.Avatar, { user: person.user, showName: false, sizingClassName: \"\" })),\r\n (0, react_1.jsx)(\"td\", { className: \"\" }, wrappedCommentRowContent(comment, person))));\r\n }\r\n const Comments = () => {\r\n return ((0, react_1.jsx)(\"table\", null,\r\n (0, react_1.jsx)(\"tbody\", null, comments.map((comment, index) => {\r\n return commentsRow(comment, index);\r\n }))));\r\n };\r\n const List = () => {\r\n return ((0, react_1.jsx)(\"div\", { className: \"sb-comment-list pb-2\", ref: scrollableList },\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: !hasComments },\r\n (0, react_1.jsx)(\"span\", { className: \"text-muted\" }, \"Be The First To Comment\")),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: hasComments },\r\n (0, react_1.jsx)(Comments, null))));\r\n };\r\n // Setting up render state\r\n if (styles == null) {\r\n styles = getStyles();\r\n }\r\n const commentClass = \"rounded border-1\";\r\n const combinedClass = props.className != null\r\n ? `${props.className} ${commentClass}`\r\n : commentClass;\r\n return ((0, react_1.jsx)(\"div\", { className: combinedClass, css: styles },\r\n (0, react_1.jsx)(\"h4\", null, \"Comments\"),\r\n (0, react_1.jsx)(Loader_1.Loader, { isLoadedWhen: !isLoading, isDisplayBased: true },\r\n (0, react_1.jsx)(List, null),\r\n (0, react_1.jsx)(\"div\", { ref: actionElem },\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: mode === CommentMode.Create },\r\n (0, react_1.jsx)(SessionCommentCreate_1.SessionCommentCreate, { orgRoute: props.orgRoute, sessionRoute: props.sessionRoute, onCommit: onCommit, maxCharacters: 150 })),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: mode === CommentMode.Edit },\r\n (0, react_1.jsx)(SessionCommentEdit_1.SessionCommentEdit, { orgRoute: props.orgRoute, sessionRoute: props.sessionRoute, comment: targetComment, onCommit: onCommit, onCancel: onCancel, maxCharacters: 150 })),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: mode === CommentMode.Delete },\r\n (0, react_1.jsx)(SessionCommentDelete_1.SessionCommentDelete, { orgRoute: props.orgRoute, sessionRoute: props.sessionRoute, comment: targetComment, onCommit: onCommit, onCancel: onCancel }))))));\r\n});\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionCommentCreate = void 0;\r\n/** @jsx jsx */\r\nconst react_1 = require(\"@emotion/react\");\r\nconst react_2 = require(\"react\");\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst fontawesome_svg_core_1 = require(\"@fortawesome/fontawesome-svg-core\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst SbButton_1 = require(\"../SbButton\");\r\nconst Loader_1 = require(\"./Loader\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst ErrorDlg_1 = require(\"../ErrorDlg\");\r\nconst ShowWhen_1 = require(\"./ShowWhen\");\r\n/***************************************************************************************************\r\n * Constants / Global Variables\r\n **************************************************************************************************/\r\nfontawesome_svg_core_1.library.add(free_solid_svg_icons_1.faPlus, free_solid_svg_icons_1.faTrash, free_solid_svg_icons_1.faComment);\r\nconst getStyles = () => {\r\n const ret = (0, react_1.css) ``;\r\n return ret;\r\n};\r\nlet styles = undefined;\r\n/**\r\n * Control for taking in text and submitting it\r\n * @param props\r\n * @returns\r\n */\r\nconst SessionCommentCreate = (props) => {\r\n var _a;\r\n const maxCharacters = (_a = props.maxCharacters) !== null && _a !== void 0 ? _a : 150;\r\n const [newComment, setNewComment] = (0, react_2.useState)(\"\");\r\n const [isSaving, setIsSaving] = (0, react_2.useState)(false);\r\n const inputRef = (0, react_2.useRef)(null);\r\n /**\r\n * Callback for async adding a comment and resetting the submit box\r\n * @returns\r\n */\r\n function onCommit() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const content = newComment.trim();\r\n // Can't submit something too long\r\n if (content.length > maxCharacters || content.length === 0) {\r\n return;\r\n }\r\n if (props.orgRoute == null || props.sessionRoute == null) {\r\n return;\r\n }\r\n setIsSaving(true);\r\n yield api_1.SessionCommentsService.createSessionComment(props.orgRoute, props.sessionRoute, { content });\r\n setNewComment(\"\");\r\n setIsSaving(false);\r\n yield props.onCommit();\r\n // After we're done processing, set focus to the input\r\n // This focus interaction is the reason this control and its parent must use\r\n // isDisplayBased={true} in its attributes; perhaps figure out a better way\r\n if (inputRef.current) {\r\n inputRef.current.focus();\r\n }\r\n }\r\n catch (err) {\r\n ErrorDlg_1.ErrorDlg.show(err, \"Error Creating Comment\");\r\n }\r\n });\r\n }\r\n const onKeyDown = (event) => {\r\n if (event.key === \"Enter\") {\r\n onCommit();\r\n }\r\n };\r\n /** Re-render when comments change */\r\n (0, react_2.useEffect)(() => { }, [newComment]);\r\n // Setting up render state\r\n if (styles == null) {\r\n styles = getStyles();\r\n }\r\n const isWarning = newComment.length > maxCharacters - 50;\r\n const isBeyondLimit = newComment.length > maxCharacters;\r\n let warningClass = \"\";\r\n if (isWarning) {\r\n warningClass = \"text-warning\";\r\n }\r\n if (isBeyondLimit) {\r\n warningClass = \"text-danger\";\r\n }\r\n return ((0, react_1.jsx)(\"div\", { className: \"sb-comment-create mt-2\", css: styles },\r\n (0, react_1.jsx)(Loader_1.Loader, { isLoadedWhen: !isSaving, isDisplayBased: true },\r\n (0, react_1.jsx)(reactstrap_1.FormGroup, null,\r\n (0, react_1.jsx)(reactstrap_1.InputGroup, { \"aria-disabled\": isSaving },\r\n (0, react_1.jsx)(\"input\", { type: \"text\", className: \"form-control\", placeholder: \"Add Comment...\", \"aria-label\": \"Title\", \"aria-describedby\": \"basic-addon1\", onChange: (e) => setNewComment(e.target.value), disabled: isSaving, title: \"Add Comment\", value: newComment, onKeyDown: onKeyDown, maxLength: maxCharacters, ref: inputRef }),\r\n (0, react_1.jsx)(reactstrap_1.InputGroupAddon, { className: \"sb-addon-btn sb-add-comment-btn-addon\", addonType: \"append\" },\r\n (0, react_1.jsx)(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.Primary, size: SbButton_1.SbButtonSize.Small, btnClassName: \"sb-addon-btn sb-add-comment-btn\", title: \"Add Comment\", onClick: onCommit, icon: free_solid_svg_icons_1.faArrowUp, disabled: isBeyondLimit }))),\r\n (0, react_1.jsx)(ShowWhen_1.ShowWhen, { is: isWarning },\r\n (0, react_1.jsx)(\"div\", { className: `${warningClass} text-sm` },\r\n \"Max \",\r\n newComment.length,\r\n \"/\",\r\n maxCharacters,\r\n \" characters allowed\"))))));\r\n};\r\nexports.SessionCommentCreate = SessionCommentCreate;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionCommentEdit = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst fontawesome_svg_core_1 = require(\"@fortawesome/fontawesome-svg-core\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst SbButton_1 = require(\"../SbButton\");\r\nconst Loader_1 = require(\"./Loader\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst ErrorDlg_1 = require(\"../ErrorDlg\");\r\nconst FaPrepend_1 = require(\"./FaPrepend\");\r\nconst ShowWhen_1 = require(\"./ShowWhen\");\r\n/***************************************************************************************************\r\n * Constants / Global Variables\r\n **************************************************************************************************/\r\nfontawesome_svg_core_1.library.add(free_solid_svg_icons_1.faArrowUp, free_solid_svg_icons_1.faCircleXmark);\r\n/**\r\n * Control for taking in text and submitting it\r\n * @param props\r\n * @returns\r\n */\r\nconst SessionCommentEdit = (props) => {\r\n var _a, _b, _c, _d, _e;\r\n const maxCharacters = (_a = props.maxCharacters) !== null && _a !== void 0 ? _a : 150;\r\n const [isSaving, setIsSaving] = (0, react_1.useState)(false);\r\n const [editedContent, setEditedContent] = (0, react_1.useState)((_b = props.comment) === null || _b === void 0 ? void 0 : _b.content);\r\n const content = (_c = editedContent === null || editedContent === void 0 ? void 0 : editedContent.trim()) !== null && _c !== void 0 ? _c : \"\";\r\n const contentLength = (_d = content === null || content === void 0 ? void 0 : content.trim().length) !== null && _d !== void 0 ? _d : 0;\r\n (0, react_1.useEffect)(() => {\r\n var _a;\r\n setEditedContent((_a = props.comment) === null || _a === void 0 ? void 0 : _a.content);\r\n }, [props.comment]);\r\n /**\r\n * Callback for async adding a comment and resetting the submit box\r\n * @returns\r\n */\r\n function onConfirmEdit() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n // Can't submit if props had junk in them\r\n if (props.orgRoute == null ||\r\n props.sessionRoute == null ||\r\n props.comment == null) {\r\n return;\r\n }\r\n // new content needs to fit parameters\r\n if (content.length > maxCharacters || content.length === 0) {\r\n return;\r\n }\r\n // Do the update lifecycle\r\n setIsSaving(true);\r\n yield api_1.SessionCommentsService.updateSessionComment(props.orgRoute, props.sessionRoute, props.comment.route, { content });\r\n yield props.onCommit();\r\n setIsSaving(false);\r\n }\r\n catch (err) {\r\n ErrorDlg_1.ErrorDlg.show(err, \"Error Updating Comment\");\r\n }\r\n });\r\n }\r\n const onKeyDown = (event) => {\r\n if (event.key === \"Enter\") {\r\n onConfirmEdit();\r\n }\r\n };\r\n function onCancel() {\r\n props.onCancel();\r\n }\r\n const isWarning = contentLength > maxCharacters - 50;\r\n const isBeyondLimit = contentLength > maxCharacters;\r\n let warningClass = \"\";\r\n if (isWarning) {\r\n warningClass = \"text-warning\";\r\n }\r\n if (isBeyondLimit) {\r\n warningClass = \"text-danger\";\r\n }\r\n return (react_1.default.createElement(\"div\", { className: \"sb-comment-edit mt-2\" },\r\n react_1.default.createElement(Loader_1.Loader, { isLoadedWhen: !isSaving },\r\n react_1.default.createElement(reactstrap_1.FormGroup, { className: \"pr-2 mb-0\" },\r\n react_1.default.createElement(reactstrap_1.InputGroup, { \"aria-disabled\": isSaving },\r\n react_1.default.createElement(FaPrepend_1.FaPrepend, { icon: \"pen\" }),\r\n react_1.default.createElement(\"input\", { type: \"text\", className: \"form-control\", placeholder: \"Updated Content...\", \"aria-label\": \"Updated Content\", \"aria-describedby\": \"basic-addon1\", value: editedContent, onChange: (e) => setEditedContent(e.target.value), disabled: isSaving, title: \"Updated Content\", onKeyDown: onKeyDown }),\r\n react_1.default.createElement(reactstrap_1.InputGroupAddon, { className: \"sb-addon-btn\", addonType: \"append\" },\r\n react_1.default.createElement(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.Primary, size: SbButton_1.SbButtonSize.Small, btnClassName: \"sb-addon-btn\", title: \"Confirm Edit\", onClick: onConfirmEdit, icon: free_solid_svg_icons_1.faArrowUp })),\r\n react_1.default.createElement(reactstrap_1.InputGroupAddon, { className: \"sb-addon-btn\", addonType: \"append\" },\r\n react_1.default.createElement(SbButton_1.SbButton, { type: SbButton_1.SbButtonType.Secondary, size: SbButton_1.SbButtonSize.Small, btnClassName: \"sb-addon-btn\", title: \"Cancel Edit\", onClick: onCancel, icon: free_solid_svg_icons_1.faCircleXmark })))),\r\n react_1.default.createElement(\"div\", { className: \"text-sm text-muted\" }, api_1.Utils.formatRelativeDate((_e = props.comment) === null || _e === void 0 ? void 0 : _e.createdUtc)),\r\n react_1.default.createElement(ShowWhen_1.ShowWhen, { is: isWarning },\r\n react_1.default.createElement(\"div\", { className: `${warningClass} text-sm` },\r\n \"Max \",\r\n content.length,\r\n \"/\",\r\n maxCharacters,\r\n \" characters allowed\")))));\r\n};\r\nexports.SessionCommentEdit = SessionCommentEdit;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SessionCommentDelete = void 0;\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst reactstrap_1 = require(\"reactstrap\");\r\nconst fontawesome_svg_core_1 = require(\"@fortawesome/fontawesome-svg-core\");\r\nconst free_solid_svg_icons_1 = require(\"@fortawesome/free-solid-svg-icons\");\r\nconst Loader_1 = require(\"./Loader\");\r\nconst api_1 = require(\"@soundbite/api\");\r\nconst ErrorDlg_1 = require(\"../ErrorDlg\");\r\n/***************************************************************************************************\r\n * Constants / Global Variables\r\n **************************************************************************************************/\r\nfontawesome_svg_core_1.library.add(free_solid_svg_icons_1.faPlus, free_solid_svg_icons_1.faTrash, free_solid_svg_icons_1.faComment);\r\n/**\r\n * Control for taking in text and submitting it\r\n * @param props\r\n * @returns\r\n */\r\nconst SessionCommentDelete = (props) => {\r\n var _a, _b;\r\n const [isSaving, setIsSaving] = (0, react_1.useState)(false);\r\n /**\r\n * Callback for async adding a comment and resetting the submit box\r\n * @returns\r\n */\r\n function onCommitDelete() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n // Can't submit if props had junk in them\r\n if (props.orgRoute == null ||\r\n props.sessionRoute == null ||\r\n props.comment == null) {\r\n return;\r\n }\r\n // Do the update lifecycle\r\n setIsSaving(true);\r\n yield api_1.SessionCommentsService.deleteSessionComment(props.orgRoute, props.sessionRoute, props.comment.route);\r\n yield props.onCommit();\r\n setIsSaving(false);\r\n }\r\n catch (err) {\r\n ErrorDlg_1.ErrorDlg.show(err, \"Error Deleting Comment\");\r\n }\r\n });\r\n }\r\n function onCancel() {\r\n props.onCancel();\r\n }\r\n /** Re-render when comments change */\r\n (0, react_1.useEffect)(() => { }, [props.comment]);\r\n return (react_1.default.createElement(\"div\", { className: \"sb-comment-edit mt-2\" },\r\n react_1.default.createElement(Loader_1.Loader, { isLoadedWhen: !isSaving },\r\n react_1.default.createElement(\"div\", null, (_a = props.comment) === null || _a === void 0 ? void 0 : _a.content),\r\n react_1.default.createElement(reactstrap_1.Row, { className: \"sb-comment-subheader text-muted text-sm\" },\r\n react_1.default.createElement(reactstrap_1.Col, null, api_1.Utils.formatRelativeDate((_b = props.comment) === null || _b === void 0 ? void 0 : _b.createdUtc)),\r\n react_1.default.createElement(reactstrap_1.Col, { className: \"text-right\" },\r\n react_1.default.createElement(\"button\", { onClick: onCommitDelete, className: \"sb-link-btn text-danger\", title: \"Confirm Delete\" }, \"Delete\"),\r\n react_1.default.createElement(\"button\", { onClick: onCancel, className: \"sb-link-btn text-muted\", title: \"Cancel Delete\" }, \"Cancel\"))))));\r\n};\r\nexports.SessionCommentDelete = SessionCommentDelete;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConfirmDialog = void 0;\r\nconst react_1 = __importDefault(require(\"react\"));\r\nconst DialogButtonStyleType_1 = require(\"./DialogButtonStyleType\");\r\nconst DialogHelper_1 = require(\"./DialogHelper\");\r\nconst DialogStyleType_1 = require(\"./DialogStyleType\");\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nconst ConfirmDialog = (props) => {\r\n /////[ State ]//////////////////////////////////////////////////////////////////////////////////\r\n var _a;\r\n let [isActionRunning, setIsActionRunning] = react_1.default.useState(false);\r\n const dialogStyle = (_a = props.style) !== null && _a !== void 0 ? _a : DialogStyleType_1.DialogStyleType.Normal;\r\n const buttonStyle = dialogStyle === DialogStyleType_1.DialogStyleType.Normal\r\n ? DialogButtonStyleType_1.DialogButtonStyleType.Primary\r\n : DialogButtonStyleType_1.DialogButtonStyleType.Danger;\r\n /////[ Methods ]//////////////////////////////////////////////////////////////////////////////////\r\n function getBody() {\r\n return (react_1.default.createElement(react_1.default.Fragment, null,\r\n react_1.default.createElement(\"p\", null, props.description)));\r\n }\r\n function getActions() {\r\n var _a;\r\n return [\r\n {\r\n name: \"Cancel\",\r\n isClose: true,\r\n style: DialogButtonStyleType_1.DialogButtonStyleType.Secondary,\r\n },\r\n {\r\n name: (_a = props.buttonTitle) !== null && _a !== void 0 ? _a : \"Confirm\",\r\n isClose: true,\r\n style: buttonStyle,\r\n onSelected: () => __awaiter(this, void 0, void 0, function* () {\r\n props.onConfirm();\r\n }),\r\n },\r\n ];\r\n }\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n return DialogHelper_1.DialogHelper.RenderDialog(dialogStyle, props.title, getActions(), getBody(), isActionRunning, setIsActionRunning, props.close);\r\n};\r\nexports.ConfirmDialog = ConfirmDialog;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./IGroupStore\"), exports);\r\n__exportStar(require(\"./IMemberStore\"), exports);\r\n__exportStar(require(\"./IOrganizationStore\"), exports);\r\n__exportStar(require(\"./IPersonStore\"), exports);\r\n__exportStar(require(\"./ISeriesStore\"), exports);\r\n__exportStar(require(\"./ISessionStore\"), exports);\r\n__exportStar(require(\"./ISyncStore\"), exports);\r\n__exportStar(require(\"./IUserStore\"), exports);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./ConcurrentCache\"), exports);\r\n__exportStar(require(\"./HashHelper\"), exports);\r\n__exportStar(require(\"./StorageValue\"), exports);\r\n__exportStar(require(\"./InfiniteScrollDataHelper\"), exports);\r\n","import { OrgOktaSettingsWithOrgRoute, ProviderType } from \"@soundbite/api\";\r\n\r\n// Local storage key constants\r\nconst keys = {\r\n tokenKey: \"sbt\",\r\n refreshTokenKey: \"sbrt\",\r\n lastOktaSettingsKey: \"los\",\r\n lastSelectedOrgKey: \"lo\",\r\n authProviderTypeKey: \"ap\",\r\n failedClientOpsKey: \"fco\",\r\n returnToPage: \"rtp\",\r\n};\r\n\r\n/**\r\n * Manages storing and retrieving data from local storage and session storage. The point of this\r\n * class is to ensure a single point of reference for all data stored in the browser. There should\r\n * be no direct calls localStorage or sessionStorage anywhere outside of this class.\r\n */\r\nclass BrowserStorageServiceClass {\r\n clearNonAppLocalStorage(): void {\r\n const keysToKeep = Object.keys(keys).map((key) => (keys as any)[key]);\r\n const keysLocalStorage = Object.keys(localStorage);\r\n keysLocalStorage.forEach((key) => {\r\n if (keysToKeep.indexOf(key) < 0) {\r\n localStorage.removeItem(key);\r\n }\r\n });\r\n }\r\n\r\n get authProviderType(): ProviderType | null {\r\n return this.get(keys.authProviderTypeKey);\r\n }\r\n\r\n set authProviderType(value: ProviderType | null) {\r\n this.set(keys.authProviderTypeKey, value);\r\n }\r\n\r\n get failedClientOps(): any[] {\r\n return this.get(keys.failedClientOpsKey) || [];\r\n }\r\n\r\n set failedClientOps(value: any[]) {\r\n this.set(keys.failedClientOpsKey, value);\r\n }\r\n\r\n get lastOktaSettings(): OrgOktaSettingsWithOrgRoute | null {\r\n return this.get(keys.lastOktaSettingsKey);\r\n }\r\n\r\n set lastOktaSettings(value: OrgOktaSettingsWithOrgRoute | null) {\r\n this.set(keys.lastOktaSettingsKey, value);\r\n }\r\n\r\n get lastSelectedOrg(): string | null {\r\n return this.get(keys.lastSelectedOrgKey);\r\n }\r\n\r\n set lastSelectedOrg(value: string | null) {\r\n this.set(keys.lastSelectedOrgKey, value);\r\n }\r\n\r\n get refreshToken(): string | null {\r\n return this.get(keys.refreshTokenKey);\r\n }\r\n\r\n set refreshToken(value: string | null) {\r\n this.set(keys.refreshTokenKey, value);\r\n }\r\n\r\n get returnToPage(): string | null {\r\n return this.get(keys.returnToPage);\r\n }\r\n\r\n set returnToPage(value: string | null) {\r\n this.set(keys.returnToPage, value);\r\n }\r\n\r\n get token(): string | null {\r\n return this.get(keys.tokenKey);\r\n }\r\n\r\n set token(value: string | null) {\r\n this.set(keys.tokenKey, value);\r\n }\r\n\r\n /**\r\n * Gets a value from local storage\r\n * @param key - key of the item to retrieve\r\n */\r\n private get(key: string): T | null {\r\n try {\r\n let result: any = localStorage.getItem(key) || null;\r\n if (result != null) {\r\n result = JSON.parse(result);\r\n }\r\n return result as T;\r\n } catch {\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Sets a value in local storage or deletes it\r\n * @param key\r\n * @param value\r\n */\r\n private set(key: string, value: any) {\r\n if (value) {\r\n localStorage.setItem(key, JSON.stringify(value));\r\n } else {\r\n localStorage.removeItem(key);\r\n }\r\n }\r\n}\r\n\r\nexport const BrowserStorageService = new BrowserStorageServiceClass();\r\n","import { Logger } from \"@soundbite/api\";\r\nimport { BrowserStorageService } from \"./BrowserStorageService\";\r\n\r\n/**\r\n * Provides navigation services to other services in the application. React makes it difficult to\r\n * access hooks outside of components (e.g. in a service). This service allows a top-level\r\n * component to initialize the navigation service class with a delegate that has access to the React\r\n * router. The navigation service can then \"hand-off\" service calls to the component seamlessly.\r\n */\r\nclass NavServiceClass {\r\n //////////[ Fields ]//////////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Stores the delegate function for routing that has access to the React router.\r\n */\r\n private gotoFunc: (path: string) => void = () => {};\r\n\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Initializes the service by passing in a delegate function (presumably from a component) that\r\n * is capable of handling routing calls.\r\n * @param navToFunc - delegate that handles routing calls\r\n */\r\n initialize(navToFunc: (path: string) => void): void {\r\n this.gotoFunc = navToFunc;\r\n }\r\n\r\n /**\r\n * Gets a flag indicating whether there is a return to page defined.\r\n */\r\n get hasReturnPage(): boolean {\r\n return !!BrowserStorageService.returnToPage;\r\n }\r\n\r\n /**\r\n * Sets the return page when a user is redirected away from the site for authentication purposes.\r\n * @param path - path to which the user should be returned after successfully logging in\r\n */\r\n setReturnPage(path: string | null) {\r\n BrowserStorageService.returnToPage = path;\r\n }\r\n\r\n /**\r\n * Navigates to the return page if defined. This method clears the return page value.\r\n */\r\n gotoReturnPage() {\r\n if (this.hasReturnPage) {\r\n const returnToPage = BrowserStorageService.returnToPage;\r\n BrowserStorageService.returnToPage = null;\r\n this.goto(returnToPage);\r\n }\r\n }\r\n\r\n /**\r\n * Routes the application to the specified path.\r\n * @param path - path to which the application should be routed.\r\n */\r\n goto(path: string | null) {\r\n if (path) {\r\n this.gotoFunc(path);\r\n Logger.LogTrace(`NavService - navigating to ${path}`);\r\n } else {\r\n Logger.LogWarning(`NavService - navigation path was null/empty`);\r\n }\r\n }\r\n}\r\n\r\nexport default new NavServiceClass();\r\n","import React, { Component } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport {\r\n Modal,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n FormGroup,\r\n InputGroup,\r\n} from \"reactstrap\";\r\n\r\nimport {\r\n NewGroup,\r\n MemberRole,\r\n NewMember,\r\n PublicError,\r\n Utils,\r\n} from \"@soundbite/api\";\r\nimport {\r\n Loader,\r\n ErrorCtrl,\r\n PeoplePicker,\r\n ShowWhen,\r\n WidgetStore,\r\n PeoplePickerMePolicy,\r\n} from \"@soundbite/widgets-react\";\r\n\r\nimport NavService from \"../../sdk/NavService\";\r\n\r\ninterface IProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n orgRoute: string;\r\n}\r\n\r\ninterface IState {\r\n disabled: boolean;\r\n newGroup: NewGroup;\r\n error?: PublicError;\r\n}\r\n\r\nclass NewGroupModal extends Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n disabled: false,\r\n newGroup: this.freshNewGroup(),\r\n error: undefined,\r\n };\r\n }\r\n\r\n get disabled(): boolean {\r\n return this.state.disabled;\r\n }\r\n set disabled(is: boolean) {\r\n this.setState({ disabled: is });\r\n }\r\n\r\n get newGroup(): NewGroup {\r\n return this.state.newGroup;\r\n }\r\n\r\n set newGroup(group: NewGroup) {\r\n this.setState({ newGroup: group });\r\n }\r\n\r\n protected freshNewGroup(): NewGroup {\r\n const newMembers: NewMember[] = [];\r\n if (WidgetStore.organizations.currentOrg?.details.me) {\r\n const myNewMember: NewMember = {\r\n personToken: WidgetStore.organizations.currentOrg.details.me?.route,\r\n memberRole: MemberRole.Owner,\r\n };\r\n newMembers.push(myNewMember);\r\n }\r\n\r\n return {\r\n name: \"\",\r\n description: \"\",\r\n members: newMembers,\r\n } as NewGroup;\r\n }\r\n\r\n protected reset() {\r\n const newGroup = this.freshNewGroup();\r\n this.setState({ newGroup, disabled: false, error: undefined });\r\n }\r\n\r\n protected close() {\r\n this.props.onClose();\r\n this.reset();\r\n }\r\n\r\n protected async submit() {\r\n try {\r\n if (!WidgetStore.organizations.currentOrg)\r\n throw new PublicError(\r\n undefined,\r\n \"Cannot Create Group without an active org\"\r\n );\r\n\r\n this.disabled = true;\r\n const newGroup = await WidgetStore.groups.createGroupAsync(\r\n WidgetStore.organizations.currentOrg?.details.route,\r\n this.state.newGroup\r\n );\r\n NavService.goto(\r\n `/organizations/${WidgetStore.organizations.currentOrg.details.route}/groups/${newGroup.route}/feed`\r\n );\r\n this.close();\r\n } catch (error: any) {\r\n let err: PublicError = error;\r\n if (!(err instanceof PublicError)) err = new PublicError(error);\r\n this.setState({ error: err, disabled: false });\r\n }\r\n }\r\n\r\n protected get invalid() {\r\n const group = this.state.newGroup;\r\n if (!group.name || group.name.length === 0) return true;\r\n\r\n if (!group.members || group.members.length === 0) return true;\r\n\r\n // We need an owner that is already in the system\r\n const knownOwnerCount = group.members.filter(\r\n (m) => !Utils.isEmail(m.personToken) && m.memberRole >= MemberRole.Owner\r\n ).length;\r\n\r\n if (knownOwnerCount === 0) return true;\r\n\r\n return false;\r\n }\r\n\r\n protected onNameChange(event: React.ChangeEvent) {\r\n const group = this.newGroup;\r\n group.name = event.target.value;\r\n this.newGroup = group;\r\n }\r\n\r\n protected filterOutMembers(group: NewGroup, role: MemberRole): NewMember[] {\r\n return group.members.filter((m) => m.memberRole !== role);\r\n }\r\n\r\n protected mapToMembers(\r\n peopleTokens: string[],\r\n role: MemberRole\r\n ): NewMember[] {\r\n return peopleTokens.map((p) => {\r\n return { personToken: p, memberRole: role };\r\n });\r\n }\r\n\r\n protected onMembersChanged(peopleTokens: string[]) {\r\n const group = this.newGroup;\r\n const oldMembers = this.filterOutMembers(group, MemberRole.Member);\r\n const newMembers = this.mapToMembers(peopleTokens, MemberRole.Member);\r\n group.members = oldMembers.concat(newMembers);\r\n this.newGroup = group;\r\n }\r\n\r\n protected onOwnersChanged(peopleTokens: string[]) {\r\n const group = this.newGroup;\r\n const oldMembers = this.filterOutMembers(group, MemberRole.Owner);\r\n const newMembers = this.mapToMembers(peopleTokens, MemberRole.Owner);\r\n group.members = oldMembers.concat(newMembers);\r\n this.newGroup = group;\r\n }\r\n\r\n protected onDescriptionChange(event: React.ChangeEvent) {\r\n const group = this.newGroup;\r\n group.description = event.target.value;\r\n this.newGroup = group;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n Create Group\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Close\r\n {\" \"}\r\n \r\n Create\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\ninterface NewGroupDialogProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n orgRoute: string;\r\n}\r\n\r\nexport const NewGroupDialog: React.FC = observer(\r\n (props: NewGroupDialogProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from \"reactstrap\";\r\nimport { PublicError } from \"@soundbite/api\";\r\nimport { ErrorCtrl, EmailPicker, Loader } from \"@soundbite/widgets-react\";\r\n\r\ninterface IProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n onSubmitAsync: (emails: string[]) => Promise;\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n emails: string[];\r\n error?: PublicError;\r\n}\r\n\r\nexport class InviteDlg extends Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n this.close = this.close.bind(this);\r\n this.submit = this.submit.bind(this);\r\n this.onEmailsChange = this.onEmailsChange.bind(this);\r\n\r\n this.state = this.defaultState;\r\n }\r\n\r\n get defaultState() {\r\n return { emails: [], isLoading: false, error: undefined };\r\n }\r\n\r\n get isLoading() {\r\n return this.state.isLoading;\r\n }\r\n\r\n componentDidMount() {\r\n this.setState(this.defaultState);\r\n }\r\n\r\n onEmailsChange(emails: string[]) {\r\n this.setState({ emails: emails });\r\n }\r\n\r\n close() {\r\n this.props.onClose();\r\n }\r\n\r\n async submit() {\r\n try {\r\n this.setState({ isLoading: true, error: undefined });\r\n await this.props.onSubmitAsync(this.state.emails);\r\n this.close();\r\n } catch (error: any) {\r\n let err: PublicError = error;\r\n if (!(err instanceof PublicError)) err = new PublicError(error);\r\n this.setState({ error: err });\r\n } finally {\r\n this.setState({ isLoading: false });\r\n }\r\n }\r\n\r\n get invalid() {\r\n return this.state.emails.length === 0;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n Share Soundbite With a Friend\r\n \r\n \r\n

\r\n Send an early invite to one or more people via e-mail to help them\r\n get started with Soundbite\r\n

\r\n \r\n \r\n They will not be invited to your organization\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Close\r\n \r\n \r\n Send\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\ninterface IReferralBtnProps {\r\n onSubmitAsync: (emails: string[]) => Promise;\r\n className?: string;\r\n}\r\n\r\ninterface IReferralBtnState {\r\n isDialogOpen: boolean;\r\n}\r\n\r\nexport default class InviteBtn extends Component<\r\n IReferralBtnProps,\r\n IReferralBtnState\r\n> {\r\n constructor(props: IReferralBtnProps) {\r\n super(props);\r\n this.close = this.close.bind(this);\r\n this.open = this.open.bind(this);\r\n this.onSubmitAsync = this.onSubmitAsync.bind(this);\r\n\r\n this.state = {\r\n isDialogOpen: false,\r\n };\r\n }\r\n\r\n async onSubmitAsync(emails: string[]) {\r\n await this.props.onSubmitAsync(emails);\r\n }\r\n\r\n open() {\r\n this.setState({ isDialogOpen: true });\r\n }\r\n\r\n close() {\r\n this.setState({ isDialogOpen: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {this.props.children}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import * as Msal from \"@azure/msal-browser\";\r\nimport Axios from \"axios\";\r\nimport {\r\n AppPayload,\r\n Logger,\r\n ProviderType,\r\n PublicError,\r\n SoundbiteApiConfig,\r\n User,\r\n UserRole,\r\n UsersService,\r\n Utils,\r\n} from \"@soundbite/api\";\r\nimport { AuthState, WidgetStore } from \"@soundbite/widgets-react\";\r\n\r\nimport SpaStore from \"../../../store/Spa.Store\";\r\nimport { IAuthProvider } from \"./IAuthProvider\";\r\nimport { IGraphMe } from \"../../GraphSdk\";\r\nimport { BrowserStorageService } from \"../../BrowserStorageService\";\r\n\r\nexport class SbAuthError extends Error {}\r\n\r\n/**\r\n * IAuthProvider implementation for Office 365 / Microsoft Graph\r\n */\r\nexport class AadAuthProvider implements IAuthProvider {\r\n //////////[ Fields ]//////////////////////////////////////////////////////////////////////////////\r\n\r\n private msalConfig: Msal.Configuration;\r\n private msal: Msal.PublicClientApplication;\r\n private accountInfo?: Msal.AccountInfo;\r\n private scopesGraph: string[];\r\n private scopesSoundbiteApp: string[];\r\n private tokenSoundbiteApp?: string;\r\n private graphUserToken?: string;\r\n private azureAdAppToken?: string;\r\n\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Instantiates a new AADAuthProvider instance\r\n */\r\n constructor() {\r\n this.msalConfig = this.getMsalConfig();\r\n this.scopesGraph = SpaStore.config.adClientConfig.adScopes;\r\n this.scopesSoundbiteApp = SpaStore.config.adClientConfig.apiScopes;\r\n this.msal = new Msal.PublicClientApplication(this.msalConfig);\r\n }\r\n\r\n //////////[ IAuthProvider Implementation ]////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Gets or sets the provider type\r\n */\r\n get providerType() {\r\n return ProviderType.AAD;\r\n }\r\n\r\n public get msalAccount(): Msal.AccountInfo {\r\n return this.accountInfo ?? this.msal.getAllAccounts()[0];\r\n }\r\n\r\n /**\r\n * Responsible for running any logic required to log the user in to the third-party provider.\r\n * @param forceReAuth - flag indicating that the user should be forced to login to the provider again.\r\n */\r\n async loginAsync(forceReAuth: boolean): Promise {\r\n if (forceReAuth) {\r\n await this.redirectToLogin();\r\n } else {\r\n try {\r\n if (!this.tokenSoundbiteApp) {\r\n await this.getSoundbiteToken(true);\r\n }\r\n } catch (err: any) {\r\n await this.redirectToLogin();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Responsible for handling the response returned from an OAuth redirect.\r\n */\r\n async handleAuthRedirect(): Promise {\r\n return new Promise((resolve, reject) => {\r\n this.msal\r\n .handleRedirectPromise()\r\n .then(async (authResult: Msal.AuthenticationResult | null) => {\r\n // Determine whether an auth redirect is being processed\r\n if (authResult) {\r\n this.graphUserToken = authResult.accessToken;\r\n this.accountInfo = authResult.account;\r\n } else {\r\n Logger.LogWarning(\r\n \"AadAuthProvider - Handle Redirect - auth result missing\"\r\n );\r\n }\r\n\r\n await this.getSoundbiteToken(true);\r\n\r\n // Resolve the isInitializedPromise to indicate the provider has initialized\r\n resolve();\r\n })\r\n .catch((ex) => {\r\n // Reject the isInitializedPromise to indicate the provider failed to initialize\r\n Logger.LogError(\"AadAuthProvider - Auth Redirect Exception\", ex);\r\n this.tokenSoundbiteApp = \"\";\r\n this.accountInfo = undefined;\r\n reject(ex);\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Responsible for logging the user out of the authentication provider.\r\n */\r\n async logoutAsync(): Promise {\r\n SpaStore.setAuthProvider(ProviderType.Unknown);\r\n this.msal.logout();\r\n }\r\n\r\n /**\r\n * Grants admin access for the current user & org\r\n */\r\n async grantAdminAsync(): Promise {\r\n const appId = SpaStore.config.adPlatformConfig.appId;\r\n const tenantId = await getTenantId();\r\n const adminUrl = `https://login.microsoftonline.com/${tenantId}/adminconsent?client_id=${appId}`;\r\n window.location.href = adminUrl;\r\n }\r\n\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n\r\n public getTenantId(): string | undefined {\r\n return this.accountInfo?.tenantId;\r\n }\r\n\r\n /**\r\n * Provides a way for AAD-based providers to access the graph token required for operations.\r\n */\r\n async wrapGraphCall(\r\n action: (graphToken: string) => Promise\r\n ): Promise {\r\n if ((window as any).simulateFail === true) {\r\n throw new SbAuthError(\"Please login to AAD again\");\r\n }\r\n\r\n try {\r\n await this.getGraphUserToken();\r\n } catch {\r\n throw new SbAuthError(\"Please login to AAD again\");\r\n }\r\n\r\n if (this.graphUserToken) {\r\n const result = await action(this.graphUserToken);\r\n return result as T;\r\n } else {\r\n throw new SbAuthError(\r\n \"Call to acuire graph token succeeded but graph token is not available.\"\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Responsible for building the MSAL configuration from the application settings.\r\n */\r\n private getMsalConfig(): Msal.Configuration {\r\n const isIE =\r\n window.navigator.userAgent.indexOf(\"MSIE\") > -1 ||\r\n window.navigator.userAgent.indexOf(\"Trident/\") > -1;\r\n\r\n const config = {\r\n auth: {\r\n clientId: SpaStore.config.adClientConfig.clientId,\r\n authority: \"https://login.microsoftonline.com/common/\",\r\n redirectUri: SpaStore.config.adClientConfig.redirectUri,\r\n postLogoutRedirectUri:\r\n SpaStore.config.adClientConfig.postLogoutRedirectUri,\r\n navigateToLoginRequestUrl: false,\r\n },\r\n cache: {\r\n cacheLocation: \"localStorage\",\r\n storeAuthStateInCookie: isIE,\r\n },\r\n };\r\n\r\n return config;\r\n }\r\n\r\n /**\r\n * Uses the graph provided access token to request a Soundbite token.\r\n * @param getUserMetaData - flag indicating whether to acquire user metadata from MS graph.\r\n */\r\n private async getSoundbiteToken(getUserMetaData: boolean): Promise {\r\n try {\r\n let promises: Array> = [];\r\n let userImage: any = null;\r\n let userInfo: User | null = null;\r\n let appPayload: AppPayload | null = null;\r\n\r\n // Acquire graph token (if needed)\r\n if (!this.graphUserToken) {\r\n await this.getGraphUserToken();\r\n }\r\n\r\n // Determine whether to use the graph token to acquire user metadata\r\n if (getUserMetaData) {\r\n promises.push(\r\n this.getGraphUserImage().then((result: any) => {\r\n userImage = result;\r\n })\r\n );\r\n promises.push(\r\n this.getGraphUserInfo().then((result?: User) => {\r\n userInfo = result || null;\r\n })\r\n );\r\n }\r\n\r\n // Acquire Azure AD App Token\r\n if (!this.azureAdAppToken) {\r\n promises.push(this.getGraphAppToken());\r\n }\r\n\r\n // Wait for all promises to resolve\r\n await Promise.all(promises);\r\n\r\n // Acquire application payload\r\n // TODO: technically this can be acquired right after getting the app token instead of after all promises finish\r\n appPayload = await this.getAppPayload(userInfo);\r\n\r\n if (appPayload.token) {\r\n WidgetStore.initialize(appPayload);\r\n\r\n // Update user image if available\r\n if (userImage) {\r\n UsersService.upsertMyImageAsync(userImage).then((data) => {\r\n WidgetStore.users.updateCurrentUserImageUrl((data as any).imageSrc);\r\n });\r\n }\r\n\r\n SpaStore.processPayload(appPayload, false);\r\n } else {\r\n // Getting to this point without a token indicates that authentication failed\r\n WidgetStore.authState = AuthState.AuthFailed;\r\n }\r\n } catch (ex) {\r\n Logger.LogError(\r\n \"AadAuthProvider - failed to acquire Soundbite token.\",\r\n ex\r\n );\r\n throw ex;\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves an MS Graph user token that can be used to make graph calls on behalf of the user.\r\n */\r\n public async getGraphUserToken(): Promise {\r\n this.accountInfo = this.accountInfo || this.msal.getAllAccounts()[0];\r\n if (this.accountInfo) {\r\n //TODO: figure out what to do when the response fails\r\n try {\r\n const request: Msal.SilentRequest = {\r\n account: this.accountInfo,\r\n scopes: this.scopesGraph,\r\n };\r\n const response: Msal.AuthenticationResult =\r\n await this.msal.acquireTokenSilent(request);\r\n this.graphUserToken = response.accessToken;\r\n this.accountInfo = response.account;\r\n } catch (ex) {\r\n Logger.LogError(\"AadAuthProvider - failed to acquire graph token.\", ex);\r\n this.graphUserToken = undefined;\r\n throw ex;\r\n }\r\n } else {\r\n const ex = new Error(\r\n \"AadAuthProvider - MSAL could not provide account information for user graph token attempt.\"\r\n );\r\n Logger.LogError(ex.message, ex);\r\n throw ex;\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves an MS Graph App token for soundbite using the user graph token.\r\n */\r\n private async getGraphAppToken(): Promise {\r\n //FARK\r\n this.accountInfo = this.accountInfo || this.msal.getAllAccounts()[0];\r\n if (this.accountInfo) {\r\n const request: Msal.SilentRequest = {\r\n account: this.accountInfo,\r\n scopes: this.scopesSoundbiteApp,\r\n };\r\n const response: Msal.AuthenticationResult =\r\n await this.msal.acquireTokenSilent(request);\r\n this.azureAdAppToken = response.accessToken;\r\n } else {\r\n const ex = new Error(\r\n \"AadAuthProvider - MSAL could not provide account information for graph app token attempt.\"\r\n );\r\n Logger.LogError(ex.message, ex);\r\n throw ex;\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves the user's image from MS graph.\r\n */\r\n private async getGraphUserImage(): Promise {\r\n try {\r\n const response = await Axios.get(\r\n \"https://graph.microsoft.com/v1.0/me/photo/$value\",\r\n {\r\n responseType: \"arraybuffer\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/pdf\",\r\n authorization: `Bearer ${this.graphUserToken}`,\r\n },\r\n }\r\n );\r\n return new Blob([response.data]);\r\n } catch (ex: any) {\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Retreives user information from MS Graph and sends it back to Soundbite.\r\n */\r\n private async getGraphUserInfo(): Promise {\r\n try {\r\n // Call out to the graph API using the newly acquired token\r\n const me = (\r\n await Axios.get(\"https://graph.microsoft.com/v1.0/me/\", {\r\n headers: {\r\n authorization: `Bearer ${this.graphUserToken}`,\r\n },\r\n })\r\n ).data;\r\n\r\n const phone: string = me.businessPhones[0];\r\n const userFields: User = {\r\n allowEmail: true,\r\n email: me.mail,\r\n givenName: me.givenName,\r\n familyName: me.surname,\r\n phone: phone,\r\n title: me.jobTitle,\r\n allowNews: true,\r\n allowMarketing: true,\r\n userRole: UserRole.Unknown,\r\n calendarSettings: \"\",\r\n providerType: 1,\r\n allowSms: true,\r\n } as User;\r\n\r\n return userFields;\r\n } catch {\r\n return undefined;\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves the application payload using the MS Graph App token.\r\n * @param userInfoToSync - user information from MS Graph to sync with Soundbite.\r\n */\r\n private async getAppPayload(\r\n userInfoToSync: User | null\r\n ): Promise {\r\n try {\r\n let url = process.env.REACT_APP_CONFIG_API_PREFIX + `/azureAuth/login`;\r\n const headers = {\r\n Authorization: `Bearer ${this.azureAdAppToken}`,\r\n \"Content-Type\": \"application/json\",\r\n };\r\n const orgRoute =\r\n Utils.getOrgRouteFromPath(BrowserStorageService.returnToPage) ??\r\n BrowserStorageService.lastSelectedOrg;\r\n if (orgRoute) {\r\n url += \"?orgRoute=\" + encodeURIComponent(orgRoute);\r\n }\r\n const appPayload = await SoundbiteApiConfig.httpAdapter.post(\r\n url,\r\n userInfoToSync,\r\n { headers: headers }\r\n );\r\n return appPayload;\r\n } catch (ex) {\r\n Logger.LogError(\r\n \"AadAuthProvider - failed to retrieve application payload.\",\r\n ex\r\n );\r\n throw ex;\r\n }\r\n }\r\n\r\n /**\r\n * Redirects the user to the AAD login page so they can sign in. Ultimately, this exits the\r\n * application and the login process resumes when the user is redirected from the O365 login\r\n * process back to the Soundbite application with an authorization code that can be used to\r\n * acquire an MS graph or Soundbite authorization token.\r\n */\r\n private redirectToLogin(): Promise {\r\n try {\r\n BrowserStorageService.clearNonAppLocalStorage(); // This seems to resolve certain auth looping issues (was calling localStorage.clear originally so if issues arise may need to rethink this)\r\n SpaStore.setAuthProvider(ProviderType.AAD); // Make sure to set this so the AAD auth provider loads after redirect\r\n return this.msal.loginRedirect({ scopes: this.scopesGraph });\r\n } catch (err: any) {\r\n const error = new PublicError(\r\n err,\r\n \"Authentication Error\",\r\n \"Error trying to redirect to Active Directory login page\"\r\n );\r\n Logger.LogError(\"AadAuthProvider - LoginRedirect failed.\", error);\r\n throw error;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Stores a reference to the AAD auth provider instance when it is instantiated.\r\n */\r\nlet instance: AadAuthProvider | null = null;\r\n\r\n/** Get the tenant ID for the current logged in user; relies on the auth process already having been fired */\r\nexport async function getTenantId(): Promise {\r\n const i = getAadAuthProvider() as AadAuthProvider;\r\n let acct = i.msalAccount;\r\n if (acct == null) {\r\n await i.handleAuthRedirect();\r\n acct = i.msalAccount;\r\n }\r\n if (acct == null) {\r\n await i.loginAsync(false);\r\n }\r\n return acct.tenantId;\r\n}\r\n\r\n/**\r\n * Retrieves the AAD auth provider. This method is also responsible for creating an instance of\r\n * the provider if it does not already exist.\r\n */\r\nexport function getAadAuthProvider(): IAuthProvider {\r\n if (!instance) {\r\n instance = new AadAuthProvider();\r\n }\r\n return instance;\r\n}\r\n","import Axios from \"axios\";\r\nimport moment from \"moment\";\r\nimport {\r\n CalendarEntry,\r\n ProviderType,\r\n RecurrencePattern,\r\n Recurrence,\r\n} from \"@soundbite/api\";\r\n\r\nimport { ICalendarProvider } from \"./ICalendarProvider\";\r\nimport { AadAuthProvider, getAadAuthProvider } from \"../auth/AadAuthProvider\";\r\n\r\nconst graphUrl = \"https://graph.microsoft.com/v1.0/\";\r\n\r\n/**\r\n * Defines the contract required for interacting with a third-party calendar provider. Each\r\n * calendar provider must have its own ICalendarProvider implementation.\r\n */\r\nexport class AadCalendarProvider implements ICalendarProvider {\r\n //////////[ Fields ]//////////////////////////////////////////////////////////////////////////////\r\n\r\n private _authProvider: AadAuthProvider;\r\n\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Creates a new CalendarProviderAAD instance.\r\n */\r\n constructor() {\r\n this._authProvider = getAadAuthProvider() as AadAuthProvider;\r\n }\r\n\r\n //////////[ ICalendarProvider Implementation ]////////////////////////////////////////////////////\r\n\r\n /**\r\n * Gets the provider type associated with this calendar provider implementation.\r\n */\r\n get providerType() {\r\n return ProviderType.AAD;\r\n }\r\n\r\n /**\r\n * Converts numeric day of week values into the string expected by AAD\r\n * @param daysOfWeek - array containing numeric day of week values\r\n * @returns a string array with converted values for AAD\r\n */\r\n convertDaysOfWeek(daysOfWeek: number[]): string[] {\r\n let conversion = [\r\n \"sunday\",\r\n \"monday\",\r\n \"tuesday\",\r\n \"wednesday\",\r\n \"thursday\",\r\n \"friday\",\r\n \"saturday\",\r\n ];\r\n let result: string[] = [];\r\n daysOfWeek?.forEach((i) => {\r\n result.push(conversion[i]);\r\n });\r\n return result;\r\n }\r\n\r\n /**\r\n * Converts the Soundbite recurrency information into a value that can be used in AAD.\r\n * @param recurrenceType - identifies the type of recurrence\r\n * @param recurrencePattern - recurrence-specific information for the recurrence type\r\n */\r\n convertRecurrencePattern(\r\n recurrenceType: Recurrence,\r\n recurrencePattern: RecurrencePattern\r\n ): any {\r\n switch (recurrenceType) {\r\n case Recurrence.NoRepeat:\r\n return null;\r\n case Recurrence.Daily:\r\n return {\r\n type: \"daily\",\r\n interval: 1,\r\n };\r\n case Recurrence.Monthly:\r\n return {\r\n type: \"absoluteMonthly\",\r\n dayOfMonth: recurrencePattern.dayOfMonth,\r\n interval: 1,\r\n };\r\n case Recurrence.Weekday:\r\n // These both use the same data because the daysOfWeek value differentiates them\r\n return {\r\n type: \"weekly\",\r\n interval: 1,\r\n firstDayOfWeek: \"sunday\",\r\n daysOfWeek: this.convertDaysOfWeek(recurrencePattern.daysOfWeek),\r\n };\r\n case Recurrence.Weekly:\r\n // These both use the same data because the daysOfWeek value differentiates them\r\n return {\r\n type: \"weekly\",\r\n interval: 1,\r\n firstDayOfWeek: \"sunday\",\r\n daysOfWeek: this.convertDaysOfWeek(recurrencePattern.daysOfWeek),\r\n };\r\n default:\r\n throw new Error(\"Unsupported recurrence type\");\r\n }\r\n }\r\n\r\n /**\r\n * Responsible for creating a calendar event for the user on the provider.\r\n */\r\n async createEvent(data: CalendarEntry): Promise {\r\n // API REFERENCE: https://docs.microsoft.com/en-us/graph/api/calendar-post-events?view=graph-rest-1.0&tabs=http\r\n // https://docs.microsoft.com/en-us/graph/api/user-post-events?view=graph-rest-1.0&tabs=http\r\n // TIMEZONE REFERENCE: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones\r\n // Recurrence reference: https://docs.microsoft.com/en-us/graph/api/resources/recurrencepattern?view=graph-rest-1.0\r\n\r\n const url = `${graphUrl}me/calendar/events`;\r\n\r\n const calendarEntry: any = {\r\n //transactionId: Utils.newGuid(),\r\n subject: data.subject,\r\n body: {\r\n contentType: \"HTML\",\r\n content: data.body,\r\n },\r\n start: {\r\n dateTime: moment(data.startTime).toISOString(),\r\n timeZone: \"Greenwich Standard Time\",\r\n },\r\n end: {\r\n dateTime: moment(data.startTime)\r\n .add(data.duration, \"minutes\")\r\n .toISOString(),\r\n timeZone: \"Greenwich Standard Time\",\r\n },\r\n //location: { displayName: \"None\" }\r\n //attendees: [],\r\n //transactionId: \"7E163156-7762-4BEB-A1C6-729EA81755A7\"\r\n };\r\n\r\n if (data.recurrence !== Recurrence.NoRepeat) {\r\n calendarEntry.recurrence = {\r\n pattern: this.convertRecurrencePattern(\r\n data.recurrence,\r\n data.recurrencePattern\r\n ),\r\n range: {\r\n startDate: moment(data.startTime).format(\"YYYY-MM-DD\"),\r\n type: \"noEnd\",\r\n },\r\n };\r\n }\r\n\r\n var calendarEntryId = await this._authProvider.wrapGraphCall(\r\n async (graphToken) => {\r\n alert(graphToken);\r\n const call = await Axios.post(url, calendarEntry, {\r\n headers: { authorization: `Bearer ${graphToken}` },\r\n });\r\n alert(\"succeeded\");\r\n return call.data.id; // Returns the AAD ID of the calendar entry\r\n }\r\n );\r\n\r\n return calendarEntryId;\r\n }\r\n}\r\n","import { ProviderType } from \"@soundbite/api\";\r\n\r\nimport { getAadAuthProvider } from \"./auth/AadAuthProvider\";\r\nimport { IAuthProvider } from \"./auth/IAuthProvider\";\r\nimport { ICalendarProvider } from \"./calendar/ICalendarProvider\";\r\nimport { AadCalendarProvider } from \"./calendar/AadCalendarProvider\";\r\n\r\n/**\r\n * Responsible for managing authentication providers supported by the application.\r\n */\r\nclass ProviderFactoryClass {\r\n //////////[ Fields ]//////////////////////////////////////////////////////////////////////////////\r\n\r\n private authProvider?: IAuthProvider;\r\n private calendarProvider?: ICalendarProvider;\r\n private getProviderType?: () => ProviderType | undefined;\r\n\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Runs any initialization code that needs to run when the application starts.\r\n */\r\n async initialize(getProviderType: () => ProviderType): Promise {\r\n // Validate\r\n if (getProviderType === null)\r\n throw new Error(\"Argument getProviderType cannot be null.\");\r\n\r\n this.getProviderType = getProviderType;\r\n\r\n // Determine whether there is a current provider and instantiate the associated implementation\r\n switch (this.getProviderType()) {\r\n case ProviderType.AAD:\r\n this.authProvider = getAadAuthProvider();\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves the IAuthProvider instance for the specified provider type\r\n */\r\n getAuthProvider(): IAuthProvider | null {\r\n let result: IAuthProvider | null = null;\r\n const providerType = this.getProviderType\r\n ? this.getProviderType()\r\n : ProviderType.Unknown;\r\n\r\n if (this.authProvider && this.authProvider.providerType === providerType) {\r\n result = this.authProvider;\r\n } else {\r\n switch (providerType) {\r\n case ProviderType.AAD:\r\n this.authProvider = this.authProvider ?? getAadAuthProvider();\r\n result = this.authProvider;\r\n break;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Retrieves the ICalendarProvider instance for the specified provider type\r\n */\r\n getCalendarProvider(): ICalendarProvider {\r\n let result: ICalendarProvider | undefined | null = null;\r\n const providerType = this.getProviderType\r\n ? this.getProviderType()\r\n : ProviderType.Unknown;\r\n\r\n // Determine if we already have the right calendar provider\r\n if (\r\n this.calendarProvider &&\r\n this.calendarProvider.providerType === providerType\r\n ) {\r\n result = this.calendarProvider;\r\n } else {\r\n // Determine the appropriate provider to instantiate\r\n switch (providerType) {\r\n case ProviderType.AAD:\r\n this.calendarProvider =\r\n this.calendarProvider ?? new AadCalendarProvider();\r\n result = this.calendarProvider;\r\n break;\r\n }\r\n }\r\n\r\n if (!result) {\r\n throw new Error(\r\n `Failed to retrieve provider for specified provider type \"${providerType}\".`\r\n );\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport const ProviderFactory = new ProviderFactoryClass();\r\n","import { BrowserStorageService } from \"./BrowserStorageService\";\r\nimport {\r\n ClientOp,\r\n ClientOpRunInfo,\r\n SessionsService,\r\n SessionCalendarEntry,\r\n} from \"@soundbite/api\";\r\n\r\nimport { ProviderFactory } from \"./providers/ProviderFactory\";\r\nimport { SbAuthError } from \"./providers/auth/AadAuthProvider\";\r\n\r\n/**\r\n * Encapsulates all of the business logic for managing client operations requested from the API.\r\n * Some server-side operations require client-side interaction. These mostly involve third-party\r\n * provider operations involving user access tokens that are more effectively managed on the client.\r\n */\r\nclass ClientOpServiceClass {\r\n //////////[ Fields ]//////////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Stores an array of the client operations that are pending.\r\n */\r\n private failedClientOps: ClientOpRunInfo[];\r\n\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Gets a flag indicating whether there are outstanding client operations that need user\r\n * interaction to acquire a third-party provider token in order to process.\r\n */\r\n get hasFailedOps() {\r\n return this.failedClientOps.length > 0;\r\n }\r\n\r\n /**\r\n * Gets a flag indicating whether any failed client operations require re-authentication to process.\r\n */\r\n get requiresAuthToProcessFailedOps() {\r\n return (\r\n this.failedClientOps && this.failedClientOps.some((i) => i.authRequired)\r\n );\r\n }\r\n\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Initializes the ClientOpService class\r\n */\r\n constructor() {\r\n this.failedClientOps = BrowserStorageService.failedClientOps;\r\n }\r\n\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Registers a client operation for processing once the appropriate auth token has been acquired.\r\n * @param opsToRegister - array of client operations to register\r\n */\r\n registerFailedClientOp(failedOp?: ClientOpRunInfo) {\r\n if (failedOp) {\r\n this.failedClientOps.push(failedOp);\r\n BrowserStorageService.failedClientOps = this.failedClientOps;\r\n }\r\n }\r\n\r\n /**\r\n * Handles execution of all the specified client operations. Client operations are normally\r\n * received as the result of a API call that responds with a ClientOpWrapper. The ClientOpWrapper\r\n * contains a list (which may be null or empty) of client operations that need to complete.\r\n * This method is intended to process that list.\r\n * @param clientOps - client operations to run\r\n * @returns - a flag indicating whether all client ops were processed\r\n */\r\n async processClientOps(clientOps?: ClientOp[]): Promise {\r\n let failedOps: ClientOpRunInfo[] = [];\r\n\r\n if (clientOps && clientOps.length > 0) {\r\n for (let i = 0; i < clientOps.length; i++) {\r\n const clientOp = clientOps[i];\r\n if (clientOp) {\r\n // By convention the operation type is the name of a function that handles that operation.\r\n // The following code casts this class to any and retrieves the function name using a\r\n // dictionary lookup. If the handler function is located then it is executed.\r\n var op = (this as any)[clientOp.opType];\r\n try {\r\n if (op) {\r\n await op(clientOp.data);\r\n }\r\n } catch (ex: any) {\r\n const isAuthFailure = ex && ex instanceof SbAuthError;\r\n let clientOpInfo = clientOp as ClientOpRunInfo;\r\n clientOpInfo.failCount =\r\n clientOpInfo.failCount > 0 ? clientOpInfo.failCount++ : 1;\r\n clientOpInfo.authRequired = isAuthFailure;\r\n failedOps.push(clientOpInfo);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (failedOps.length > 0) {\r\n failedOps.forEach((failedOp) => {\r\n if (this.failedClientOps.indexOf(failedOp) < 0) {\r\n this.failedClientOps.push(failedOp);\r\n }\r\n });\r\n BrowserStorageService.failedClientOps = this.failedClientOps;\r\n }\r\n\r\n return failedOps;\r\n }\r\n\r\n /**\r\n * Re-runs any client operations that were registered as having failed.\r\n */\r\n async processFailedClientOps(): Promise {\r\n const toRun = this.failedClientOps.filter((i) => i.failCount < 3);\r\n const failedAgain = await this.processClientOps(toRun);\r\n const succeeded = toRun.filter((i) => failedAgain.indexOf(i) < 0);\r\n this.failedClientOps = this.failedClientOps.filter(\r\n (i) => succeeded.indexOf(i) < 0\r\n );\r\n BrowserStorageService.failedClientOps = this.failedClientOps;\r\n }\r\n\r\n /**\r\n * Responsible for creating/updating the session calendar event reminder.\r\n * @param data - contains information about the calendar entry to create or update.\r\n */\r\n protected async CreateSessionReminderCalendarEntry(\r\n data: SessionCalendarEntry\r\n ): Promise {\r\n var calendarProvider = ProviderFactory.getCalendarProvider();\r\n var calendarEntryId = await calendarProvider.createEvent(data);\r\n SessionsService.setReminderCalendarEntryId(\r\n data.orgRoute,\r\n data.sessionRoute,\r\n calendarEntryId\r\n );\r\n }\r\n}\r\n\r\nexport const ClientOpService = new ClientOpServiceClass();\r\n","import Axios, { AxiosRequestConfig } from \"axios\";\r\nimport { action, makeObservable, observable } from \"mobx\";\r\nimport { ApplicationInsights } from \"@microsoft/applicationinsights-web\";\r\nimport {\r\n ProviderType,\r\n SpaConfig,\r\n AppPayload,\r\n AzureAuthService,\r\n User,\r\n Utils,\r\n} from \"@soundbite/api\";\r\nimport { AuthState, WidgetStore } from \"@soundbite/widgets-react\";\r\n\r\nimport { ProviderFactory } from \"../sdk/providers/ProviderFactory\";\r\nimport { BrowserStorageService } from \"../sdk/BrowserStorageService\";\r\nimport { ClientOpService } from \"../sdk/ClientOpService\";\r\nimport NavService from \"../sdk/NavService\";\r\nimport { getAadAuthProvider } from \"../sdk/providers/auth/AadAuthProvider\";\r\n\r\n/**\r\n * Responsible for managing application state related to Single Page App (SPA)\r\n */\r\nclass SpaStoreClass {\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n\r\n private _currentOrg?: string; // Stores the org route of the current org\r\n protected static _appInsights?: ApplicationInsights; // Provides telemtry to the front-end\r\n\r\n token: string | null = null; // Stores the API token\r\n refreshToken: string | null = null; // Stores the refresh token\r\n authProviderType: ProviderType = ProviderType.Unknown; // Stores a reference to the auth provider used to login\r\n config: SpaConfig = {} as SpaConfig; // Stores the SPA configuration received from the API\r\n loginCallbacks: { (): void }[] = []; // Stores an array of callbacks to make after the soundbite API token is received\r\n\r\n //////////[ Observables ]/////////////////////////////////////////////////////////////////////////\r\n\r\n invalidOrgRoute: boolean = false; // Stores a value indicating that the requested org route is invalid (not found or access denied)\r\n\r\n //////////[ Constructor ]/////////////////////////////////////////////////////////////////////////\r\n\r\n constructor() {\r\n makeObservable(this, {\r\n // Observables\r\n invalidOrgRoute: observable,\r\n // Actions\r\n loginWithThirdParty: action,\r\n logout: action,\r\n loginToOrg: action,\r\n processPayload: action,\r\n });\r\n }\r\n\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Responsible for initializing the application. Initialization consists of requesting the\r\n * initial application payload which contains configuration settings for the application as well\r\n * as additional data if the user has a valid HTTP-only refresh token. This token will be sent\r\n * automatically by the browser (if available). This method must then determine whether\r\n */\r\n async initialize(): Promise {\r\n // Acquire the application payload a second time in order to retrieve organizations for user\r\n let url = process.env.REACT_APP_CONFIG_API_PREFIX + `/spa/load`;\r\n let options = {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n } as AxiosRequestConfig;\r\n if (this.token) {\r\n options.headers.Authorization = `Bearer ${this.token}`;\r\n }\r\n\r\n // Determine if the refresh token is present in local storage\r\n const localRefreshToken = BrowserStorageService.refreshToken;\r\n const initialOrgRoute = this.getInitialOrgRoute();\r\n\r\n if (localRefreshToken) {\r\n options.headers.rt = localRefreshToken;\r\n if (initialOrgRoute) {\r\n url += `?orgRoute=${initialOrgRoute}`;\r\n }\r\n }\r\n\r\n // Determine if last login provider is present in local storage\r\n const localLoginProvider = BrowserStorageService.authProviderType;\r\n if (localLoginProvider) {\r\n this.authProviderType = localLoginProvider;\r\n }\r\n\r\n // Acquire the initial application payload to get configuration\r\n var payload = (await Axios.get(url, options)).data;\r\n this.processPayload(payload, true);\r\n }\r\n\r\n /**\r\n * Determines the initial organization route. This method will return the org route in the URL if\r\n * present. If not, the method uses the last org route in local storage. Method will return null\r\n * when no org route can be determined.\r\n */\r\n private getInitialOrgRoute(): string | null {\r\n const result =\r\n Utils.getOrgRouteFromPath(window.location.pathname) ??\r\n BrowserStorageService.lastSelectedOrg;\r\n return result;\r\n }\r\n\r\n //////////[ Actions ]/////////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Responsible for initiating third-party auth login using the specified provider\r\n * @param providerType - specifies which authentication provider to use\r\n */\r\n async loginWithThirdParty(providerType: ProviderType) {\r\n this.authProviderType = providerType;\r\n BrowserStorageService.authProviderType = providerType;\r\n const provider = ProviderFactory.getAuthProvider();\r\n if (provider !== null) {\r\n WidgetStore.authState = AuthState.ThirdPartyAuthorizing;\r\n await provider.loginAsync(false);\r\n }\r\n }\r\n\r\n /**\r\n * Starts the flow to grant admin access for the current provider\r\n * */\r\n async grantAdminAsync() {\r\n // Log the user out using the appropriate auth provider (if set)\r\n // TODO: Make this AAD non-specific in the future when we support multiple login types\r\n const provider = getAadAuthProvider();\r\n if (provider) {\r\n await provider.grantAdminAsync();\r\n }\r\n }\r\n\r\n /**\r\n * Responsible for initiating login using the specified provider\r\n * @param providerType - provider to use for logging the user into the application\r\n */\r\n async logout() {\r\n // If the provider type is not set attempt to acquire it from local storage\r\n if (!this.authProviderType) {\r\n var loginProviderTypeLs = BrowserStorageService.authProviderType;\r\n if (loginProviderTypeLs) {\r\n this.authProviderType = loginProviderTypeLs;\r\n }\r\n }\r\n\r\n // Log the user out using the appropriate auth provider (if set)\r\n const provider = ProviderFactory.getAuthProvider();\r\n if (provider) {\r\n await provider.logoutAsync();\r\n }\r\n\r\n // Clear values from memory / local storage\r\n this.token = null;\r\n this.refreshToken = null;\r\n BrowserStorageService.authProviderType = null;\r\n BrowserStorageService.refreshToken = null;\r\n WidgetStore.authState = AuthState.AuthRequired;\r\n }\r\n\r\n /**\r\n * Request a Soundbite API token for the specified organization.\r\n * @param orgRoute - route of the organization with which the auth token should be associated.\r\n * @returns - flag indicating whether login was successful.\r\n */\r\n async loginToOrg(orgRoute: string): Promise {\r\n var payload: AppPayload = await AzureAuthService.loginToOrgAzureAD(\r\n orgRoute,\r\n null as any as User\r\n );\r\n this.processPayload(payload, false);\r\n await WidgetStore.organizations.setCurrentOrganization(orgRoute);\r\n BrowserStorageService.lastSelectedOrg = orgRoute;\r\n return this.token ? true : false;\r\n }\r\n\r\n /**\r\n * Responsible for handling all tasks that need to occur when first receiving a Soundbite API\r\n * token. This includes setting values in this class, saving tokens to local storage, parsing the\r\n * refresh token to determine the associated organization, and setting authentication state.\r\n * @param token - incoming token\r\n * @param refreshToken - incoming refresh token\r\n */\r\n private storeTokenInfo(token: string, refreshToken: string) {\r\n BrowserStorageService.refreshToken = refreshToken;\r\n this.token = token;\r\n this.refreshToken = refreshToken;\r\n WidgetStore.authState = AuthState.Authorized;\r\n\r\n // Process all of the login callbacks that have been registered and then clear them out\r\n this.loginCallbacks.forEach((callback) => callback());\r\n this.loginCallbacks = [];\r\n }\r\n\r\n /**\r\n * Responsible processing application payload data and setting state accordingly.\r\n * @param payload - application payload received from the server.\r\n * @param isInit - flag indicating that this is the initialization call for the SPA\r\n */\r\n processPayload(payload: AppPayload, isInit: boolean): void {\r\n // Make sure the payload was received\r\n if (payload) {\r\n // Determine whether the configuration was received and apply it if so\r\n if (payload.config) {\r\n this.loadConfig(payload.config);\r\n }\r\n\r\n // Determine whether a token was issued\r\n if (payload.token) {\r\n // Presence of a token implies user and organizations should be present\r\n WidgetStore.users.currentUser = payload.user;\r\n WidgetStore.organizations.myOrgs = payload.organizations;\r\n\r\n // Determine whether the \"current\" organization is set\r\n if (payload.organization) {\r\n this.storeTokenInfo(payload.token, payload.refreshToken);\r\n WidgetStore.organizations.currentOrg = payload.organization;\r\n WidgetStore.authState = AuthState.Authorized;\r\n\r\n // User is authorized so determine where they should \"go\"\r\n if (NavService.hasReturnPage) {\r\n NavService.gotoReturnPage();\r\n } else {\r\n // Determine whether the current path implies the user should be redirected to the org feed\r\n const pathsToRedirect = [\r\n \"/\",\r\n \"/public/sso/logino365\",\r\n \"/public/sso/loginokta\",\r\n ];\r\n const currentPath = window.location.pathname?.toLowerCase();\r\n if (pathsToRedirect.find((i) => i === currentPath)) {\r\n // Send the user to the current organization's feed\r\n NavService.goto(\r\n `/organizations/${payload.organization.details.route}`\r\n );\r\n }\r\n }\r\n } else {\r\n // When no organization is present the user must select an org\r\n this.storeTokenInfo(payload.token, payload.refreshToken); // This orgRoute value must match value in Masticore.Constants.UserOnlyOrgRoute\r\n WidgetStore.authState = AuthState.OrganizationSelect;\r\n }\r\n } else {\r\n // Determine if payload is from spa initialization\r\n if (isInit) {\r\n // SPA init without a token indicates authentication is required.\r\n WidgetStore.authState = AuthState.AuthRequired;\r\n } else {\r\n // Not from SPA init implies an authorization failure.\r\n WidgetStore.authState = AuthState.AuthFailed;\r\n }\r\n }\r\n }\r\n }\r\n\r\n loadConfig(config: SpaConfig) {\r\n this.config = config;\r\n try {\r\n if (!config.telemetryKey) return;\r\n\r\n // Load the app insights client from the config\r\n const appInsights = new ApplicationInsights({\r\n config: {\r\n connectionString: config.telemetryKey,\r\n },\r\n });\r\n appInsights.loadAppInsights();\r\n appInsights.trackPageView();\r\n\r\n SpaStoreClass._appInsights = appInsights;\r\n console.debug(\"App Insights Loaded with key\", config.telemetryKey);\r\n } catch (err: any) {\r\n console.error(\"Error loading app insights:\", err);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the organization that is currently being displayed in the UI.\r\n */\r\n get currentOrg(): string | null {\r\n return this._currentOrg ?? null;\r\n }\r\n\r\n /**\r\n * Stores off the authentication service to local storage. We do this so we know what service was\r\n * originally used to login so we can log the user out using the same auth provider.\r\n * @param authProvider - authentication provider used to originally authenticate the user.\r\n */\r\n setAuthProvider(authProvider: ProviderType): void {\r\n if (authProvider) {\r\n BrowserStorageService.authProviderType = authProvider;\r\n }\r\n }\r\n\r\n //TODO: we probably want to pop up a dialog to let the user know what is about to happen or\r\n // give them the option to re-authenticate.\r\n\r\n /**\r\n * Determines whether any client operations failed due to authentication issues and if so\r\n * initiates the third-party login process.\r\n */\r\n async checkClientOpAuthFailures(): Promise {\r\n if (ClientOpService.requiresAuthToProcessFailedOps) {\r\n const authProvider = ProviderFactory.getAuthProvider();\r\n if (authProvider) {\r\n authProvider.loginAsync(true);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default new SpaStoreClass();\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { NavLink as RouterNavLink } from \"react-router-dom\";\r\n\r\nimport { Invite, SoundbiteApiConfig, UserRole, Utils } from \"@soundbite/api\";\r\nimport {\r\n ShowWhen,\r\n Loader,\r\n WidgetStore,\r\n DialogManager,\r\n} from \"@soundbite/widgets-react\";\r\n\r\nimport InviteBtn from \"../controls/InviteBtn\";\r\nimport SpaStore from \"../../store/Spa.Store\";\r\n\r\nexport default observer(() => {\r\n const openProfileDialog = async () => {\r\n DialogManager.ShowProfileDialog();\r\n };\r\n\r\n const logout = async () => {\r\n await SpaStore.logout();\r\n };\r\n\r\n const onInviteAsync = async (emails: string[]): Promise => {\r\n const invites = new Array();\r\n for (const eml of emails) {\r\n invites.push({ token: eml });\r\n }\r\n await WidgetStore.users.inviteUsersAsync(invites);\r\n };\r\n\r\n let avatarlUrl = SoundbiteApiConfig.imgAvatarUrl;\r\n\r\n if (WidgetStore.users.currentUser?.imageSrc) {\r\n avatarlUrl = WidgetStore.users.currentUser.imageSrc;\r\n }\r\n\r\n return (\r\n
  • \r\n \r\n \r\n
    \r\n
    \r\n \r\n {Utils.userDisplay(WidgetStore.users.currentUser)}\r\n \r\n
    \r\n \r\n \"Avatar\"\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n My Profile\r\n \r\n 1\r\n }\r\n >\r\n \r\n \r\n Home\r\n \r\n \r\n \r\n \r\n \r\n Admin\r\n \r\n \r\n \r\n \r\n Support\r\n \r\n \r\n \r\n \r\n \r\n Share\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Logout\r\n
    \r\n
    \r\n \r\n
  • \r\n );\r\n});\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Button } from \"reactstrap\";\r\nimport { WidgetStore } from \"@soundbite/widgets-react\";\r\nimport { Utils } from \"@soundbite/api\";\r\n\r\nexport interface IFeedbackBtnProps {\r\n subject?: string;\r\n text?: string;\r\n body?: string;\r\n to?: string;\r\n textOnly?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport const ContactBtn: React.FC = observer(\r\n (props: IFeedbackBtnProps) => {\r\n // To\r\n const encodedTo = encodeURIComponent(\r\n props.to || \"Support@Soundbite.Freshdesk.Com\"\r\n );\r\n\r\n // Subject\r\n const text = props.text || \"Support\";\r\n const subject = props.subject || `${text}: [Your Subject]`;\r\n const encodedSubject = encodeURIComponent(subject);\r\n\r\n // Body\r\n const details = () => {\r\n const location = `Location: ${window.location.href}`;\r\n if (WidgetStore.users.currentUser) {\r\n const me = WidgetStore.users.currentUser;\r\n const signature = \"Thank you,\";\r\n const name = Utils.userDisplay(me);\r\n const email = me.email;\r\n return `\\n\\n${location}\\n\\n${signature}\\n${name}\\n${email}`;\r\n } else {\r\n return `\\n\\n${location}`;\r\n }\r\n };\r\n\r\n const body = props.body || \"\";\r\n const encodedBody = encodeURIComponent(`${body}\\n\\n${details()}\\n\\n`);\r\n\r\n const linkHref = `mailto:${encodedTo}?subject=${encodedSubject}&body=${encodedBody}`;\r\n\r\n // Wrap mode\r\n\r\n // Text Mode\r\n if (props.textOnly) {\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n }\r\n\r\n // Button Mode\r\n const classes = `btn-icon btn-3 ${props.className} `;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {text}\r\n \r\n \r\n );\r\n }\r\n);\r\n","import React, { Component } from \"react\";\r\n\r\nimport SpaStore from \"../../store/Spa.Store\";\r\nimport { ContactBtn } from \"../controls/ContactBtn\";\r\n\r\n/** The contents for a footer in the app, including a set of helpful links */\r\nexport class FooterBody extends Component {\r\n async onLogout() {\r\n await SpaStore.logout();\r\n }\r\n\r\n render() {\r\n return (\r\n
      \r\n
    • \r\n \r\n Soundbite.AI\r\n \r\n  - https://Soundbite.AI\r\n \r\n \r\n
    • \r\n
    • \r\n \r\n
    • \r\n
    • \r\n \r\n Terms of Service\r\n \r\n
    • \r\n
    • \r\n \r\n Logout\r\n \r\n
    • \r\n
    \r\n );\r\n }\r\n}\r\n\r\n/** A true footer for the main page that replaces itself with a standard-size padding */\r\nexport const Footer: React.FC = () => {\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\n/** Just the links and only visible at small size */\r\nexport const MiniFooter: React.FC = () => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n","import React, { useState, useEffect, Fragment } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Collapse, Navbar, NavLink, NavItem, Nav, Container } from \"reactstrap\";\r\nimport { NavLink as RouterNavLink, useParams } from \"react-router-dom\";\r\n\r\nimport {\r\n Group,\r\n OrganizationWithPermissions,\r\n PersonRole,\r\n UserRole,\r\n} from \"@soundbite/api\";\r\nimport {\r\n GlobalTheme,\r\n Loader,\r\n ShowWhen,\r\n WidgetStore,\r\n} from \"@soundbite/widgets-react\";\r\n\r\nimport { NewGroupDialog } from \"../dialogs/NewGroupDialog\";\r\nimport UserMenu from \"../controls/UserMenu\";\r\nimport SpaStore from \"../../store/Spa.Store\";\r\nimport { MiniFooter } from \"./Footer\";\r\n\r\nexport const SideNav: React.FC = observer(() => {\r\n const { orgRoute } = useParams<{ orgRoute: string }>();\r\n const [myGroups, setMyGroups] = useState();\r\n const [org, setOrg] = useState();\r\n\r\n const flags = SpaStore.config.featureFlags;\r\n\r\n const isAdminOrMore = WidgetStore.isPersonRole(PersonRole.Admin);\r\n const isGlobalAdmin = WidgetStore.isUserRole(UserRole.God);\r\n\r\n const load = async (allowCache = true) => {\r\n if (!allowCache) {\r\n setMyGroups(undefined);\r\n setOrg(undefined);\r\n }\r\n const groupsPromise = WidgetStore.organizations.readMyGroupsAsync(\r\n orgRoute,\r\n allowCache\r\n );\r\n\r\n const newOrg = await WidgetStore.organizations.readOrgAsync(\r\n orgRoute,\r\n allowCache\r\n );\r\n setOrg(newOrg);\r\n const newGroups = await groupsPromise;\r\n setMyGroups(newGroups);\r\n };\r\n\r\n useEffect(() => {\r\n load();\r\n // eslint-disable-next-line\r\n }, [orgRoute]);\r\n\r\n // Mobile menu\r\n const [isMenuOpen, setIsMenuOpen] = useState(false);\r\n\r\n const toggleCollapse = () => {\r\n setIsMenuOpen(!isMenuOpen);\r\n };\r\n const closeMenu = () => {\r\n setIsMenuOpen(false);\r\n };\r\n\r\n // New Team Dialog\r\n const [createTeamIsOpen, setCreateTeamOpen] = useState(false);\r\n\r\n const onCloseCreateTeam = () => {\r\n setCreateTeamOpen(false);\r\n };\r\n\r\n const onOpenCreateTeam = () => {\r\n closeMenu();\r\n setCreateTeamOpen(true);\r\n };\r\n\r\n const Discovery: React.FC = () => {\r\n return (\r\n \r\n

    \r\n {org?.details.name}\r\n

    \r\n \r\n
    \r\n );\r\n };\r\n\r\n const GroupLink: React.FC<{ team: Group }> = (props: { team: Group }) => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n const MyGroups: React.FC = () => {\r\n return (\r\n 0}>\r\n
    \r\n Groups\r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n };\r\n\r\n const Admin: React.FC = () => {\r\n return (\r\n \r\n

    \r\n Admin\r\n

    \r\n \r\n
    \r\n );\r\n };\r\n\r\n function SbNavItem(props: {\r\n className?: string;\r\n to: string;\r\n title: string;\r\n icon?: string;\r\n }): JSX.Element {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n function SbNavLink(props: {\r\n to: string;\r\n title: string;\r\n icon?: string;\r\n }): JSX.Element {\r\n return (\r\n \r\n \r\n {props.title}\r\n \r\n );\r\n }\r\n\r\n const GlobalAdmin: React.FC = () => {\r\n return (\r\n \r\n

    \r\n Global Admin\r\n

    \r\n \r\n
    \r\n );\r\n };\r\n\r\n const isCreateTeamAllowed = WidgetStore.isPersonRole(\r\n WidgetStore.organizations.currentOrg?.permissions?.minRoleToCreateTeam ??\r\n PersonRole.Person\r\n );\r\n\r\n const CreateGroup: React.FC = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n});\r\n","import React from \"react\";\r\nimport { NavItem } from \"reactstrap\";\r\nimport { NavLink, useParams } from \"react-router-dom\";\r\nimport {\r\n faCalendar,\r\n faCalendarCheck,\r\n faCalendarDay,\r\n faPodcast,\r\n faUsers,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nimport { IconLink } from \"@soundbite/widgets-react\";\r\n\r\nexport const GroupTabs = () => {\r\n let { orgRoute, groupRoute } = useParams<{\r\n orgRoute: string;\r\n groupRoute: string;\r\n }>();\r\n\r\n return (\r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { NavItem } from \"reactstrap\";\r\nimport {\r\n faCalendar,\r\n faCalendarCheck,\r\n faCalendarDay,\r\n faPodcast,\r\n faPeopleGroup,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { NavLink, useParams } from \"react-router-dom\";\r\nimport { observer } from \"mobx-react-lite\";\r\n\r\nimport { ShowWhen, WidgetStore, IconLink } from \"@soundbite/widgets-react\";\r\n\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\n\r\nconst OrgTabs: React.FC = observer(() => {\r\n //////////[ Properties ]//////////////////////////////////////////////////////////////////////////\r\n\r\n let { orgRoute } = useParams<{ orgRoute: string }>();\r\n\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n\r\n return (\r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n});\r\n\r\nexport default OrgTabs;\r\n","import React from \"react\";\r\nimport { NavItem } from \"reactstrap\";\r\nimport { NavLink, useParams } from \"react-router-dom\";\r\nimport {\r\n faUserPlus,\r\n faUserCog,\r\n faUsersCog,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nimport { IconLink, ShowWhen, WidgetStore } from \"@soundbite/widgets-react\";\r\nimport { PersonRole } from \"@soundbite/api\";\r\n\r\nexport const DirectoryTabs = () => {\r\n let { orgRoute } = useParams<{ orgRoute: string }>();\r\n const isAdminOrMore = WidgetStore.isPersonRole(PersonRole.Admin);\r\n\r\n return (\r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Container, Navbar, Nav } from \"reactstrap\";\r\n\r\nimport { GroupTabs } from \"../controls/GroupTabs\";\r\nimport OrgTabs from \"../controls/OrgTabs\";\r\nimport { Route, Switch } from \"react-router\";\r\nimport { DirectoryTabs } from \"../controls/DirectoryTabs\";\r\nimport UserMenu from \"../controls/UserMenu\";\r\n\r\nexport const TopNav: React.FC = () => {\r\n return (\r\n \r\n \r\n \r\n
      \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","import React, { Component } from \"react\";\r\n\r\nexport class Header extends Component {\r\n render() {\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n","/**\r\n * Enum for platform\r\n * */\r\nexport enum Platform {\r\n Web = 0,\r\n Teams = 1,\r\n}\r\n\r\n/**\r\n * Class for capturing intrinsic settings\r\n * There are NOT loaded from the server\r\n * */\r\nexport class EnvironmentSettings {\r\n // TODO: Figure out how to determine if we're in Teams or not\r\n platform = Platform.Web;\r\n\r\n // Singleton\r\n static instance = new EnvironmentSettings();\r\n}\r\n","export enum BackgroundMode {\r\n Default = \"\",\r\n Dark = \"sb-dark-background\",\r\n}\r\n\r\nexport default class Background {\r\n static remove(mode: BackgroundMode) {\r\n if (mode.length === 0) return;\r\n\r\n document.body.classList.remove(mode);\r\n }\r\n\r\n static add(mode: BackgroundMode) {\r\n if (mode.length === 0) return;\r\n\r\n document.body.classList.add(mode);\r\n }\r\n\r\n public static apply(mode: BackgroundMode = BackgroundMode.Default) {\r\n Background.remove(BackgroundMode.Default);\r\n Background.remove(BackgroundMode.Dark);\r\n\r\n Background.add(mode);\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Container } from \"reactstrap\";\r\n\r\nimport { SideNav } from \"../nav/SideNav\";\r\nimport { TopNav } from \"../nav/TopNav\";\r\nimport { Header } from \"../nav/Header\";\r\nimport { Footer } from \"../nav/Footer\";\r\nimport { EnvironmentSettings, Platform } from \"../../sdk/EnvironmentSettings\";\r\nimport Background, { BackgroundMode } from \"../controls/Background\";\r\nimport { ThemeBanner } from \"@soundbite/widgets-react\";\r\n\r\nexport class Private extends Component {\r\n render() {\r\n Background.apply(BackgroundMode.Default);\r\n return (\r\n \r\n \r\n
    \r\n {EnvironmentSettings.instance.platform === Platform.Web && (\r\n \r\n )}\r\n
    \r\n \r\n
    \r\n \r\n {this.props.children}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport {\r\n checkDialogHash,\r\n SeriesWidget,\r\n WidgetStore,\r\n} from \"@soundbite/widgets-react\";\r\n\r\nimport { Private } from \"./Private\";\r\n\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexport const Calendar: React.FC = observer(() => {\r\n //////////[ Variables ]///////////////////////////////////////////////////////////////////////////\r\n\r\n let { orgRoute, groupRoute } = useParams<{\r\n orgRoute: string;\r\n groupRoute: string;\r\n }>();\r\n\r\n // When the widget first loads\r\n useEffect(() => {\r\n checkDialogHash(orgRoute, groupRoute);\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import React, { useEffect } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport {\r\n checkDialogHash,\r\n FeedMode,\r\n FeedWidget,\r\n} from \"@soundbite/widgets-react\";\r\nimport { Private } from \"./Private\";\r\nimport { SessionSecurityType } from \"../../../../api/dist\";\r\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\r\n\r\n/***************************************************************************************************\r\n * Component Properties Interface\r\n **************************************************************************************************/\r\ninterface IProps {\r\n orgRoute: string;\r\n groupRoute: string;\r\n securityType: SessionSecurityType;\r\n icon?: IconProp;\r\n}\r\n\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexport const Feed: React.FC = observer((props: IProps) => {\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n\r\n // When the widget first loads\r\n useEffect(() => {\r\n checkDialogHash(props.orgRoute, props.groupRoute);\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import React from \"react\";\r\n\r\nimport { Group, Member, Utils } from \"@soundbite/api\";\r\n\r\nimport { SingletonDialogBase } from \"@soundbite/widgets-react\";\r\n\r\nexport interface IMemberAndGroup {\r\n member: Member;\r\n group: Group;\r\n}\r\n\r\nexport class DeleteMemberDlg extends SingletonDialogBase {\r\n // Static\r\n\r\n static instance: DeleteMemberDlg;\r\n\r\n public static open(\r\n memberAndGroup?: IMemberAndGroup,\r\n onSubmit?: (memberAndGroup?: IMemberAndGroup) => void\r\n ): void {\r\n DeleteMemberDlg.instance.open(memberAndGroup, onSubmit);\r\n }\r\n\r\n public static close(): void {\r\n DeleteMemberDlg.instance.close();\r\n }\r\n\r\n // Instance\r\n\r\n constructor(props: object) {\r\n super(props);\r\n DeleteMemberDlg.instance = this;\r\n this.headerClassname = \"bg-gradient-danger\";\r\n }\r\n\r\n protected modalHeader() {\r\n return Delete Member;\r\n }\r\n\r\n protected modalBody() {\r\n let displayName = Utils.userDisplay(this.state.data?.member.person.user);\r\n\r\n return (\r\n \r\n Are you sure you want to remove {displayName} from{\" \"}\r\n {this.state.data?.group.name}?\r\n \r\n );\r\n }\r\n\r\n protected modalFooter() {\r\n return (\r\n \r\n \r\n Close\r\n {\" \"}\r\n \r\n Delete\r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\n\r\nimport { PeoplePicker, WidgetStore } from \"@soundbite/widgets-react\";\r\nimport { SingletonDialogBase } from \"@soundbite/widgets-react\";\r\n\r\nexport interface IAddMember {\r\n newPeopleTokens: string[];\r\n orgRoute?: string;\r\n}\r\n\r\nexport class AddMemberDialog extends SingletonDialogBase {\r\n // Static\r\n\r\n static instance: AddMemberDialog;\r\n\r\n // TODO: Restructure to make empty opens less dumb\r\n public static open(\r\n addMemberProps?: IAddMember,\r\n onSubmit?: (addMember?: IAddMember) => void\r\n ): void {\r\n if (!addMemberProps)\r\n addMemberProps = {\r\n newPeopleTokens: [],\r\n orgRoute: WidgetStore.organizations.currentOrg?.details.route,\r\n };\r\n AddMemberDialog.instance.open(addMemberProps, onSubmit);\r\n }\r\n\r\n public static close(): void {\r\n AddMemberDialog.instance.close();\r\n }\r\n\r\n // Instance\r\n\r\n constructor(props: IAddMember) {\r\n super(props);\r\n AddMemberDialog.instance = this;\r\n this.onPeoplePickerChange = this.onPeoplePickerChange.bind(this);\r\n }\r\n\r\n protected modalHeader() {\r\n return Add Members;\r\n }\r\n\r\n protected onPeoplePickerChange(peopleIds: string[]): void {\r\n let data = this.state.data;\r\n if (data) data.newPeopleTokens = peopleIds;\r\n this.setState({ data: data });\r\n }\r\n\r\n protected modalBody() {\r\n if (this.state.data?.orgRoute == null) {\r\n return Loading Organization...;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React, { Fragment, useRef } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Card, Row, Col, CardHeader } from \"reactstrap\";\r\nimport {\r\n Group,\r\n GroupDetails,\r\n IndexPageResponse,\r\n Invite,\r\n Member,\r\n MemberRole,\r\n MembersService,\r\n OrganizationWithPermissions,\r\n PageUtils,\r\n User,\r\n} from \"@soundbite/api\";\r\nimport {\r\n Avatar,\r\n DialogManager,\r\n EmptyCardBody,\r\n InfiniteScrollDataHelper,\r\n InfiniteTable,\r\n Loader,\r\n ShowWhen,\r\n Toggle,\r\n WidgetStore,\r\n} from \"@soundbite/widgets-react\";\r\n\r\nimport { DeleteMemberDlg, IMemberAndGroup } from \"../dialogs/DeleteMemberDlg\";\r\nimport { AddMemberDialog, IAddMember } from \"../dialogs/AddMemberDialog\";\r\nimport { useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nexport interface IMemberCardProps {\r\n title?: string;\r\n myPersonRoute?: string;\r\n orgRoute: string;\r\n groupRoute: string;\r\n}\r\n\r\nexport const MemberCard: React.FC = observer(\r\n (props: IMemberCardProps) => {\r\n const { orgRoute, groupRoute } = useParams<{\r\n orgRoute: string;\r\n groupRoute: string;\r\n }>();\r\n\r\n /** Infiniate Scroll State **/\r\n const maxTake = useRef(128);\r\n const maxTotalItems = useRef(2147483647);\r\n const [count, setCount] = useState(undefined);\r\n const items = useRef>(\r\n new Map()\r\n );\r\n const setItems = (page: IndexPageResponse) => {\r\n PageUtils.addPageToMap(page, items.current);\r\n };\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [org, setOrg] = useState(\r\n undefined\r\n );\r\n const [group, setGroup] = useState(undefined);\r\n\r\n const myPersonRoute = props.myPersonRoute ?? org?.details.me?.route;\r\n const [isOwnerOrMore, setIsOwnerOrMore] = useState(false);\r\n const [isAddMemberEnabled, setIsAddMemberEnabled] = useState(false);\r\n\r\n async function load() {\r\n if (isLoading) {\r\n return;\r\n }\r\n setIsLoading(true);\r\n setOrg(undefined);\r\n setGroup(undefined);\r\n\r\n const orgPromise = WidgetStore.organizations.readOrgAsync(props.orgRoute);\r\n const groupPromise = WidgetStore.groups.readGroupAsync(\r\n props.orgRoute,\r\n props.groupRoute\r\n );\r\n const membersPromise = MembersService.readAllAsync(\r\n props.orgRoute,\r\n props.groupRoute,\r\n { includesCounts: true }\r\n );\r\n const [newOrg, newGroup, firstMembersPage] = await Promise.all([\r\n orgPromise,\r\n groupPromise,\r\n membersPromise,\r\n ]);\r\n\r\n setItems(firstMembersPage);\r\n setCount(firstMembersPage.totalCount);\r\n maxTake.current = firstMembersPage.maxTake;\r\n\r\n setIsOwnerOrMore(WidgetStore.isMemberRole(MemberRole.Owner, newGroup));\r\n setIsAddMemberEnabled(\r\n WidgetStore.isMemberRole(\r\n newOrg.permissions.minRoleForTeamInvite,\r\n newGroup\r\n )\r\n );\r\n setOrg(newOrg);\r\n setGroup(newGroup);\r\n setIsLoading(false);\r\n }\r\n\r\n useEffect(() => {\r\n load();\r\n // eslint-disable-next-line\r\n }, [orgRoute, groupRoute]);\r\n\r\n async function onSubmitAddMember(addMember?: IAddMember) {\r\n if (!addMember) return;\r\n\r\n const invites = addMember.newPeopleTokens.map((p): Invite => {\r\n return { token: p };\r\n });\r\n await WidgetStore.members.addMembersAsync(\r\n props.orgRoute,\r\n props.groupRoute,\r\n invites\r\n );\r\n await load();\r\n }\r\n\r\n function onAddMember() {\r\n let addMember: IAddMember = {\r\n newPeopleTokens: [],\r\n orgRoute,\r\n };\r\n AddMemberDialog.open(addMember, onSubmitAddMember);\r\n }\r\n\r\n async function onSubmitRemoveMember(memberAndGroup?: IMemberAndGroup) {\r\n if (memberAndGroup) {\r\n await WidgetStore.members.deleteMemberAsync(\r\n props.orgRoute,\r\n props.groupRoute,\r\n memberAndGroup.member.route\r\n );\r\n await load();\r\n }\r\n }\r\n\r\n function onDeleteMember(group: Group, member: Member) {\r\n DeleteMemberDlg.open({ group, member }, onSubmitRemoveMember);\r\n }\r\n\r\n async function onToggleOwner(ownerChecked: boolean, member: Member) {\r\n member.memberRole = ownerChecked ? MemberRole.Owner : MemberRole.Member;\r\n await WidgetStore.members.updateMemberAsync(\r\n props.orgRoute,\r\n props.groupRoute,\r\n member\r\n );\r\n }\r\n\r\n function onMemberClick(user: User) {\r\n DialogManager.ShowProfileDialog(user, false);\r\n }\r\n\r\n const TableHeader: React.FC = () => {\r\n return (\r\n \r\n \r\n \r\n Name\r\n \r\n \r\n E-Mail\r\n \r\n \r\n Owner\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const cardHeader = () => {\r\n return (\r\n \r\n \r\n \r\n

    \r\n \r\n {props.title ?? `${group && group.name} Members`}\r\n

    \r\n \r\n
    {count} Members
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n  Invite\r\n \r\n \r\n  Members\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const noMembers = () => {\r\n return (\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n  Invite Members\r\n \r\n \r\n
    \r\n \r\n
    \r\n );\r\n };\r\n\r\n /************************************************************************************************/\r\n /** Infinite Scroll */\r\n /************************************************************************************************/\r\n let itemCount = count ?? 0;\r\n\r\n if (itemCount > maxTotalItems.current) {\r\n itemCount = maxTotalItems.current + 1;\r\n }\r\n\r\n const isItemLoaded = (index: number) => {\r\n const item = items.current.get(index);\r\n return item != null;\r\n };\r\n\r\n const scrollData: InfiniteScrollDataHelper = new InfiniteScrollDataHelper(\r\n (startIndex: number, stopIndex: number) => {\r\n return new Promise(async (resolve, reject) => {\r\n try {\r\n // Indicate\r\n for (let index = startIndex; index <= stopIndex; index++) {\r\n items.current.set(index, null);\r\n }\r\n\r\n const page = await MembersService.readAllAsync(\r\n orgRoute,\r\n groupRoute,\r\n {\r\n skip: startIndex - 1,\r\n take: maxTake.current,\r\n }\r\n );\r\n\r\n PageUtils.addPageToMap(page, items.current);\r\n\r\n resolve();\r\n } catch (err) {\r\n reject(err);\r\n }\r\n });\r\n }\r\n );\r\n\r\n const ItemRow: React.FC<{ item: Member; index: number }> = (props: {\r\n item: Member;\r\n index: number;\r\n }) => {\r\n const item = props.item;\r\n const isRowForCurrentUser = myPersonRoute === item.person.route;\r\n return (\r\n \r\n \r\n onMemberClick(item.person.user)}\r\n title=\"Show Member Profile\"\r\n />\r\n \r\n \r\n \r\n {item.person.user.email}\r\n \r\n \r\n \r\n {/* When the curent user is an admin, display a button for toggling members who are not themselves into owner*/}\r\n \r\n \r\n
    Owner
    \r\n
    \r\n \r\n = MemberRole.Owner}\r\n onToggle={(isEnabled: boolean) =>\r\n onToggleOwner(isEnabled, item)\r\n }\r\n title=\"Member is Team Owner\"\r\n />\r\n \r\n
    \r\n {/* When the current user is NOT an admin, then simply show static text when this row's user is an owner*/}\r\n \r\n = MemberRole.Owner}>\r\n
    Owner
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n group && onDeleteMember(group, item)}\r\n title=\"Remove User from Team\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const ItemRowLoading: React.FC<{ index?: number }> = (props: {\r\n index?: number;\r\n }) => {\r\n return (\r\n \r\n \r\n Loading {props.index != null ? `${props.index}...` : \"...\"}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const ItemRowLast: React.FC = () => {\r\n return (\r\n \r\n \r\n Cannot load more than {maxTotalItems.current} at this time\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n /** The Row component. This should be a table row, and noted that we don't use the style that regular `react-window` examples pass in.*/\r\n function TableRow({ index }: { index: number }) {\r\n const item = items.current.get(index);\r\n if (index >= maxTotalItems.current) {\r\n return ;\r\n } else if (item == null) {\r\n return ;\r\n } else {\r\n return ;\r\n }\r\n }\r\n\r\n /************************************************************************************************/\r\n\r\n return (\r\n \r\n \r\n {cardHeader()}\r\n
    \r\n \r\n }\r\n isItemLoaded={isItemLoaded}\r\n itemSize={73}\r\n loadMore={(startIndex: number, endIndex: number) =>\r\n scrollData.getMoreItems(startIndex, endIndex)\r\n }\r\n minimumBatchSize={128}\r\n row={TableRow}\r\n />\r\n \r\n {noMembers()}\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n);\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nimport { MemberCard } from \"../cards/MemberCard\";\r\nimport { Private } from \"./Private\";\r\n\r\nexport const Group: React.FC = observer(() => {\r\n let { orgRoute, groupRoute } = useParams<{\r\n orgRoute: string;\r\n groupRoute: string;\r\n }>();\r\n\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import React from \"react\";\r\nimport { Group } from \"@soundbite/api\";\r\n\r\nimport { SingletonDialogBase } from \"@soundbite/widgets-react\";\r\n\r\nexport class DeleteGroupDialog extends SingletonDialogBase {\r\n // Static\r\n\r\n static instance: DeleteGroupDialog;\r\n\r\n public static open(\r\n group?: Group,\r\n onSubmit?: (group?: Group) => void,\r\n onClose?: (group?: Group) => void\r\n ): void {\r\n DeleteGroupDialog.instance.open(group, onSubmit, onClose);\r\n }\r\n\r\n public static close(): void {\r\n DeleteGroupDialog.instance.close();\r\n }\r\n\r\n // Instance\r\n\r\n constructor(props: object) {\r\n super(props);\r\n DeleteGroupDialog.instance = this;\r\n this.headerClassname = \"bg-gradient-danger\";\r\n }\r\n\r\n subtitle() {\r\n return `${this.state.data && this.state.data.description}`;\r\n }\r\n\r\n protected modalHeader() {\r\n return (\r\n \r\n Delete {this.state.data && this.state.data.name}\r\n \r\n {this.subtitle()}\r\n \r\n \r\n );\r\n }\r\n\r\n protected modalBody() {\r\n return (\r\n \r\n Are you sure you want to permanently delete{\" \"}\r\n {this.state.data && this.state.data.name} from your\r\n organization?\r\n \r\n );\r\n }\r\n\r\n protected modalFooter() {\r\n return (\r\n \r\n \r\n Close\r\n {\" \"}\r\n \r\n Delete\r\n \r\n \r\n );\r\n }\r\n}\r\n","import React, { Fragment, useState } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { Card, CardHeader, Row, Col, Button } from \"reactstrap\";\r\n\r\nimport { Group, OrganizationWithPermissions } from \"@soundbite/api\";\r\nimport {\r\n EmptyCardBody,\r\n Loader,\r\n ShowWhen,\r\n WidgetStore,\r\n} from \"@soundbite/widgets-react\";\r\n\r\nimport { NewGroupDialog } from \"../dialogs/NewGroupDialog\";\r\nimport { DeleteGroupDialog } from \"../dialogs/DeleteGroupDialog\";\r\nimport SpaStore from \"../../store/Spa.Store\";\r\nimport { useEffect } from \"react\";\r\n\r\ninterface IProps {\r\n orgRoute: string;\r\n}\r\n\r\nexport const GroupsCard: React.FC = observer((props: IProps) => {\r\n // New Group Dialog\r\n const [createIsOpen, setCreateIsOpen] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [groups, setGroups] = useState(undefined);\r\n const [org, setOrg] = useState(\r\n undefined\r\n );\r\n\r\n const load = async (allowCache = true): Promise => {\r\n if (isLoading) {\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n if (!allowCache) {\r\n setGroups(undefined);\r\n setOrg(undefined);\r\n }\r\n\r\n const allGroupsPromise = WidgetStore.organizations.readGroupsAsync(\r\n props.orgRoute,\r\n allowCache\r\n );\r\n\r\n const newOrgPromise = WidgetStore.organizations.readOrgAsync(\r\n props.orgRoute,\r\n allowCache\r\n );\r\n\r\n const [newGroups, newOrg] = await Promise.all([\r\n allGroupsPromise,\r\n newOrgPromise,\r\n ]);\r\n const sortedNewGroups =\r\n newGroups.slice().sort((a, b) => (a > b ? -1 : 1)) ?? [];\r\n setGroups(sortedNewGroups);\r\n setOrg(newOrg);\r\n setIsLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n load();\r\n // eslint-disable-next-line\r\n }, [props.orgRoute, WidgetStore.organizations.currentOrg]);\r\n\r\n const onClose = () => {\r\n setCreateIsOpen(false);\r\n };\r\n\r\n const onOpenCreate = () => {\r\n setCreateIsOpen(true);\r\n };\r\n\r\n const onRefresh = async () => {\r\n load(false);\r\n };\r\n\r\n const TableBody = () => {\r\n const onSubmitDelete = async (grp?: Group) => {\r\n if (grp) {\r\n await WidgetStore.groups.deleteGroupAsync(props.orgRoute, grp.route);\r\n await load();\r\n }\r\n };\r\n\r\n const openDeleteGroupDialog = (grp: Group) => {\r\n DeleteGroupDialog.open(grp, onSubmitDelete);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n {groups?.map((grp: Group) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
    \r\n Name\r\n
    \r\n \r\n {grp.name}\r\n \r\n \r\n {grp.description}\r\n \r\n openDeleteGroupDialog(grp)}\r\n title=\"Delete Group\"\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n  Create Group\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n

    \r\n \r\n {groups?.length} {org?.details.name} Groups\r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n  Create\r\n \r\n \r\n  Group\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n});\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nimport { GroupsCard } from \"../cards/GroupsCard\";\r\nimport { Private } from \"./Private\";\r\n\r\nexport const Groups: React.FC = observer(() => {\r\n let { orgRoute } = useParams<{ orgRoute: string }>();\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import React, { Component } from \"react\";\r\nimport { Container, Row, Col } from \"reactstrap\";\r\n\r\nimport { ContactBtn } from \"../controls/ContactBtn\";\r\nimport Background, { BackgroundMode } from \"../controls/Background\";\r\nimport { GlobalTheme } from \"@soundbite/widgets-react\";\r\nimport SpaStore from \"../../store/Spa.Store\";\r\n\r\ninterface IPublicProps {\r\n cardWidthLg?: string; // This could be safer by making it a column props\r\n cardWidthMd?: string; // This could be safer by making it a column props\r\n}\r\n\r\nexport default class Public extends Component {\r\n constructor(props: IPublicProps) {\r\n super(props);\r\n this.onLogout = this.onLogout.bind(this);\r\n }\r\n\r\n async onLogout() {\r\n await SpaStore.logout();\r\n }\r\n\r\n render() {\r\n Background.apply(BackgroundMode.Dark);\r\n const cardMd = this.props.cardWidthMd || \"8\";\r\n const cardLg = this.props.cardWidthLg || \"6\";\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n

    \r\n A Better Way to Communicate\r\n

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n {this.props.children}\r\n \r\n \r\n \r\n soundbite.ai\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Logout\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n","import React, { Fragment, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { CardHeader, Card } from \"reactstrap\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { ProviderType } from \"@soundbite/api\";\r\nimport { AuthState, Loader, WidgetStore } from \"@soundbite/widgets-react\";\r\nimport Public from \"../views/Public\";\r\nimport { IAuthProvider } from \"../../sdk/providers/auth/IAuthProvider\";\r\nimport { getAadAuthProvider } from \"../../sdk/providers/auth/AadAuthProvider\";\r\n\r\n//////////[ Component Props ]///////////////////////////////////////////////////////////////////////\r\ninterface IProps {\r\n message?: string;\r\n}\r\n\r\n//////////[ Component Definition ]//////////////////////////////////////////////////////////////////\r\n\r\nexport const SingleSignOn: React.FC = observer((props: IProps) => {\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n\r\n const [isClicked, setIsClicked] = useState(false);\r\n\r\n async function onClickLogin(providerType: ProviderType) {\r\n switch (providerType) {\r\n case ProviderType.AAD:\r\n const provider: IAuthProvider = getAadAuthProvider();\r\n provider.loginAsync(false);\r\n setIsClicked(true);\r\n break;\r\n }\r\n }\r\n\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n\r\n const isLoading = WidgetStore.authState === AuthState.Authorizing;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n {props.message || \"Single Sign-On (SSO)\"}\r\n
    \r\n
    \r\n \r\n onClickLogin(ProviderType.AAD)}\r\n disabled={isLoading}\r\n title=\"Sign In to Microsoft 365\"\r\n style={{\r\n width: \"160px\",\r\n display: \"block\",\r\n clear: \"both\",\r\n margin: \"15px auto auto auto\",\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n  Microsoft 365\r\n \r\n \r\n \r\n \r\n \"OKTA\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n});\r\n","import React, { Fragment, useEffect } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { NavLink, useHistory } from \"react-router-dom\";\r\nimport { Invite, Utils } from \"@soundbite/api\";\r\nimport { AuthState, ShowWhen, WidgetStore } from \"@soundbite/widgets-react\";\r\n\r\nimport Public from \"./Public\";\r\nimport { Row, Col, Button, CardHeader, CardBody, Card } from \"reactstrap\";\r\nimport UserMenu from \"../controls/UserMenu\";\r\nimport InviteBtn from \"../controls/InviteBtn\";\r\nimport SpaStore from \"../../store/Spa.Store\";\r\nimport { SingleSignOn } from \"../login/SingleSignOn\";\r\n\r\n//////////[ Component Properties ]//////////////////////////////////////////////////////////////////\r\n\r\ninterface IProps {}\r\n\r\n//////////[ Component Definition ]//////////////////////////////////////////////////////////////////\r\n\r\nexport const Home: React.FC = observer((props: IProps) => {\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n if (\r\n WidgetStore.authState === AuthState.Authorized ||\r\n WidgetStore.authState === AuthState.OrganizationSelect\r\n ) {\r\n WidgetStore.organizations.readMyOrgsAsync();\r\n }\r\n }, []);\r\n\r\n const onInviteAsync = async (emails: string[]): Promise => {\r\n const invites = new Array();\r\n for (const eml of emails) {\r\n invites.push({ token: eml });\r\n }\r\n await WidgetStore.users.inviteUsersAsync(invites);\r\n };\r\n\r\n /**\r\n * Retrieves a Soundbite API token for the specified organization.\r\n * @param orgRoute - route of the organization whose associated token is being sought.\r\n */\r\n async function selectOrg(orgRoute: string) {\r\n // NOTE: when users enter the application and they are not logged in, the Authorize component\r\n // intercepts the display and renders an appropriate message based on where the user is in the\r\n // login process. One of the screens rendered by Authorize is the home control if the user\r\n // needs to select an organization. If the user is logging into the home page e.g. \"/\", then\r\n // the authorize will just re-render the home screen when the user successfully logs in and it\r\n // is very confusing to display the select organization screen again.This path check ensures\r\n // the user is forwarded on to the organization they choose in the login process.\r\n\r\n if (\r\n history.location.pathname === \"/\" ||\r\n history.location.pathname.indexOf(orgRoute) < 0\r\n ) {\r\n history.push(`/organizations/${orgRoute}`);\r\n }\r\n\r\n await SpaStore.loginToOrg(orgRoute);\r\n }\r\n\r\n window.scrollTo(0, 0);\r\n\r\n if (\r\n WidgetStore.authState === AuthState.Authorized ||\r\n WidgetStore.authState === AuthState.OrganizationSelect\r\n ) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n

    \r\n Welcome,{\" \"}\r\n {Utils.userDisplay(WidgetStore.users.currentUser, true)}\r\n

    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n

    \r\n You are not a part of any organizations\r\n

    \r\n

    \r\n If you would like a free trial of Soundbite, please contact{\" \"}\r\n \r\n Support@Soundite.AI\r\n {\" \"}\r\n to get started\r\n

    \r\n \r\n
    \r\n
    \r\n 0}>\r\n \r\n \r\n {WidgetStore.organizations.myOrgs?.map((org) => (\r\n selectOrg(org.route)}\r\n title={`Go to the ${org.name} organization`}\r\n >\r\n \r\n \r\n {org.name}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n 0\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n  Share\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n } else {\r\n return ;\r\n }\r\n});\r\n","import React, { useEffect } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { checkDialogHash, FeedWidget } from \"@soundbite/widgets-react\";\r\n\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexport const IFrameFeed: React.FC = observer(() => {\r\n // Determine whether automatic play/record has been specified in the hash portion of the URL\r\n\r\n const { orgRoute, groupRoute } = useParams<{\r\n orgRoute: string;\r\n groupRoute: string;\r\n }>();\r\n\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n\r\n // When the widget first loads\r\n useEffect(() => {\r\n checkDialogHash(orgRoute, groupRoute);\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n\r\n return ;\r\n});\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { SessionEditorWidget } from \"@soundbite/widgets-react\";\r\nimport { SessionDetails } from \"../../../../api/dist\";\r\n\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexport const IFrameSessionEditor: React.FC = observer(() => {\r\n // Determine whether automatic play/record has been specified in the hash portion of the URL\r\n\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n\r\n function onClose() {\r\n var eventInfo = { sbevent: \"sessionEditorOnClosed\" };\r\n window.parent.postMessage(JSON.stringify(eventInfo), \"*\");\r\n }\r\n\r\n function onSaved(info: SessionDetails) {\r\n var eventInfo = { sbevent: \"sessionEditorOnSaved\", data: info };\r\n window.parent.postMessage(JSON.stringify(eventInfo), \"*\");\r\n }\r\n\r\n function onExpand() {\r\n var eventInfo = { sbevent: \"sessionEditorOnExpand\" };\r\n window.parent.postMessage(JSON.stringify(eventInfo), \"*\");\r\n }\r\n\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n\r\n return (\r\n \r\n );\r\n});\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { CardHeader, Card } from \"reactstrap\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Logger } from \"@soundbite/api\";\r\nimport { AuthState, Loader, WidgetStore } from \"@soundbite/widgets-react\";\r\n\r\nimport Public from \"../views/Public\";\r\nimport { AadAuthProvider } from \"../../sdk/providers/auth/AadAuthProvider\";\r\n\r\n//////////[ Component Definition ]//////////////////////////////////////////////////////////////////\r\n\r\n/**\r\n * Responsible for handling the O365 OAuth redirect that occurs after a user successfully\r\n * authenticates against Azure AD / Microsoft O365. An authorization code is sent on the query\r\n * string that can be used to acquire access tokens for Soundbite. The \"code\" in the URL is\r\n * initially present when the page first loads, and then disappears after consumption by MSAL.\r\n */\r\nexport const LoginO365: React.FC = observer(() => {\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n\r\n let [authProvider] = useState(new AadAuthProvider());\r\n let [hasCode] = useState(\r\n window.location.hash?.split(\"code=\").length > 1\r\n );\r\n let [redirectHandled, setRedirectHandled] = useState(false);\r\n\r\n async function initialize() {\r\n if (hasCode) {\r\n Logger.LogTrace(\"LoginO365 - Initializing with Auth Code Present\");\r\n if (!redirectHandled) {\r\n Logger.LogTrace(\"LoginO365 - Handling Redirect\");\r\n WidgetStore.authState = AuthState.ThirdPartyAuthorizing;\r\n setRedirectHandled(true);\r\n authProvider.handleAuthRedirect();\r\n }\r\n } else {\r\n Logger.LogTrace(\"LoginO365 - Auth Code not Present\");\r\n }\r\n }\r\n\r\n // Calling useEffect with [] as the second parameter ensures one-time execution\r\n\r\n useEffect(() => {\r\n initialize();\r\n /* eslint-disable-next-line */\r\n }, []);\r\n\r\n //////////[ Render Methods ]//////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Renders a spinner with a message that O365 is loading. Upon successful authentication the usr\r\n * is redirected to another page effectively ending the spinner.\r\n */\r\n function ShowO365LoginLoading() {\r\n return (\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n /**\r\n * Displays a message with options to return to login page.\r\n * @param msg - message to display\r\n */\r\n function ShowErrorWithBackToLogin(msg: string) {\r\n return (\r\n \r\n \r\n \r\n
    \r\n

    O365 Authentication Error

    \r\n
    {msg}
    \r\n
    \r\n Return to Login Page\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n\r\n if (hasCode || WidgetStore.authState === AuthState.ThirdPartyAuthorizing) {\r\n return ShowO365LoginLoading();\r\n } else {\r\n return ShowErrorWithBackToLogin(\r\n \"You have reached the O365 OAuth redirect handler page but \" +\r\n \"either no authorization code was passed to this page or authentication has otherwise \" +\r\n \"failed. Please try to login again. If the issue persists, please contact support.\"\r\n );\r\n }\r\n});\r\n","import {\r\n AppPayload,\r\n Logger,\r\n OrgOktaSettings,\r\n ProviderType,\r\n SoundbiteApiConfig,\r\n Utils,\r\n} from \"@soundbite/api\";\r\nimport { AuthState, WidgetStore } from \"@soundbite/widgets-react\";\r\n\r\nimport SpaStore from \"../../../store/Spa.Store\";\r\nimport { IAuthProvider } from \"./IAuthProvider\";\r\nimport { BrowserStorageService } from \"../../BrowserStorageService\";\r\nimport { OktaAuth, OktaAuthOptions } from \"@okta/okta-auth-js\";\r\n\r\nexport class SbAuthError extends Error {}\r\n\r\n/**\r\n * IAuthProvider implementation for Office 365 / Microsoft Graph\r\n */\r\nclass OktaProviderClass implements IAuthProvider {\r\n //////////[ Fields ]/////////////////////////////////////////////////////////////////\r\n\r\n private _oktaAuth: OktaAuth | null = null;\r\n private _accessToken: string | null = null;\r\n private _idToken: string | null = null;\r\n\r\n //////////[ Properties ]/////////////////////////////////////////////////////////////\r\n\r\n // Gets a reference to the OktaAuth instance used for OKTA operations. This value must be\r\n // initialized via the applySettings method before it can be used.\r\n private get oktaAuth(): OktaAuth {\r\n if (!this._oktaAuth) {\r\n throw new Error(\r\n \"OKTA settings must be specified by calling the applySettings method.\"\r\n );\r\n }\r\n return this._oktaAuth;\r\n }\r\n\r\n //////////[ IAuthProvider Implementation ]////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Gets or sets the provider type\r\n */\r\n get providerType() {\r\n return ProviderType.OKTA;\r\n }\r\n\r\n /**\r\n * Responsible for running any logic required to log the user in to the third-party provider.\r\n * @param forceReAuth - flag indicating that the user should be forced to login to the provider again.\r\n */\r\n async loginAsync(forceReAuth: boolean): Promise {\r\n await this.oktaAuth.signInWithRedirect();\r\n }\r\n\r\n /**\r\n * Responsible for handling the response returned from an OAuth redirect.\r\n */\r\n async handleAuthRedirect(): Promise {\r\n let hasError = false;\r\n try {\r\n let tokenResponse = await this.oktaAuth.token.parseFromUrl();\r\n this._accessToken = tokenResponse.tokens.accessToken?.accessToken ?? null;\r\n this._idToken = tokenResponse.tokens.idToken?.idToken ?? null;\r\n const appPayload = await this.getAppPayload();\r\n if (appPayload.token) {\r\n //////////////////////////////////////////////////////////////////////////////////\r\n //TODO: there is some weird interactions that go on between these two things...\r\n // If you reverse the calls to the next two lines there is a flicker that occurs\r\n // kinda implying it is overdoing some thinking that probably does not need to\r\n // be there. For now it is fine, but it should probably be investigated...\r\n SpaStore.processPayload(appPayload, false);\r\n WidgetStore.initialize(appPayload);\r\n //////////////////////////////////////////////////////////////////////////////////\r\n } else {\r\n // Getting to this point without a token indicates that authentication failed\r\n WidgetStore.authState = AuthState.AuthFailed;\r\n }\r\n } catch (ex) {\r\n hasError = true;\r\n }\r\n\r\n if (\r\n hasError ||\r\n Utils.isNullOrEmpty(this._accessToken) ||\r\n Utils.isNullOrEmpty(this._idToken)\r\n ) {\r\n throw new Error(\r\n \"OKTA authentication failed to acquire Access and/or ID tokens during the login process.\"\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Responsible for logging the user out of the authentication provider.\r\n */\r\n async logoutAsync(): Promise {}\r\n\r\n /**\r\n * Grants admin access for the current user & org\r\n */\r\n async grantAdminAsync(): Promise {}\r\n\r\n //////////[ Methods ]/////////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Allows consumers of the provider to pass in OKTA settings to configure the provider.\r\n */\r\n applySettings(settings: OrgOktaSettings): void {\r\n const oktaConfig: OktaAuthOptions = {\r\n issuer: settings.issuerUrl,\r\n clientId: settings.clientId,\r\n redirectUri: window.location.origin + \"/public/sso/loginOkta\",\r\n scopes: [\"openid\", \"email\", \"profile\", \"phone\"],\r\n pkce: true,\r\n };\r\n this._oktaAuth = new OktaAuth(oktaConfig);\r\n }\r\n\r\n /**\r\n * Retrieves the application payload using the MS Graph App token.\r\n * @param userInfoToSync - user information from MS Graph to sync with Soundbite.\r\n */\r\n private async getAppPayload(): Promise {\r\n try {\r\n const orgRoute = BrowserStorageService.lastOktaSettings?.orgRoute;\r\n const url =\r\n process.env.REACT_APP_CONFIG_API_PREFIX +\r\n `/oktaAuth/login?orgRoute=${orgRoute}`;\r\n const headers = {\r\n includeToken: false,\r\n Authorization: `Bearer ${this._accessToken}`,\r\n \"Content-Type\": \"application/json\",\r\n };\r\n\r\n const appPayload = await SoundbiteApiConfig.httpAdapter.post(\r\n url,\r\n null,\r\n { headers: headers }\r\n );\r\n\r\n return appPayload;\r\n } catch (ex) {\r\n Logger.LogError(\r\n \"AadAuthProvider - failed to retrieve application payload.\",\r\n ex\r\n );\r\n throw ex;\r\n }\r\n }\r\n}\r\n\r\nexport const OktaProvider = new OktaProviderClass();\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { CardHeader, Card } from \"reactstrap\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport {\r\n OktaAuthService,\r\n OrgOktaSettingsWithOrgRoute,\r\n Utils,\r\n} from \"@soundbite/api\";\r\nimport { Loader } from \"@soundbite/widgets-react\";\r\nimport Public from \"../views/Public\";\r\nimport { OktaProvider } from \"../../sdk/providers/auth/OktaProvider\";\r\nimport { BrowserStorageService } from \"../../sdk/BrowserStorageService\";\r\n\r\n//////////[ Component Definition ]//////////////////////////////////////////////////////////////////\r\n\r\nenum DisplayMode {\r\n Loading,\r\n GetOrgId,\r\n GetOrgIdFailed,\r\n NoOktaSettingsOnReturn,\r\n LoginRedirectFailed,\r\n SpaLoginFailed,\r\n}\r\n\r\n/**\r\n * Responsible for handling the OKTA oauth redirect\r\n */\r\nexport const LoginOkta: React.FC = observer(() => {\r\n //////////[ Initialize ]//////////////////////////////////////////////////////////////////////////\r\n\r\n const [hasCode] = useState(\r\n window.location.search?.split(\"code=\").length > 1\r\n );\r\n const [displayMode, setDisplayMode] = useState(\r\n DisplayMode.Loading\r\n );\r\n const [canSubmit, setCanSubmit] = useState(false);\r\n const [email, setEmail] = useState(null);\r\n\r\n /**\r\n * Responsible for trying to determine the organization ID without interacting with the user. If\r\n * this method succeeds, then the OKTA settings can be retrieved without requiring the user to\r\n * enter any identifying information. Otherwise, the user must enter some identity information.\r\n */\r\n function getOrgRouteNonInteractive(): string | null {\r\n //TODO: not currently fully implemented. Most of the time users are coming in from links that\r\n // contain the org ID so it could be stripped from the URL and stored off for use here. We\r\n // could also allow for passing it in on the query string, though that would probably not be\r\n // widely used as it would require sending out a link explicitly to the login page and you\r\n // might as well just send out a link to a soundbite or feed which would contain the org ID\r\n // anyway.\r\n\r\n if (!Utils.isNullOrEmpty(BrowserStorageService.lastSelectedOrg)) {\r\n return BrowserStorageService.lastSelectedOrg;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Initializes the component on first use.\r\n */\r\n async function initialize() {\r\n // Determine whether the user is returning from the redirect process\r\n if (hasCode) {\r\n // User is returning from the redirect so we need to make sure we have\r\n // the OKTA settings available to handle the redirect.\r\n if (BrowserStorageService.lastOktaSettings) {\r\n // Apply the settings and handle the redirect\r\n OktaProvider.applySettings(BrowserStorageService.lastOktaSettings);\r\n await OktaProvider.handleAuthRedirect();\r\n } else {\r\n // OKTA settings are not available\r\n setDisplayMode(DisplayMode.NoOktaSettingsOnReturn);\r\n }\r\n } else {\r\n let userInteractive: boolean = true;\r\n const orgRoute = getOrgRouteNonInteractive();\r\n\r\n if (!Utils.isNullOrEmpty(orgRoute)) {\r\n const oktaSettings = await OktaAuthService.getSettingsByRoute(\r\n orgRoute as string\r\n );\r\n if (oktaSettings) {\r\n BrowserStorageService.lastOktaSettings = oktaSettings;\r\n BrowserStorageService.lastSelectedOrg = oktaSettings.orgRoute;\r\n OktaProvider.applySettings(oktaSettings);\r\n await OktaProvider.loginAsync(false);\r\n userInteractive = false;\r\n }\r\n }\r\n\r\n if (userInteractive) {\r\n setDisplayMode(DisplayMode.GetOrgId);\r\n }\r\n }\r\n }\r\n\r\n // Calling useEffect with [] as the second parameter ensures one-time execution\r\n\r\n useEffect(() => {\r\n initialize();\r\n /* eslint-disable-next-line */\r\n }, []);\r\n\r\n //////////[ Event Handlers ]//////////////////////////////////////////////////////////////////////\r\n\r\n function onEmailChanged(e: React.ChangeEvent): void {\r\n setEmail(e.target.value);\r\n setCanSubmit(Utils.isEmail(e.target.value));\r\n }\r\n\r\n /**\r\n * Attempts to acquire OKTA configuration settings based on the user's email address\r\n */\r\n async function getOktaConfigByEmail(): Promise {\r\n if (email) {\r\n let settings: OrgOktaSettingsWithOrgRoute =\r\n await OktaAuthService.getSettingsByEmail(email);\r\n if (settings) {\r\n BrowserStorageService.lastOktaSettings = settings;\r\n OktaProvider.applySettings(settings);\r\n await OktaProvider.loginAsync(false);\r\n } else {\r\n setDisplayMode(DisplayMode.NoOktaSettingsOnReturn);\r\n }\r\n }\r\n }\r\n\r\n //////////[ Render Methods ]//////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * Renders a form requiring the user to identify themselves to our system. We need to know who\r\n * they are so we can determine their organization and from that acquire the organization specific\r\n * OKTA settings so they can be used to begin the login process.\r\n */\r\n function RenderGetOrgId() {\r\n return (\r\n <>\r\n
    \r\n We need to know who you are in order to load the correct OKTA settings\r\n for your organization. Please enter your email address into the text\r\n box below and click the submit button to continue logging into\r\n Soundbite with OKTA...\r\n
    \r\n
    \r\n
    \r\n Email Address:\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Submit\r\n \r\n
    \r\n \r\n );\r\n }\r\n\r\n /**\r\n * Renders a spinner with a message that O365 is loading. Upon successful authentication the user\r\n * is redirected to another page effectively ending the spinner.\r\n */\r\n function RenderLoading() {\r\n return (\r\n <>\r\n \r\n \r\n );\r\n }\r\n\r\n /**\r\n * Displays a message with options to return to login page.\r\n * @param msg - message to display\r\n */\r\n function ShowErrorWithBackToLogin(msg: string) {\r\n return (\r\n <>\r\n

    OKTA Authentication Error

    \r\n
    {msg}
    \r\n
    \r\n Return to Login Page\r\n
    \r\n \r\n );\r\n }\r\n\r\n function RenderNoOktaSettingsOnReturn() {\r\n return (\r\n <>\r\n
    \r\n It appears that you have redirected from the OKTA authentication\r\n process but we cannot locate the OKTA settings associated with your\r\n organization. Please attempt to login again or contact support if the\r\n issue persists.\r\n
    \r\n
    \r\n Return to Login Page\r\n
    \r\n \r\n );\r\n }\r\n\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n\r\n function RenderContent() {\r\n switch (displayMode) {\r\n case DisplayMode.Loading:\r\n return RenderLoading();\r\n\r\n case DisplayMode.GetOrgId:\r\n return RenderGetOrgId();\r\n\r\n case DisplayMode.NoOktaSettingsOnReturn:\r\n return RenderNoOktaSettingsOnReturn();\r\n\r\n default:\r\n return ShowErrorWithBackToLogin(\r\n \"You have reached the OKTA OAuth redirect handler page but \" +\r\n \"either no authorization code was passed to this page or authentication has otherwise \" +\r\n \"failed. Please try to login again. If the issue persists, please contact support.\"\r\n );\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \"OKTA\r\n
    \r\n
    \r\n {RenderContent()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n});\r\n","import { ShowWhen, Toggle } from \"@soundbite/widgets-react\";\r\nimport React from \"react\";\r\n\r\ninterface ToggleRowProps {\r\n title: string;\r\n subtitle?: string;\r\n onToggle: (onEnabled: boolean) => void;\r\n defaultValue: boolean;\r\n disabled?: boolean;\r\n}\r\n\r\ninterface DropDownRowProps {\r\n title: string;\r\n subtitle?: string;\r\n onChange: (value: string) => void;\r\n choices: { label: string; value: string }[];\r\n defaultValue: string;\r\n}\r\n\r\ninterface TextRowProps {\r\n title: string;\r\n subtitle?: string;\r\n onChange: (value: string) => void;\r\n defaultValue: string;\r\n value?: string;\r\n}\r\n\r\n/**\r\n * A single row with a title, optional subtitle, and a toggle control\r\n * @param props\r\n */\r\nexport const ToggleRow: React.FC = (props: ToggleRowProps) => {\r\n return (\r\n \r\n \r\n
    {props.title}
    \r\n \r\n
    \r\n {props.subtitle}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * A single row with a title, optional subtitle, and a toggle control\r\n * @param props\r\n */\r\nexport const DropDownRow: React.FC = (\r\n props: DropDownRowProps\r\n) => {\r\n return (\r\n \r\n \r\n
    {props.title}
    \r\n \r\n
    \r\n {props.subtitle}\r\n
    \r\n
    \r\n \r\n \r\n {\r\n props.onChange(e.target.value);\r\n }}\r\n >\r\n {props.choices.map((item) => {\r\n return (\r\n \r\n {item.label}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const TextRow: React.FC = (props: TextRowProps) => {\r\n return (\r\n \r\n \r\n
    {props.title}
    \r\n \r\n
    \r\n {props.subtitle}\r\n
    \r\n
    \r\n \r\n \r\n {\r\n props.onChange(e.target.value);\r\n }}\r\n defaultValue={props.defaultValue}\r\n value={props.value}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\ninterface ToggleHeaderProps {\r\n title?: string;\r\n}\r\n\r\n/**\r\n * The separate header for the toggle table\r\n * @param props\r\n */\r\nexport const ToggleHeader: React.FC = (\r\n props: ToggleHeaderProps\r\n) => {\r\n return (\r\n \r\n \r\n {props.title}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\ninterface ToggleTableProps {\r\n title?: string;\r\n hideHeader?: boolean;\r\n children: React.ReactNode;\r\n}\r\n\r\n/**\r\n * The wrapper for the toggle table\r\n * To use:\r\n * \r\n * \r\n * \r\n * @param props\r\n */\r\nexport const ToggleTable: React.FC = (\r\n props: ToggleTableProps\r\n) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {props.children}\r\n
    \r\n );\r\n};\r\n","import { observer } from \"mobx-react-lite\";\r\nimport React, { Fragment, useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { Button, Card, CardFooter, CardHeader, Col, Row } from \"reactstrap\";\r\n\r\nimport { OrganizationsService, OrgNotificationSettings } from \"@soundbite/api\";\r\nimport { ErrorDlg, Loader, WidgetStore } from \"@soundbite/widgets-react\";\r\n\r\nimport { ToggleRow, ToggleTable } from \"../controls/ToggleTable\";\r\n\r\n/** Configuration card for notifications */\r\nexport const NotificationsCard: React.FC = observer(() => {\r\n // Params\r\n let { orgRoute } = useParams<{ orgRoute: string }>();\r\n\r\n const [settings, setSettings] = useState(\r\n undefined\r\n );\r\n const [isChanged, setIsChanged] = useState(false);\r\n const [isSaving, setIsSaving] = useState(false);\r\n\r\n useEffect(() => {\r\n const load = async () => {\r\n const initialSettings =\r\n await OrganizationsService.readNotificationSettingsAsync(orgRoute);\r\n setSettings(initialSettings);\r\n setIsChanged(false);\r\n };\r\n load();\r\n }, [orgRoute]);\r\n\r\n const onSave = async () => {\r\n // Must have settings; otherwise, just ignore\r\n if (settings == null) {\r\n return;\r\n }\r\n\r\n setIsSaving(true);\r\n try {\r\n await OrganizationsService.updateNotificationSettingsAsync(\r\n orgRoute,\r\n settings\r\n );\r\n setIsChanged(false);\r\n } catch (err) {\r\n ErrorDlg.show(err, \"Error Saving Notification Settings\");\r\n }\r\n setIsSaving(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n

    \r\n \r\n {WidgetStore.organizations.currentOrg?.details.name}{\" \"}\r\n Notification Settings\r\n

    \r\n
    \r\n Configure the messages sent to members of your organization\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n settings != null &&\r\n setSettings({\r\n ...settings,\r\n channels: { ...settings.channels, isEmailEnabled: enabled },\r\n });\r\n setIsChanged(true);\r\n }}\r\n defaultValue={settings?.channels?.isEmailEnabled ?? true}\r\n />\r\n {\r\n settings != null &&\r\n setSettings({\r\n ...settings,\r\n channels: { ...settings.channels, isSmsEnabled: enabled },\r\n });\r\n setIsChanged(true);\r\n }}\r\n defaultValue={settings?.channels?.isSmsEnabled ?? true}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {\r\n settings != null &&\r\n setSettings({ ...settings, isWelcomeEnabled: enabled });\r\n setIsChanged(true);\r\n }}\r\n defaultValue={settings?.isWelcomeEnabled ?? true}\r\n />\r\n {\r\n settings != null &&\r\n setSettings({\r\n ...settings,\r\n isPersonInviteEnabled: enabled,\r\n });\r\n setIsChanged(true);\r\n }}\r\n defaultValue={settings?.isPersonInviteEnabled ?? true}\r\n />\r\n {\r\n settings != null &&\r\n setSettings({\r\n ...settings,\r\n isMemberInvitedEnabled: enabled,\r\n });\r\n setIsChanged(true);\r\n }}\r\n defaultValue={settings?.isMemberInvitedEnabled ?? true}\r\n />\r\n {\r\n settings != null &&\r\n setSettings({\r\n ...settings,\r\n isSessionReminderEnabled: enabled,\r\n });\r\n setIsChanged(true);\r\n }}\r\n defaultValue={settings?.isSessionReminderEnabled ?? true}\r\n />\r\n {\r\n settings != null &&\r\n setSettings({\r\n ...settings,\r\n isSessionPublishEnabled: enabled,\r\n });\r\n setIsChanged(true);\r\n }}\r\n defaultValue={settings?.isSessionPublishEnabled ?? true}\r\n />\r\n {\r\n settings != null &&\r\n setSettings({\r\n ...settings,\r\n isSessionHostPublishEnabled: enabled,\r\n });\r\n setIsChanged(true);\r\n }}\r\n defaultValue={settings?.isSessionHostPublishEnabled ?? true}\r\n />\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n  Save\r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n});\r\n","import React, { useState } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport {\r\n Button,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n} from \"reactstrap\";\r\nimport { getTenantId } from \"../../../sdk/providers/auth/AadAuthProvider\";\r\n\r\ninterface IAadTenantPickerProps {\r\n defaultTenantId?: string;\r\n onChange?: (newTenantId?: string) => void;\r\n}\r\n\r\nexport const AadTenantPicker: React.FC = observer(\r\n (props: IAadTenantPickerProps) => {\r\n const changeTenantId = (newTenantId?: string) => {\r\n setTenantId(newTenantId);\r\n if (props.onChange) props.onChange(newTenantId);\r\n };\r\n\r\n const onTenantIdChange = async (\r\n event: React.ChangeEvent\r\n ) => {\r\n const newTenantId = event.target.value;\r\n changeTenantId(newTenantId);\r\n };\r\n\r\n const [tenantId, setTenantId] = useState(props.defaultTenantId);\r\n\r\n const onFind = async () => {\r\n const newTenantId = await getTenantId();\r\n changeTenantId(newTenantId);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n Tenant ID\r\n \r\n \r\n \r\n \r\n \r\n Find My Tenant ID\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n);\r\n","import { observer } from \"mobx-react-lite\";\r\nimport React, { Fragment, useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport {\r\n Alert,\r\n Button,\r\n Card,\r\n CardBody,\r\n CardFooter,\r\n CardHeader,\r\n Col,\r\n Row,\r\n} from \"reactstrap\";\r\n\r\nimport { OrganizationsService, OrgAzureSettings } from \"@soundbite/api\";\r\nimport { ErrorDlg, Loader, WidgetStore } from \"@soundbite/widgets-react\";\r\nimport { AadTenantPicker } from \"../sync/AAD/AadTenantPicker\";\r\n\r\nimport { ToggleRow, ToggleTable } from \"../controls/ToggleTable\";\r\n\r\ninterface TeamsNotificationsCardProps {\r\n className?: string;\r\n}\r\n\r\n/** Configuration card for MS Teams Notifications */\r\nexport const TeamsNotificationsCard: React.FC =\r\n observer((props: TeamsNotificationsCardProps) => {\r\n // Params\r\n let { orgRoute } = useParams<{ orgRoute: string }>();\r\n\r\n const [settings, setSettings] = useState(\r\n undefined\r\n );\r\n const [isChanged, setIsChanged] = useState(false);\r\n const [isSaving, setIsSaving] = useState(false);\r\n\r\n useEffect(() => {\r\n const load = async () => {\r\n const initialSettings =\r\n await OrganizationsService.readAzureSettingsAsync(orgRoute);\r\n setSettings(initialSettings);\r\n setIsChanged(false);\r\n };\r\n load();\r\n }, [orgRoute]);\r\n\r\n const onSave = async () => {\r\n // Must have settings; otherwise, just ignore\r\n if (settings == null) {\r\n return;\r\n }\r\n\r\n setIsSaving(true);\r\n try {\r\n await OrganizationsService.updateAzureSettingsAsync(orgRoute, settings);\r\n setIsChanged(false);\r\n } catch (err) {\r\n ErrorDlg.show(err, \"Error Saving Notification Settings\");\r\n }\r\n setIsSaving(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n

    \r\n \r\n {WidgetStore.organizations.currentOrg?.details.name} Teams\r\n Notification Settings\r\n

    \r\n
    \r\n Configure notifications for Microsoft Teams\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n Microsoft Teams integration requires installing the latest version\r\n of the{\" \"}\r\n \r\n Soundbite for Microsoft Teams app\r\n {\" \"}\r\n For more info please contact{\" \"}\r\n \r\n Soundbite Support\r\n \r\n \r\n {\r\n setSettings({\r\n ...settings,\r\n enableTeamsNotifications:\r\n settings?.enableTeamsNotifications ?? false,\r\n tenantId: newTenantId,\r\n });\r\n setIsChanged(true);\r\n }}\r\n />\r\n \r\n
    \r\n \r\n {\r\n settings != null &&\r\n setSettings({\r\n ...settings,\r\n enableTeamsNotifications: enabled,\r\n });\r\n setIsChanged(true);\r\n }}\r\n defaultValue={settings?.enableTeamsNotifications ?? false}\r\n />\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n  Save\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n });\r\n","import { observer } from \"mobx-react-lite\";\r\nimport React, { Fragment, useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport {\r\n Button,\r\n Card,\r\n CardBody,\r\n CardFooter,\r\n CardHeader,\r\n Col,\r\n FormGroup,\r\n InputGroup,\r\n Row,\r\n} from \"reactstrap\";\r\n\r\nimport { OrganizationsService, Utils } from \"@soundbite/api\";\r\nimport {\r\n ErrorDlg,\r\n Loader,\r\n ShowWhen,\r\n WidgetStore,\r\n} from \"@soundbite/widgets-react\";\r\n\r\ninterface AcsCardProps {\r\n className?: string;\r\n}\r\n\r\n/** Configuration card for ACS custom notifications */\r\nexport const AcsCard: React.FC = observer(\r\n (props: AcsCardProps) => {\r\n // Params\r\n let { orgRoute } = useParams<{ orgRoute: string }>();\r\n\r\n const [connString, setConnString] = useState(undefined);\r\n const [fromEmail, setFromEmail] = useState(undefined);\r\n const [fromName, setFromName] = useState(undefined);\r\n const [isChanged, setIsChanged] = useState(false);\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n const load = async () => {\r\n try {\r\n setIsLoading(true);\r\n const initialSettings =\r\n await OrganizationsService.readAzureSettingsAsync(orgRoute);\r\n setConnString(initialSettings?.acsConnectionString);\r\n setFromName(initialSettings?.acsFromName);\r\n setFromEmail(initialSettings?.acsFromEmail);\r\n setIsChanged(false);\r\n } catch (err) {\r\n ErrorDlg.show(\r\n err,\r\n \"Error Loading Azure Communication Services (ACS) Settings\"\r\n );\r\n } finally {\r\n setIsLoading(false);\r\n }\r\n };\r\n load();\r\n }, [orgRoute]);\r\n\r\n const save = async (isResetting: boolean = false) => {\r\n try {\r\n setIsSaving(true);\r\n\r\n const settings = await OrganizationsService.readAzureSettingsAsync(\r\n orgRoute\r\n );\r\n if (settings == null) {\r\n throw new Error(\r\n \"Error Reading Azure Communication Services (ACS) Settings Before Update\"\r\n );\r\n }\r\n\r\n if (isResetting) {\r\n settings.acsConnectionString = undefined;\r\n settings.acsFromEmail = undefined;\r\n settings.acsFromName = undefined;\r\n } else {\r\n settings.acsConnectionString = connString;\r\n settings.acsFromEmail = fromEmail;\r\n settings.acsFromName = fromName;\r\n }\r\n\r\n await OrganizationsService.updateAzureSettingsAsync(orgRoute, settings);\r\n\r\n setIsChanged(false);\r\n } catch (err) {\r\n ErrorDlg.show(err, \"Error Saving Notification Settings\");\r\n } finally {\r\n setIsSaving(false);\r\n }\r\n };\r\n\r\n const onSave = async () => {\r\n await save(false);\r\n };\r\n\r\n const onReset = async () => {\r\n if (!window.confirm(\"Are You Sure You Want to Reset the Connection?\")) {\r\n return;\r\n }\r\n await save(true);\r\n window.location.reload();\r\n };\r\n\r\n const hasValidEmail = () => {\r\n if (fromEmail == null || fromEmail === \"\") {\r\n return true;\r\n }\r\n\r\n return Utils.isEmail(fromEmail);\r\n };\r\n\r\n const isValid = (): boolean => {\r\n return (\r\n hasValidEmail() &&\r\n (connString?.length ?? 0) > 0 &&\r\n (fromEmail?.length ?? 0) > 0 &&\r\n (fromName?.length ?? 0) > 0\r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n

    \r\n \r\n {WidgetStore.organizations.currentOrg?.details.name} Custom\r\n E-Mail Notifications Settings\r\n

    \r\n
    \r\n Enabling custom senders for e-mail notifications from\r\n Soundbite via{\" \"}\r\n \r\n Azure Communication Services\r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {\r\n setConnString(e.target.value);\r\n setIsChanged(true);\r\n }}\r\n title=\"Connection String\"\r\n value={connString}\r\n />\r\n \r\n \r\n \r\n
    \r\n This is not a valid e-mail address\r\n
    \r\n
    \r\n \r\n \r\n {\r\n setFromEmail(e.target.value);\r\n setIsChanged(true);\r\n }}\r\n title=\"From E-Mail\"\r\n value={fromEmail}\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n setFromName(e.target.value);\r\n setIsChanged(true);\r\n }}\r\n title=\"From Name\"\r\n value={fromName}\r\n />\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Reset\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n  Save\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n);\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\n\r\nimport { Private } from \"./Private\";\r\nimport { NotificationsCard } from \"../cards/NotificationsCard\";\r\nimport { TeamsNotificationsCard } from \"../cards/TeamsNotificationsCard\";\r\nimport { AcsCard } from \"../cards/AcsCard\";\r\n\r\nexport const Notifications: React.FC = observer(() => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n});\r\n","import React, { useEffect } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\n\r\nimport { checkDialogHash, PastSessionsWidget } from \"@soundbite/widgets-react\";\r\n\r\nimport { Private } from \"./Private\";\r\n\r\n/***************************************************************************************************\r\n * Component Properties Interface\r\n **************************************************************************************************/\r\ninterface IProps {\r\n orgRoute: string;\r\n groupRoute?: string;\r\n}\r\n\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexport const Past: React.FC = observer((props: IProps) => {\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n\r\n // When the widget first loads\r\n useEffect(() => {\r\n checkDialogHash(props.orgRoute, props.groupRoute);\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import React, { useEffect } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\n\r\nimport {\r\n checkDialogHash,\r\n PendingSessionsWidget,\r\n} from \"@soundbite/widgets-react\";\r\n\r\nimport { Private } from \"./Private\";\r\n\r\n/***************************************************************************************************\r\n * Component Properties Interface\r\n **************************************************************************************************/\r\ninterface IProps {\r\n orgRoute: string;\r\n groupRoute?: string;\r\n}\r\n\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexport const Pending: React.FC = observer((props: IProps) => {\r\n //////////[ Build Component UI ]//////////////////////////////////////////////////////////////////\r\n\r\n // When the widget first loads\r\n useEffect(() => {\r\n checkDialogHash(props.orgRoute, props.groupRoute);\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nimport { PeopleWidget } from \"@soundbite/widgets-react\";\r\n\r\nimport { Private } from \"./Private\";\r\n\r\nexport const People: React.FC = observer(() => {\r\n let { orgRoute } = useParams<{ orgRoute: string }>();\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import {\r\n OrganizationsService,\r\n ReportService,\r\n SessionSecurityType,\r\n SpaService,\r\n} from \"@soundbite/api\";\r\nimport { Loader, ShowWhen, WidgetStore } from \"@soundbite/widgets-react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n Button,\r\n Row,\r\n Col,\r\n Alert,\r\n} from \"reactstrap\";\r\n\r\nenum PerfRating {\r\n Indifferent = \"\",\r\n Success = \"success\",\r\n Warning = \"warning\",\r\n Danger = \"danger\",\r\n}\r\n\r\nfunction ratingForTime(\r\n time: number,\r\n successTime: number = 1,\r\n warningTime: number = 2\r\n): PerfRating {\r\n if (time < successTime) {\r\n return PerfRating.Success;\r\n } else if (time < warningTime) {\r\n return PerfRating.Warning;\r\n } else {\r\n return PerfRating.Danger;\r\n }\r\n}\r\n\r\ninterface PerformanceMetric {\r\n method: string;\r\n name: string;\r\n measure: string;\r\n rating?: PerfRating;\r\n}\r\n\r\ninterface MetricCardProps {\r\n metric: PerformanceMetric;\r\n}\r\n\r\nexport const MetricCard: React.FC = observer(\r\n (props: MetricCardProps) => {\r\n const rating = props.metric?.rating ?? PerfRating.Indifferent;\r\n return (\r\n \r\n \r\n

    {props.metric.name}

    \r\n \r\n {props.metric.measure}\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n);\r\n\r\nexport const PerformanceCard: React.FC = observer(() => {\r\n // Params\r\n let { orgRoute } = useParams<{ orgRoute: string }>();\r\n\r\n // State\r\n const [isRunning, setIsLoading] = useState(false);\r\n const [metrics, setMetrics] = useState(\r\n undefined\r\n );\r\n const [needsGroup, setNeedsGroup] = useState(false);\r\n const [needsSession, setNeedsSession] = useState(false);\r\n\r\n const measureSeconds = async (func: () => Promise): Promise => {\r\n const startTime = new Date().getTime();\r\n await func();\r\n const endTime = new Date().getTime();\r\n const seconds = ((endTime - startTime) / 1000).toFixed(2);\r\n return Number(seconds);\r\n };\r\n\r\n const init = async (): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await SpaService.load(orgRoute);\r\n });\r\n return {\r\n method: \"SpaService.load\",\r\n name: \"First-time app load\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const myOrgs = async (): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await WidgetStore.organizations.readMyOrgsAsync(true);\r\n });\r\n return {\r\n method: \"WidgetStore.organizations.getMyOrgsAsync\",\r\n name: \"All current user organizations\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const orgFeed = async (): Promise => {\r\n // Use the default session security type when acquiring metrics.\r\n const securityType =\r\n WidgetStore.organizations.currentOrg?.settings.sessions\r\n .defaultSessionSecurity ?? SessionSecurityType.Protected;\r\n const seconds = await measureSeconds(async () => {\r\n await WidgetStore.sessions.readOrgFeedAsync(\r\n orgRoute,\r\n securityType,\r\n false\r\n );\r\n });\r\n return {\r\n method: \"WidgetStore.sessions.readOrgFeedAsync\",\r\n name: \"Active sessions for an organization\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const orgSeries = async (): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await WidgetStore.sessions.readOrgSeriesAsync(orgRoute, false);\r\n });\r\n return {\r\n method: \"WidgetStore.sessions.readOrgSeriesAsync\",\r\n name: \"Active series for an organization\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const people = async (): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await WidgetStore.people.readAllAsync(orgRoute);\r\n });\r\n return {\r\n method: \"WidgetStore.people.readAllAsync\",\r\n name: \"List of all users, plus people picker\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const groups = async (): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await WidgetStore.organizations.readGroupsAsync(orgRoute, false);\r\n });\r\n return {\r\n method: \"WidgetStore.organizations.readGroupsAsync\",\r\n name: \"List of all groups in the org\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const myGroups = async (): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await WidgetStore.organizations.readMyGroupsAsync(orgRoute, false);\r\n });\r\n return {\r\n method: \"WidgetStore.organizations.readMyGroupsAsync\",\r\n name: \"Groups for current user in current org\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const refreshWidgetStore = async (): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await WidgetStore.refresh();\r\n });\r\n return {\r\n method: \"WidgetStore.refresh\",\r\n name: \"Store Cache Refresh\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const sessionDetails = async (\r\n sessionRoute: string\r\n ): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await WidgetStore.sessions.readSessionDetailsAsync(\r\n orgRoute,\r\n sessionRoute,\r\n false\r\n );\r\n });\r\n return {\r\n method: \"WidgetStore.sessions.readSessionDetailsAsync\",\r\n name: \"Loaded in the record and play widgets\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const sessionActivityReport = async (\r\n sessionRoute: string\r\n ): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await ReportService.sessionReportAsync(orgRoute, sessionRoute);\r\n });\r\n return {\r\n method: \"ReportService.sessionReportAsync\",\r\n name: \"Per Session Reporting\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const activityReport = async (): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await ReportService.activityReportAsync(orgRoute);\r\n });\r\n return {\r\n method: \"ReportService.activityReportAsync\",\r\n name: \"Activity Reporting\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const contentReport = async (): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await ReportService.contentReportAsync(orgRoute);\r\n });\r\n return {\r\n method: \"ReportService.contentReportAsync\",\r\n name: \"Content Reporting\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const readNotificationSettings = async (): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await OrganizationsService.readNotificationSettingsAsync(orgRoute);\r\n });\r\n return {\r\n method: \"OrganizationsService.readNotificationSettingsAsync\",\r\n name: \"Read Notification Settings\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const readPermissions = async (): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await OrganizationsService.readPermissionsAsync(orgRoute);\r\n });\r\n return {\r\n method: \"OrganizationsService.readPermissionsAsync\",\r\n name: \"Read Permissions\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const readAzureSettings = async (): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await OrganizationsService.readAzureSettingsAsync(orgRoute);\r\n });\r\n return {\r\n method: \"OrganizationsService.readAzureSettingsAsync\",\r\n name: \"Read Azure Settings\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const groupDetails = async (\r\n groupRoute: string\r\n ): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await WidgetStore.groups.readGroupAsync(orgRoute, groupRoute, false);\r\n });\r\n return {\r\n method: \"WidgetStore.groups.readGroupAsync\",\r\n name: \"Details for a group\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const groupMembers = async (\r\n groupRoute: string\r\n ): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await WidgetStore.members.readMembersAsync(orgRoute, groupRoute);\r\n });\r\n return {\r\n method: \"WidgetStore.groups.readMembersAsync\",\r\n name: \"List of members for a given group\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const groupFeed = async (groupRoute: string): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await WidgetStore.sessions.readGroupFeedAsync(\r\n orgRoute,\r\n groupRoute,\r\n WidgetStore.organizations.currentOrg?.settings.sessions\r\n .defaultSessionSecurity ?? SessionSecurityType.Protected,\r\n false\r\n );\r\n });\r\n return {\r\n method: \"WidgetStore.sessions.readGroupFeedAsync\",\r\n name: \"Active Sessions for a group\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n const groupSeries = async (\r\n groupRoute: string\r\n ): Promise => {\r\n const seconds = await measureSeconds(async () => {\r\n await WidgetStore.sessions.readGroupSeriesAsync(\r\n orgRoute,\r\n groupRoute,\r\n false\r\n );\r\n });\r\n return {\r\n method: \"WidgetStore.sessions.readGroupSeriesAsync\",\r\n name: \"Active Series for a group\",\r\n measure: `${seconds} seconds`,\r\n rating: ratingForTime(seconds),\r\n };\r\n };\r\n\r\n /** Fire all perf tests */\r\n const run = async () => {\r\n setIsLoading(true);\r\n\r\n const sessionRoute = (\r\n await WidgetStore.sessions.readOrgFeedAsync(\r\n orgRoute,\r\n WidgetStore.organizations.currentOrg?.settings.sessions\r\n .defaultSessionSecurity ?? SessionSecurityType.Protected\r\n )\r\n )[0]?.route;\r\n const groupRoute = (\r\n await WidgetStore.organizations.readMyGroupsAsync(orgRoute)\r\n )[0]?.route;\r\n // Set current group to the one we just found\r\n if (groupRoute != null) {\r\n await WidgetStore.groups.readGroupAsync(orgRoute, groupRoute);\r\n }\r\n\r\n const tests = [\r\n myOrgs(),\r\n init(),\r\n orgFeed(),\r\n orgSeries(),\r\n groups(),\r\n myGroups(),\r\n refreshWidgetStore(),\r\n people(),\r\n activityReport(),\r\n contentReport(),\r\n readNotificationSettings(),\r\n readPermissions(),\r\n readAzureSettings(),\r\n ];\r\n\r\n if (sessionRoute != null) {\r\n setNeedsSession(false);\r\n tests.push(sessionDetails(sessionRoute));\r\n tests.push(sessionActivityReport(sessionRoute));\r\n } else {\r\n setNeedsSession(true);\r\n }\r\n\r\n if (groupRoute != null) {\r\n setNeedsGroup(false);\r\n tests.push(\r\n groupDetails(groupRoute),\r\n groupMembers(groupRoute),\r\n groupFeed(groupRoute),\r\n groupSeries(groupRoute)\r\n );\r\n } else {\r\n setNeedsGroup(true);\r\n }\r\n\r\n const results = await Promise.all(tests);\r\n setMetrics(results);\r\n setIsLoading(false);\r\n };\r\n\r\n // Run on first load\r\n useEffect(() => {\r\n run();\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const spinClass = isRunning ? \"fa-spin\" : \"\";\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n

    \r\n \r\n {WidgetStore.organizations.currentOrg?.details.name} Performance\r\n

    \r\n
    \r\n Check performance given the size and complexity of your\r\n organization\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n Create at least one group to run group-related performance tests\r\n \r\n \r\n \r\n \r\n Create at least one session to run session-specific performance\r\n tests\r\n \r\n \r\n \r\n \r\n \r\n {metrics?.map((metric: PerformanceMetric, index: number) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n});\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\n\r\nimport { Private } from \"./Private\";\r\nimport { PerformanceCard } from \"../cards/PerformanceCard\";\r\n\r\nexport const Performance: React.FC = observer(() => {\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import { observer } from \"mobx-react-lite\";\r\nimport React, { Fragment, useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport {\r\n Button,\r\n Card,\r\n CardFooter,\r\n CardHeader,\r\n Col,\r\n Row,\r\n Nav,\r\n NavItem,\r\n NavLink,\r\n} from \"reactstrap\";\r\n\r\nimport {\r\n MemberRole,\r\n OrganizationsService,\r\n OrgPermissions,\r\n PersonRole,\r\n} from \"@soundbite/api\";\r\nimport { ErrorDlg, Loader, WidgetStore } from \"@soundbite/widgets-react\";\r\nimport classnames from \"classnames\";\r\n\r\ninterface PersonPermissionRowProps {\r\n title: string;\r\n defaultValue: PersonRole;\r\n onChange: (newRole: PersonRole) => void;\r\n}\r\n\r\n/** A row that provides a view into a selected PersonRole */\r\nconst PersonPermissionRow: React.FC = observer(\r\n (props: PersonPermissionRowProps) => {\r\n const createTab = (\r\n title: string,\r\n value: PersonRole,\r\n onClick: () => void,\r\n currentMode: PersonRole\r\n ) => {\r\n const className = classnames(\r\n { active: value === currentMode },\r\n \"sb-tab-btn\"\r\n );\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n );\r\n };\r\n\r\n const Tabs: React.FC = () => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n \r\n {props.title}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n);\r\n\r\ninterface MemberPermissionRowProps {\r\n title: string;\r\n defaultValue: MemberRole;\r\n onChange: (newRole: MemberRole) => void;\r\n}\r\n\r\n/** A row that provides a view into a selected MemberRole */\r\nconst MemberPermissionRow: React.FC = observer(\r\n (props: MemberPermissionRowProps) => {\r\n const createTab = (\r\n title: string,\r\n value: MemberRole,\r\n onClick: () => void,\r\n currentMode: MemberRole\r\n ) => {\r\n const className = classnames(\r\n { active: value === currentMode },\r\n \"sb-tab-btn\"\r\n );\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n );\r\n };\r\n\r\n const Tabs: React.FC = () => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n \r\n {props.title}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n);\r\n\r\n/** Configuration card for org permissions */\r\nexport const PermissionsCard: React.FC = observer(() => {\r\n // Params\r\n let { orgRoute } = useParams<{ orgRoute: string }>();\r\n\r\n const [settings, setSettings] = useState(\r\n undefined\r\n );\r\n const [isChanged, setIsChanged] = useState(false);\r\n const [isSaving, setIsSaving] = useState(false);\r\n\r\n useEffect(() => {\r\n const load = async () => {\r\n const initialSettings = await OrganizationsService.readPermissionsAsync(\r\n orgRoute\r\n );\r\n setSettings(initialSettings);\r\n setIsChanged(false);\r\n };\r\n load();\r\n }, [orgRoute]);\r\n\r\n const onSave = async () => {\r\n // Must have settings; otherwise, just ignore\r\n if (settings == null) {\r\n return;\r\n }\r\n\r\n setIsSaving(true);\r\n try {\r\n const newSettings = await OrganizationsService.updatePermissionsAsync(\r\n orgRoute,\r\n settings\r\n );\r\n setSettings(newSettings);\r\n setIsChanged(false);\r\n } catch (err) {\r\n ErrorDlg.show(err, \"Error Saving Notification Settings\");\r\n }\r\n setIsSaving(false);\r\n };\r\n\r\n const onChangeCreateSb = (newRole: PersonRole) => {\r\n if (settings == null) {\r\n return;\r\n }\r\n setSettings({ ...settings, minRoleToCreateSession: newRole });\r\n setIsChanged(true);\r\n };\r\n\r\n const onChangeAudience = (newRole: PersonRole) => {\r\n if (settings == null) {\r\n return;\r\n }\r\n setSettings({ ...settings, minRoleForAudience: newRole });\r\n setIsChanged(true);\r\n };\r\n\r\n const onChangeOrgInvite = (newRole: PersonRole) => {\r\n if (settings == null) {\r\n return;\r\n }\r\n setSettings({ ...settings, minRoleForOrgInvite: newRole });\r\n setIsChanged(true);\r\n };\r\n\r\n const onChangeCreatePublicSb = (newRole: PersonRole) => {\r\n if (settings == null) {\r\n return;\r\n }\r\n setSettings({ ...settings, minRoleToCreatePublic: newRole });\r\n setIsChanged(true);\r\n };\r\n\r\n const onChangeCreateTeam = (newRole: PersonRole) => {\r\n if (settings == null) {\r\n return;\r\n }\r\n setSettings({ ...settings, minRoleToCreateTeam: newRole });\r\n setIsChanged(true);\r\n };\r\n\r\n const onChangeTeamInvite = (newRole: MemberRole) => {\r\n if (settings == null) {\r\n return;\r\n }\r\n setSettings({ ...settings, minRoleForTeamInvite: newRole });\r\n setIsChanged(true);\r\n };\r\n\r\n const onChangeCreateSbTeam = (newRole: MemberRole) => {\r\n if (settings == null) {\r\n return;\r\n }\r\n setSettings({ ...settings, minRoleToCreateTeamSession: newRole });\r\n setIsChanged(true);\r\n };\r\n\r\n const onChangeCreatePublicSbTeam = (newRole: MemberRole) => {\r\n if (settings == null) {\r\n return;\r\n }\r\n setSettings({ ...settings, minRoleToCreateTeamPublic: newRole });\r\n setIsChanged(true);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n

    \r\n \r\n {WidgetStore.organizations.currentOrg?.details.name} Permissions\r\n

    \r\n
    \r\n Configure what level of access is required to perform key\r\n actions\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Permission Type\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n  Save\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n});\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\n\r\nimport { Private } from \"./Private\";\r\nimport { PermissionsCard } from \"../cards/PermissionsCard\";\r\n\r\nexport const Permissions: React.FC = observer(() => {\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport QueryString from \"query-string\";\r\nimport Public from \"./Public\";\r\nimport { Card, CardHeader } from \"reactstrap\";\r\nimport { useParams } from \"react-router\";\r\nimport { PublicPlayerWidget, WidgetStore } from \"@soundbite/widgets-react\";\r\n\r\n/***************************************************************************************************\r\n * Component Properties Interface\r\n **************************************************************************************************/\r\ninterface IProps {}\r\n\r\n/***************************************************************************************************\r\n * Component\r\n **************************************************************************************************/\r\nexport const PublicSession: React.FC = observer((props: IProps) => {\r\n const { orgRoute, sessionRoute } = useParams<{\r\n orgRoute: string;\r\n sessionRoute: string;\r\n }>();\r\n\r\n const parsedQueryString = QueryString.parse(window.location.hash);\r\n const userRoute: string | (string | null)[] | null = parsedQueryString[\"ur\"];\r\n const userRouteStr: string = Array.isArray(userRoute)\r\n ? userRoute.length > 0\r\n ? (userRoute[0] as string)\r\n : \"\"\r\n : (userRoute as string);\r\n\r\n // NOTE: this needs to get set here because the MediaPlayerContext needs a way to get the\r\n // current org when displaying a public video. If it makes sense, we can move this setter back\r\n // to the ViewRouter.tsx file but there was only one public org component and this is it.\r\n WidgetStore.organizations.currentOrgRoute = orgRoute;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n});\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nimport { ReportView } from \"@soundbite/widgets-react\";\r\n\r\nimport { Private } from \"./Private\";\r\n\r\nexport const Reports: React.FC = observer(() => {\r\n let { orgRoute } = useParams<{ orgRoute: string }>();\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import { observer } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\n\r\n/** React component for user introduction to the feature */\r\nexport const AadIntro: React.FC = observer(() => {\r\n return (\r\n
    \r\n

    Getting Started With Azure Active Directory

    \r\n

    \r\n Thank you for granting permission to the Soundbite platform. We are\r\n ready to connect to your Azure Active Directory (Microsoft 365/Office\r\n 365) tenant. Once activated, you will be able to sync:\r\n

    \r\n
      \r\n
    • \r\n \r\n \r\n Users\r\n \r\n \r\n , including guests, who are members of your organization.{\" \"}\r\n
    • \r\n
    • \r\n \r\n \r\n Groups\r\n \r\n {\" \"}\r\n in your organization, including M365 and security groups, plus\r\n distribution lists.\r\n
    • \r\n
    \r\n

    \r\n Save to activate Active Directory Sync and start configuring your\r\n organization.\r\n

    \r\n
    \r\n );\r\n});\r\n","import { observer } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\nimport { Button } from \"reactstrap\";\r\n\r\ninterface IProps {\r\n onGrant: () => void;\r\n}\r\n\r\n/** React component depicting the AAD Sync-specific sync settings */\r\nexport const AadGrant: React.FC = observer((props: IProps) => {\r\n return (\r\n
    \r\n

    Getting Started

    \r\n

    \r\n To get started, an Azure Active Directory (AAD or AD) administrator must\r\n first grant Soundbite the{\" \"}\r\n \r\n Directory.Read.All Application permission\r\n \r\n , which allows for read-only access to AAD without user interaction.\r\n

    \r\n

    \r\n Administrators can read and configure{\" \"}\r\n \r\n Azure Active Directory settings in the Azure Portal\r\n \r\n . If you need any assistance for security review or understanding the\r\n best directory sync approach for your organization, please reach out to{\" \"}\r\n \r\n Support@Soundbite.Freshdesk.Com\r\n \r\n .\r\n

    \r\n

    \r\n \r\n \r\n  \r\n \r\n Grant Admin Access\r\n \r\n

    \r\n
    \r\n );\r\n});\r\n","import {\r\n GroupSyncConfig,\r\n AadOrgConfig,\r\n UserSyncConfig,\r\n OrgSyncConfig,\r\n OktaOrgSyncConfig,\r\n} from \"@soundbite/api\";\r\n\r\n// Core types for the sync process\r\nexport enum SyncType {\r\n Disabled = \"Disabled\",\r\n AAD = \"AAD\", // Masticore.DirectorySync.Aad.AadOrgSyncStrategyBase.Name\r\n Okta = \"OKTA\", // Masticore.DirectorySync.Okta.OktaOrgSyncStrategyBase.Name\r\n}\r\n\r\n/**\r\n * Checks if the given two groupings of AadUserConfig match\r\n * @param left\r\n * @param right\r\n */\r\nexport const doUsersMatch = (\r\n left?: UserSyncConfig[],\r\n right?: UserSyncConfig[]\r\n): boolean => {\r\n if (left == null && right == null) return true;\r\n\r\n if (left != null && right != null) {\r\n if (left.length !== right.length) return false;\r\n else {\r\n const leftOrderedIds = left\r\n .map((u) => u.id)\r\n .sort()\r\n .join();\r\n const rightOrderdIds = left\r\n .map((u) => u.id)\r\n .sort()\r\n .join();\r\n if (leftOrderedIds !== rightOrderdIds) return false;\r\n else return true;\r\n }\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\n/**\r\n * Checks if the given two groupings of AadGroupConfig match\r\n * @param left\r\n * @param right\r\n */\r\nexport const doGroupsMatch = (\r\n left?: GroupSyncConfig[],\r\n right?: GroupSyncConfig[]\r\n): boolean => {\r\n if (left == null && right == null) return true;\r\n\r\n if (left != null && right != null) {\r\n if (left.length !== right.length) return false;\r\n else {\r\n const leftOrderedIds = left\r\n .map((g) => g.groupId)\r\n .sort()\r\n .join();\r\n const rightOrderdIds = left\r\n .map((g) => g.groupId)\r\n .sort()\r\n .join();\r\n if (leftOrderedIds !== rightOrderdIds) return false;\r\n else return true;\r\n }\r\n } else {\r\n // Nullness mismatch for left and right\r\n return false;\r\n }\r\n};\r\n\r\n/**\r\n * evaluates if the AAD strategies on the left and right configs match\r\n * Less explicit approaches, like JSON matching at the top-level, do no account variability in cosmetic-only fields\r\n * */\r\nexport const doAadStrategiesMatch = (\r\n leftJson?: string,\r\n rightJson?: string\r\n): boolean => {\r\n if (leftJson == null && rightJson == null) return true;\r\n\r\n if (leftJson != null && rightJson != null) {\r\n const left = JSON.parse(leftJson as string) as AadOrgConfig;\r\n const right = JSON.parse(rightJson as string) as AadOrgConfig;\r\n\r\n // Misc\r\n if (left.importPhoneNumbers !== right.importPhoneNumbers) {\r\n return false;\r\n }\r\n\r\n // Connection\r\n if (left.tenantId !== right.tenantId) {\r\n return false;\r\n }\r\n if (left.appId !== right.appId) {\r\n return false;\r\n }\r\n if (left.secretKey !== right.secretKey) {\r\n return false;\r\n }\r\n // Groups\r\n else if (left.groupsMode !== right.groupsMode) {\r\n return false;\r\n } else if (!doGroupsMatch(left.groups, right.groups)) {\r\n return false;\r\n }\r\n // Users\r\n else if (left.usersMode !== right.usersMode) {\r\n return false;\r\n } else if (!doUsersMatch(left.users, right.users)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n // Nullness mismatch for left and right\r\n return false;\r\n }\r\n};\r\n\r\nexport const doOktaStrategiesMatch = (\r\n leftJson?: string,\r\n rightJson?: string\r\n): boolean => {\r\n if (leftJson == null && rightJson == null) return true;\r\n\r\n if (leftJson != null && rightJson != null) {\r\n const left = JSON.parse(leftJson as string) as OktaOrgSyncConfig;\r\n const right = JSON.parse(rightJson as string) as OktaOrgSyncConfig;\r\n\r\n // Misc\r\n if (left.importPhoneNumbers !== right.importPhoneNumbers) {\r\n return false;\r\n }\r\n\r\n // Connection\r\n if (left.domain !== right.domain) {\r\n return false;\r\n }\r\n if (left.apiToken !== right.apiToken) {\r\n return false;\r\n }\r\n\r\n // Groups\r\n else if (left.groupsMode !== right.groupsMode) {\r\n return false;\r\n } else if (!doGroupsMatch(left.groups, right.groups)) {\r\n return false;\r\n }\r\n // Users\r\n else if (left.usersMode !== right.usersMode) {\r\n return false;\r\n } else if (!doUsersMatch(left.users, right.users)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n // Nullness mismatch for left and right\r\n return false;\r\n }\r\n};\r\n\r\n/**\r\n * Checks if the given two configs match\r\n * @param left\r\n * @param right\r\n */\r\nexport const doConfigsMatch = (\r\n left?: OrgSyncConfig,\r\n right?: OrgSyncConfig\r\n): boolean => {\r\n if (left == null && right == null) return true;\r\n\r\n if (left != null && right != null) {\r\n if (left.syncType !== right.syncType) return false;\r\n else {\r\n const leftJson = left.syncConfigJson;\r\n const rightJson = right.syncConfigJson;\r\n\r\n if (left.syncType !== right.syncType) {\r\n return false;\r\n }\r\n\r\n if (left.syncType === SyncType.AAD) {\r\n return doAadStrategiesMatch(leftJson, rightJson);\r\n } else if (left.syncType === SyncType.Okta) {\r\n return doOktaStrategiesMatch(leftJson, rightJson);\r\n } else {\r\n return true;\r\n }\r\n // Other sync types go here\r\n }\r\n } else {\r\n // Nullness mismatch for left and right\r\n return false;\r\n }\r\n};\r\n","import {\r\n IndexPageRequest,\r\n PublicError,\r\n SyncService,\r\n SyncTarget,\r\n TokenPageResponse,\r\n} from \"@soundbite/api\";\r\n\r\n// Module-scoped variable means we cache for the entire session\r\n// This assumes that IDs cannot be reused across cached target types\r\n// This also means renames will NOT appear until the UI is reloaded\r\nconst targetsById: Map = new Map();\r\n\r\n/** Provides a mechanism for managing a local cache of AadTarget objects, based on parameterized strategies for requesting them from the API and indicating they have loaded */\r\nexport class TargetCache {\r\n protected currentTargets: SyncTarget[] = [];\r\n\r\n /**\r\n * Constructor that injects situationally needed behaviors\r\n * @param orgRoute\r\n * @param onLoaded\r\n * @param onRequest\r\n * @param defaultValues These may be real SyncTarget objects or objects with just an ID that need their name dynamically loaded\r\n */\r\n constructor(\r\n protected readonly orgRoute: string,\r\n protected readonly onLoaded: (targets: SyncTarget[]) => Promise,\r\n protected readonly onRequest: (\r\n orgRoute: string,\r\n id: string\r\n ) => Promise,\r\n protected readonly onError: (id: string, err: Error) => void,\r\n protected readonly defaultValues?: SyncTarget[]\r\n ) {}\r\n\r\n protected async loadPage(\r\n page?: IndexPageRequest\r\n ): Promise> {\r\n const ret: TokenPageResponse = await SyncService.readUsersAsync(\r\n this.orgRoute,\r\n page\r\n );\r\n if (ret != null && ret.result != null) {\r\n ret.result.forEach((u) => targetsById.set(u.id, u));\r\n }\r\n return ret;\r\n }\r\n\r\n protected async loadTarget(\r\n id: string,\r\n onLoaded?: (target: SyncTarget) => void\r\n ): Promise {\r\n // We need to both return what we have AND async load it for callback later\r\n try {\r\n const ret: SyncTarget = await this.onRequest(this.orgRoute, id);\r\n if (ret != null) {\r\n targetsById.set(ret.id, ret);\r\n if (onLoaded != null) {\r\n onLoaded(ret);\r\n }\r\n }\r\n return ret;\r\n } catch (err: unknown) {\r\n this.onError(id, err as Error);\r\n (err as any).innerError = undefined;\r\n PublicError.Log(err as Error);\r\n const ret: SyncTarget = {\r\n id,\r\n name: `Error loading target ${id}`,\r\n };\r\n if (onLoaded != null) {\r\n onLoaded(ret);\r\n }\r\n return ret;\r\n }\r\n }\r\n\r\n protected get(\r\n id: string,\r\n onLoaded?: (target: SyncTarget) => void\r\n ): SyncTarget {\r\n const entry = targetsById.get(id);\r\n if (entry == null) {\r\n this.loadTarget(id, onLoaded);\r\n return {\r\n id,\r\n name: \"Loading...\",\r\n };\r\n } else {\r\n return entry;\r\n }\r\n }\r\n\r\n async load(): Promise {\r\n // We are trying to evaluate the default values that need their name dynamically loaded\r\n // This should be interopable with any object that provides an \"id\" field\r\n if (this.defaultValues == null) {\r\n return;\r\n }\r\n this.currentTargets = this.defaultValues.map((t: SyncTarget) => {\r\n if (t.name != null) {\r\n return t;\r\n } else {\r\n const target: SyncTarget = this.get(t.id, (newTarget: SyncTarget) => {\r\n if (this.currentTargets == null || this.currentTargets.length === 0) {\r\n return;\r\n }\r\n for (const existingTarget of this.currentTargets) {\r\n if (existingTarget.id === newTarget.id) {\r\n existingTarget.name = newTarget.name;\r\n }\r\n }\r\n this.onLoaded(this.currentTargets);\r\n });\r\n return target;\r\n }\r\n });\r\n\r\n this.onLoaded(this.currentTargets);\r\n }\r\n}\r\n","import Select, { OptionTypeBase } from \"react-select\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\n\r\nimport {\r\n TokenPageRequest,\r\n TokenPageResponse,\r\n SyncTarget,\r\n} from \"@soundbite/api\";\r\nimport {\r\n ILoadOptionsRequest,\r\n ILoadOptionsResponse,\r\n IOption,\r\n shouldLoadMorePickerPages,\r\n withAsyncPaginate,\r\n} from \"@soundbite/widgets-react\";\r\n\r\nconst PaginatingSelect = withAsyncPaginate(Select);\r\ninterface IProps {\r\n title: string;\r\n onLoad: (\r\n request?: TokenPageRequest\r\n ) => Promise>;\r\n selected?: SyncTarget[];\r\n onChange: (entities: SyncTarget[]) => void;\r\n}\r\n\r\n// STATIC\r\n\r\nconst targetsToOptions = (targets?: SyncTarget[]): IOption[] => {\r\n if (targets == null) {\r\n return [];\r\n }\r\n return targets.map((target) => {\r\n const ret: IOption = {\r\n value: target.id,\r\n label: target.name ?? \"Loading...\",\r\n };\r\n return ret;\r\n });\r\n};\r\n\r\nconst optionsToTargets = (options?: OptionTypeBase[]): SyncTarget[] => {\r\n if (options == null) return [];\r\n\r\n const entities: SyncTarget[] = options.map((o): SyncTarget => {\r\n return { id: o.value, name: o.label };\r\n });\r\n\r\n return entities;\r\n};\r\n\r\n/** Takes a list of SyncEntities and manages a picker */\r\nexport const TargetPicker: React.FC = observer((props: IProps) => {\r\n const [value, setValue] = useState(targetsToOptions(props.selected));\r\n const [skipToken, setSkipToken] = useState(undefined);\r\n const [lastFilter, setLastFiler] = useState(undefined);\r\n\r\n const loadOptions = async (\r\n filter: string,\r\n prevOptions?: ILoadOptionsRequest\r\n ): Promise => {\r\n // TODO: Caching?\r\n const isSameFilter = filter === lastFilter;\r\n\r\n if (!isSameFilter) {\r\n setLastFiler(filter);\r\n }\r\n\r\n const page = await props.onLoad({\r\n filter,\r\n skipToken: isSameFilter ? skipToken : undefined,\r\n });\r\n\r\n setSkipToken(page.skipToken);\r\n\r\n const hasMore = page.skipToken != null;\r\n const options = targetsToOptions(page.result);\r\n return {\r\n options,\r\n hasMore,\r\n };\r\n };\r\n\r\n /**\r\n * Called when the picker changes options, calling out to the onChange handler passed by props\r\n * @param selected IEntityOption[]\r\n * @param meta\r\n */\r\n const onChange = (selected?: any, meta?: any) => {\r\n setValue(selected);\r\n props.onChange(optionsToTargets(selected));\r\n };\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n});\r\n","import classnames from \"classnames\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { Nav, NavItem, NavLink, TabContent, TabPane } from \"reactstrap\";\r\n\r\nimport {\r\n CollectionSyncMode,\r\n GroupSyncConfig,\r\n MemberSyncOpType,\r\n PublicError,\r\n SyncService,\r\n SyncStrategyConfigBase,\r\n SyncTarget,\r\n TokenPageRequest,\r\n} from \"@soundbite/api\";\r\nimport { Loader, ShowWhen } from \"@soundbite/widgets-react\";\r\n\r\nimport { SyncType } from \"../../modules/Sync\";\r\nimport { TargetCache } from \"./TargetCache\";\r\nimport { TargetPicker } from \"./TargetPicker\";\r\n\r\nexport enum TargetConfigMode {\r\n Users,\r\n Groups,\r\n}\r\n\r\ninterface IProps {\r\n children?: React.ReactNode;\r\n defaultConfig?: object;\r\n mode: TargetConfigMode;\r\n onChange: (newConfig: SyncStrategyConfigBase) => void;\r\n orgRoute: string;\r\n syncType: SyncType;\r\n}\r\n\r\n/** React component generalizing the styles of picking sync targets across none, selected, and all */\r\nexport const TargetConfig: React.FC = observer((props: IProps) => {\r\n const [selectedTargets, setSelectedTargets] = useState<\r\n SyncTarget[] | undefined\r\n >(undefined);\r\n\r\n const setGroups = async (targets: SyncTarget[]): Promise => {\r\n setSelectedTargets([...targets]);\r\n };\r\n\r\n const propsConfig = props.defaultConfig as SyncStrategyConfigBase | undefined;\r\n\r\n const targetName = props.mode === TargetConfigMode.Groups ? \"Group\" : \"User\";\r\n\r\n const targets =\r\n props.mode === TargetConfigMode.Groups\r\n ? propsConfig?.groups?.map((g) => {\r\n return { id: g.groupId };\r\n })\r\n : propsConfig?.users?.map((u) => {\r\n return { id: u.id };\r\n });\r\n const method =\r\n props.mode === TargetConfigMode.Groups\r\n ? SyncService.readGroupAsync\r\n : SyncService.readUserAsync;\r\n const cache = useRef(\r\n new TargetCache(\r\n props.orgRoute,\r\n setGroups,\r\n method,\r\n (id: string, err: Error) => {},\r\n targets ?? []\r\n )\r\n );\r\n\r\n const [collectionMode, setCollectionMode] = useState<\r\n CollectionSyncMode | undefined\r\n >(undefined);\r\n\r\n useEffect(() => {\r\n cache.current.load();\r\n const startingCollectionMode =\r\n props.mode === TargetConfigMode.Groups\r\n ? propsConfig?.groupsMode\r\n : propsConfig?.usersMode;\r\n setCollectionMode(startingCollectionMode ?? CollectionSyncMode.None);\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const newGroups = (targets?: SyncTarget[]): GroupSyncConfig[] | undefined => {\r\n return targets?.map((g): GroupSyncConfig => {\r\n return {\r\n groupId: g.id,\r\n memberSyncType: MemberSyncOpType.SyncAllMembers,\r\n };\r\n });\r\n };\r\n\r\n const onChangeTab = (newMode: CollectionSyncMode): void => {\r\n setCollectionMode(newMode);\r\n\r\n function createNewConfig(): SyncStrategyConfigBase {\r\n if (props.mode === TargetConfigMode.Groups) {\r\n const ret: SyncStrategyConfigBase = {\r\n groupsMode: newMode,\r\n groups: newGroups(selectedTargets),\r\n syncType: props.syncType,\r\n };\r\n return ret;\r\n } else if (props.mode === TargetConfigMode.Users) {\r\n const ret: SyncStrategyConfigBase = {\r\n usersMode: newMode,\r\n users: selectedTargets,\r\n syncType: props.syncType,\r\n };\r\n return ret;\r\n } else {\r\n throw new PublicError(\r\n undefined,\r\n \"Cannot change collection mode; Unknown Target Config Mode\"\r\n );\r\n }\r\n }\r\n\r\n const newConfig = createNewConfig();\r\n props.onChange(newConfig);\r\n };\r\n\r\n const onChangeTargets = (newTargets: SyncTarget[]) => {\r\n setSelectedTargets(newTargets);\r\n\r\n function createNewConfig(): SyncStrategyConfigBase {\r\n if (props.mode === TargetConfigMode.Groups) {\r\n const ret: SyncStrategyConfigBase = {\r\n groupsMode: collectionMode,\r\n groups: newGroups(newTargets),\r\n syncType: props.syncType,\r\n };\r\n return ret;\r\n } else if (props.mode === TargetConfigMode.Users) {\r\n const ret: SyncStrategyConfigBase = {\r\n usersMode: collectionMode,\r\n users: newTargets,\r\n syncType: props.syncType,\r\n };\r\n return ret;\r\n } else {\r\n throw new PublicError(\r\n undefined,\r\n \"Cannot Change Targets; Unknown Target Config Mode\"\r\n );\r\n }\r\n }\r\n const newConfig = createNewConfig();\r\n props.onChange(newConfig);\r\n };\r\n\r\n const loadPage = (page?: TokenPageRequest) => {\r\n if (props.mode === TargetConfigMode.Groups) {\r\n return SyncService.readGroupsAsync(props.orgRoute, page);\r\n } else if (props.mode === TargetConfigMode.Users) {\r\n return SyncService.readUsersAsync(props.orgRoute, page);\r\n } else {\r\n throw new PublicError(\r\n undefined,\r\n \"Cannot Load Targets; Unknown Target Config Mode\"\r\n );\r\n }\r\n };\r\n\r\n const SomeTab: React.FC = () => {\r\n return (\r\n
    \r\n
    \r\n \r\n Users in the following groups will be synchronized:\r\n \r\n \r\n Users on the following list will be synchronized:\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n };\r\n\r\n const createTab = (\r\n title: string,\r\n value: CollectionSyncMode,\r\n onClick: () => void,\r\n currentMode: CollectionSyncMode\r\n ) => {\r\n const className = classnames(\r\n { active: value === currentMode },\r\n \"sb-tab-btn\"\r\n );\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n );\r\n };\r\n\r\n const tabs = () => {\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n {targetName}s will not be synced. They can still be\r\n managed manually in Soundbite.\r\n \r\n \r\n \r\n \r\n \r\n Synchronize all {targetName}s in your organization\r\n \r\n
    \r\n Not recommended for large organizations\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n
    \r\n {props.children}\r\n {tabs()}\r\n
    \r\n );\r\n});\r\n","import { observer } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\nimport {\r\n AadOrgConfig,\r\n CollectionSyncMode,\r\n OrgSyncConfig,\r\n SyncValidation,\r\n} from \"@soundbite/api\";\r\nimport {\r\n Loader,\r\n ShowWhen,\r\n Toggle,\r\n WidgetStore,\r\n} from \"@soundbite/widgets-react\";\r\n\r\nimport { getTenantId } from \"../../../sdk/providers/auth/AadAuthProvider\";\r\nimport SpaStore from \"../../../store/Spa.Store\";\r\nimport { AadTenantPicker } from \"./AadTenantPicker\";\r\nimport { AadIntro } from \"./AadIntro\";\r\nimport { AadGrant } from \"./AadGrant\";\r\nimport { SyncType } from \"../../../modules/Sync\";\r\nimport { TargetConfig, TargetConfigMode } from \"../TargetConfig\";\r\nimport { FormGroup, InputGroup } from \"reactstrap\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faPhone } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\ninterface IProps {\r\n orgRoute: string;\r\n onChange: (newStrategyConfig?: object) => void;\r\n}\r\n\r\n/** React component depicting the AAD Sync-specific sync settings */\r\nexport const AadSync: React.FC = observer((props: IProps) => {\r\n const readAadConfig = (json?: string) => {\r\n if (json == null) return undefined;\r\n const aadConfig: AadOrgConfig | undefined = JSON.parse(json);\r\n return aadConfig;\r\n };\r\n\r\n const nextStrategyConfig =\r\n WidgetStore.sync.nextStrategyConfig();\r\n\r\n const baseAadConfig = async (): Promise => {\r\n const latestAadConfig =\r\n WidgetStore.sync.validation?.sanitizedConfig?.syncConfigJson ??\r\n WidgetStore.sync.config?.sanitizedConfig?.syncConfigJson;\r\n const valAadConfig = readAadConfig(latestAadConfig);\r\n const ret: AadOrgConfig = {\r\n tenantId:\r\n valAadConfig?.tenantId ??\r\n nextStrategyConfig?.tenantId ??\r\n (await getTenantId()),\r\n appId: valAadConfig?.appId,\r\n secretKey: valAadConfig?.secretKey,\r\n syncType: nextStrategyConfig?.syncType ?? SyncType.AAD,\r\n importPhoneNumbers: nextStrategyConfig?.importPhoneNumbers ?? true,\r\n };\r\n return ret;\r\n };\r\n\r\n // Event handlers\r\n const onGrant = async () => {\r\n // Edge case where they want to connect ia AAD, but don't have default providerconfig yet\r\n const oldConfig = WidgetStore.sync.validation?.sanitizedConfig;\r\n if (\r\n oldConfig != null &&\r\n oldConfig?.syncType === SyncType.AAD &&\r\n oldConfig?.syncConfigJson == null\r\n ) {\r\n // If default provider config allows access, then just connect them\r\n const reqConfig = { ...oldConfig };\r\n reqConfig.syncConfigJson = JSON.stringify(baseAadConfig());\r\n const newVal = await WidgetStore.sync.validateConfigAsync(\r\n props.orgRoute,\r\n reqConfig\r\n );\r\n if (newVal.hasAccess) {\r\n onConnect();\r\n return;\r\n }\r\n }\r\n\r\n await SpaStore.grantAdminAsync();\r\n };\r\n\r\n const onChangeTenantId = (tenantId?: string) => {\r\n const current = WidgetStore.sync.nextStrategyConfig();\r\n const nextStrategyConfig = {\r\n ...current,\r\n tenantId,\r\n };\r\n WidgetStore.sync.setNextStrategyConfig(nextStrategyConfig);\r\n props.onChange(nextStrategyConfig);\r\n };\r\n\r\n const onChangeGroups = (newConfig: AadOrgConfig) => {\r\n const current = WidgetStore.sync.nextStrategyConfig();\r\n const nextStrategyConfig = {\r\n ...current,\r\n groups: newConfig.groups,\r\n groupsMode: newConfig.groupsMode,\r\n };\r\n WidgetStore.sync.setNextStrategyConfig(nextStrategyConfig);\r\n props.onChange(nextStrategyConfig);\r\n };\r\n\r\n const onChangeUsers = (newConfig: AadOrgConfig): void => {\r\n const currentConfig = WidgetStore.sync.nextStrategyConfig();\r\n const nextStrategyConfig = {\r\n ...currentConfig,\r\n users: newConfig.users,\r\n usersMode: newConfig.usersMode,\r\n };\r\n WidgetStore.sync.setNextStrategyConfig(nextStrategyConfig);\r\n props.onChange(nextStrategyConfig);\r\n };\r\n\r\n const onConnect = async (): Promise => {\r\n const tenantId = nextStrategyConfig?.tenantId ?? (await getTenantId());\r\n const nextConfig: AadOrgConfig = {\r\n tenantId,\r\n groupsMode: CollectionSyncMode.None,\r\n usersMode: CollectionSyncMode.None,\r\n syncType: nextStrategyConfig?.syncType ?? SyncType.AAD,\r\n ...nextStrategyConfig,\r\n };\r\n const newOrgConfig: OrgSyncConfig = {\r\n syncConfigJson: JSON.stringify(nextConfig),\r\n syncType: SyncType.AAD,\r\n };\r\n await WidgetStore.sync.updateConfigAsync(props.orgRoute, newOrgConfig);\r\n };\r\n\r\n const isReady = (config?: SyncValidation): boolean => {\r\n return (\r\n config != null &&\r\n config?.hasAccess &&\r\n config.sanitizedConfig?.syncType === SyncType.AAD &&\r\n config.validationMessage == null\r\n );\r\n };\r\n\r\n const onTogglePhoneNumbers = () => {\r\n const nextState = !(nextStrategyConfig?.importPhoneNumbers ?? true);\r\n\r\n const currentConfig = WidgetStore.sync.nextStrategyConfig();\r\n const nextConfig = {\r\n ...currentConfig,\r\n importPhoneNumbers: nextState,\r\n };\r\n WidgetStore.sync.setNextStrategyConfig(nextConfig);\r\n props.onChange(nextConfig);\r\n };\r\n\r\n const isSavedReady = isReady(WidgetStore.sync.config);\r\n\r\n const AadConfigView: React.FC = () => {\r\n const isReadyNow =\r\n isSavedReady &&\r\n WidgetStore.sync.config != null &&\r\n nextStrategyConfig != null;\r\n\r\n let msg = \"Reading Settings...\";\r\n\r\n return (\r\n \r\n \r\n

    \r\n Groups\r\n \r\n Microsoft 365 and AD Security Groups, plus Exchange Distribution\r\n Lists (Non-Nested) and Mail-Enabled Groups.{\" \"}\r\n \r\n View AAD Groups\r\n \r\n \r\n

    \r\n \r\n \r\n

    \r\n Users\r\n \r\n AD Users including guests; potentially licensed or unlicensed for\r\n M365{\" \"}\r\n \r\n View AAD Users\r\n \r\n \r\n

    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const latestConfig = WidgetStore.sync.validation ?? WidgetStore.sync.config;\r\n const isWaitingOnValidation =\r\n WidgetStore.sync.config?.sanitizedConfig?.syncType !== SyncType.AAD &&\r\n WidgetStore.sync.validation == null;\r\n\r\n return (\r\n
    \r\n \r\n {\r\n onChangeTenantId(newTenantId);\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n});\r\n","import { observer } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\n\r\nexport const SyncDisabled: React.FC = observer(() => {\r\n return (\r\n
    \r\n

    \r\n Directory sync connects your organization's users and groups from your\r\n directory data every day at midnight{\" \"}\r\n \r\n UTC\r\n \r\n .\r\n

    \r\n

    \r\n The configuration allows directory sync to fetch information using a\r\n configured mix of four strategies:\r\n

    \r\n
      \r\n
    • \r\n Selected Groups (Recommended) - Groups you select and\r\n their members only.\r\n
    • \r\n
    • \r\n Selected Users - Users on a selected list, regardless\r\n of group membership.\r\n
    • \r\n
    • \r\n All Users - All licensed users in your organization,\r\n including potential guest users, which allows maximum use of\r\n Soundbite.\r\n
    • \r\n
    • \r\n All Groups - Loading all groups into the system.\r\n Convenient for small organizations, but usually too much for large\r\n ones.\r\n
    • \r\n
    \r\n

    \r\n Unlike when inviting individuals manually, the synchronization process\r\n will\r\n never send welcome messages. Profile data is read from the\r\n directory and individuals are immediately able to log in to Soundbite\r\n and see content in the context of their groups. No other action is taken\r\n by the platform.\r\n

    \r\n

    \r\n Most organizations will want start small then scale audience as part of\r\n their change management process. We recommended starting with a handful\r\n of selected users or a few groups. Generally the final step for a \"full\r\n deployment\" is enabling All Users in addition to curated groups,\r\n maximizing the potential for Soundbite to support communication across\r\n the organization.\r\n

    \r\n

    \r\n If you have any questions or need any advice on your directory sync\r\n configuration, please reach out to us at{\" \"}\r\n Soundbite Support.\r\n

    \r\n
    \r\n );\r\n});\r\n","//{\r\n// \"domain\": \"https://dev-00450157.okta.com\",\r\n// \"apiToken\": \"00egZkhqJ2edpRWydEvxQZb1JqYP5HdOjLGsYL7qI_\",\r\n// \"lastSync\": \"2022-08-13T21:35:58Z\",\r\n// \"groupsMode\": 2,\r\n// \"groups\": null,\r\n// \"usersMode\": 2,\r\n// \"users\": null\r\n//}\r\n\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\n\r\n/** React component for user introduction to the feature */\r\nexport const OktaIntro: React.FC = observer(() => {\r\n return (\r\n
    \r\n

    \r\n \r\n Okta\r\n {\" \"}\r\n is an identity provided used by companies around the world to provide\r\n SSO across business apps. Soundbite is able to connect to your{\" \"}\r\n \r\n Okta directory\r\n {\" \"}\r\n and user users by their e-mail. When they login, they'll be able to\r\n access Soundbite with one click.\r\n

    \r\n
    \r\n );\r\n});\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Button, FormGroup, InputGroup } from \"reactstrap\";\r\n\r\nimport {\r\n CollectionSyncMode,\r\n OktaOrgSyncConfig,\r\n OrgSyncConfig,\r\n SyncStrategyConfigBase,\r\n SyncValidation,\r\n} from \"@soundbite/api\";\r\n\r\nimport {\r\n FaPrepend,\r\n Loader,\r\n ShowWhen,\r\n WidgetStore,\r\n} from \"@soundbite/widgets-react\";\r\n\r\nimport { SyncType } from \"../../../modules/Sync\";\r\nimport { OktaIntro } from \"./OktaIntro\";\r\nimport { TargetConfig, TargetConfigMode } from \"../TargetConfig\";\r\n\r\ninterface IProps {\r\n orgRoute: string;\r\n onChange: (newStrategyConfig?: object) => void;\r\n}\r\n\r\n/** React component depicting the AAD Sync-specific sync settings */\r\nexport const OktaSync: React.FC = observer((props: IProps) => {\r\n const isReady = (config?: SyncValidation): boolean => {\r\n return (\r\n config != null &&\r\n config?.hasAccess &&\r\n config.sanitizedConfig?.syncType === SyncType.Okta &&\r\n config.validationMessage == null\r\n );\r\n };\r\n\r\n const isSavedReady = isReady(WidgetStore.sync.config);\r\n\r\n const nextStrategyConfig =\r\n WidgetStore.sync.nextStrategyConfig();\r\n const latestConfig = WidgetStore.sync.validation ?? WidgetStore.sync.config;\r\n const isWaitingOnValidation =\r\n WidgetStore.sync.config?.sanitizedConfig?.syncType !== SyncType.Okta &&\r\n WidgetStore.sync.validation == null;\r\n const hasAccess =\r\n WidgetStore.sync.config?.sanitizedConfig?.syncType === SyncType.Okta &&\r\n latestConfig?.hasAccess;\r\n\r\n const onChangeApiToken = (apiToken?: string) => {\r\n const current = WidgetStore.sync.nextStrategyConfig();\r\n const nextStrategyConfig = {\r\n ...current,\r\n apiToken,\r\n };\r\n WidgetStore.sync.setNextStrategyConfig(nextStrategyConfig);\r\n props.onChange(nextStrategyConfig);\r\n };\r\n\r\n const onChangeDomain = (domain?: string) => {\r\n const current = WidgetStore.sync.nextStrategyConfig();\r\n const nextStrategyConfig = {\r\n ...current,\r\n domain,\r\n };\r\n WidgetStore.sync.setNextStrategyConfig(nextStrategyConfig);\r\n props.onChange(nextStrategyConfig);\r\n };\r\n\r\n const onConnect = async (): Promise => {\r\n const nextConfig: OktaOrgSyncConfig = {\r\n apiToken: nextStrategyConfig?.apiToken ?? \"\",\r\n domain: nextStrategyConfig?.domain ?? \"\",\r\n groupsMode: CollectionSyncMode.None,\r\n usersMode: CollectionSyncMode.None,\r\n syncType: SyncType.Okta,\r\n isPartialSync: false,\r\n maxRunLength: 1000 * 60 * 8 /* 8 Minutes */,\r\n userSyncComplete: false,\r\n };\r\n const newOrgConfig: OrgSyncConfig = {\r\n syncConfigJson: JSON.stringify(nextConfig),\r\n syncType: SyncType.Okta,\r\n };\r\n await WidgetStore.sync.updateConfigAsync(props.orgRoute, newOrgConfig);\r\n };\r\n\r\n const onChangeGroups = (newConfig: SyncStrategyConfigBase) => {\r\n const current = WidgetStore.sync.nextStrategyConfig();\r\n const nextStrategyConfig = {\r\n ...current,\r\n groups: newConfig.groups,\r\n groupsMode: newConfig.groupsMode,\r\n };\r\n WidgetStore.sync.setNextStrategyConfig(nextStrategyConfig);\r\n props.onChange(nextStrategyConfig);\r\n };\r\n\r\n const onChangeUsers = (newConfig: SyncStrategyConfigBase): void => {\r\n const currentConfig =\r\n WidgetStore.sync.nextStrategyConfig();\r\n const nextStrategyConfig = {\r\n ...currentConfig,\r\n users: newConfig.users,\r\n usersMode: newConfig.usersMode,\r\n };\r\n WidgetStore.sync.setNextStrategyConfig(nextStrategyConfig);\r\n props.onChange(nextStrategyConfig);\r\n };\r\n\r\n const ConfigView: React.FC = () => {\r\n const isReadyNow =\r\n isSavedReady &&\r\n WidgetStore.sync.config != null &&\r\n nextStrategyConfig != null;\r\n\r\n let msg = \"Reading Settings...\";\r\n\r\n return (\r\n \r\n \r\n

    \r\n Groups\r\n Collections of users\r\n

    \r\n \r\n \r\n

    \r\n Users\r\n \r\n Individuals able to sign-in to your Okta tenant\r\n \r\n

    \r\n \r\n
    \r\n );\r\n };\r\n\r\n const connectionConfig = () => {\r\n const domainIsEmpty =\r\n nextStrategyConfig?.domain == null ||\r\n nextStrategyConfig?.domain.trim() === \"\";\r\n const apiTokenIsEmpty =\r\n nextStrategyConfig?.apiToken == null ||\r\n nextStrategyConfig?.apiToken.trim() === \"\";\r\n const connectDisabled = (domainIsEmpty || apiTokenIsEmpty) && !hasAccess;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n onChangeDomain(e.target.value)}\r\n title=\"Domain\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n onChangeApiToken(e.target.value)}\r\n title=\"API Token\"\r\n />\r\n \r\n \r\n \r\n \r\n

    \r\n Must provide Domain and API Token to Connect\r\n

    \r\n
    \r\n \r\n \r\n  \r\n \r\n Connnect\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n {connectionConfig()}\r\n \r\n
    \r\n );\r\n});\r\n","import { observer } from \"mobx-react-lite\";\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\nimport {\r\n OrgSyncResult,\r\n OrgSyncState,\r\n SyncService,\r\n Utils,\r\n} from \"@soundbite/api\";\r\nimport { Button, Col, Row } from \"reactstrap\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faCalendarCheck, faSyncAlt } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { Loader, ShowWhen, WidgetStore } from \"@soundbite/widgets-react\";\r\n\r\ninterface IProps {\r\n orgRoute?: string;\r\n}\r\n\r\nfunction valWithDelta(result: number, deltaUp: number, deltaDown: number) {\r\n let deltaTxt = \"\";\r\n if (deltaUp > 0) {\r\n deltaTxt += `+${deltaUp}`;\r\n }\r\n\r\n if (deltaDown > 0) {\r\n if (deltaUp > 0) {\r\n deltaTxt += \", \";\r\n }\r\n\r\n deltaTxt += `-${deltaDown}`;\r\n }\r\n\r\n if (deltaTxt.length > 0) {\r\n deltaTxt = ` (${deltaTxt})`;\r\n }\r\n\r\n return `${result}${deltaTxt}`;\r\n}\r\n\r\nfunction statusForResult(result: OrgSyncResult) {\r\n if (result.isFailed) {\r\n return Failed;\r\n }\r\n\r\n if (result.state === OrgSyncState.Pending) {\r\n return Pending;\r\n }\r\n\r\n if (result.state === OrgSyncState.Cancelled) {\r\n return Cancelled;\r\n }\r\n\r\n if (result.state === OrgSyncState.Processing) {\r\n return Processing;\r\n }\r\n\r\n return Success;\r\n}\r\n\r\nexport const SyncHistory: React.FC = observer((props: IProps) => {\r\n const [orgName, setOrgName] = useState(\"\");\r\n const [results, setResults] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n\r\n const load = async () => {\r\n if (props.orgRoute == null) {\r\n setResults([]);\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n const newResults = await SyncService.readResults(props.orgRoute, {\r\n take: 10,\r\n });\r\n setResults(newResults.result);\r\n setIsLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n if (props.orgRoute == null) {\r\n return;\r\n }\r\n\r\n // We want the first items plus the metadata for the org\r\n const onFirstLoad = async () => {\r\n if (props.orgRoute == null) {\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n const orgPromise = WidgetStore.organizations.readOrgAsync(props.orgRoute);\r\n const resultsPromise = SyncService.readResults(props.orgRoute, {\r\n take: 10,\r\n });\r\n\r\n const [newOrg, newResults] = await Promise.all([\r\n orgPromise,\r\n resultsPromise,\r\n ]);\r\n setOrgName(newOrg.details.name);\r\n setResults(newResults.result);\r\n setIsLoading(false);\r\n };\r\n onFirstLoad();\r\n }, [props.orgRoute]);\r\n\r\n if (props.orgRoute == null) {\r\n return
    ;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n

    \r\n \r\n {orgName} Sync History\r\n

    \r\n \r\n \r\n \r\n {\r\n load();\r\n }}\r\n size=\"sm\"\r\n title=\"Refresh Feed\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {results.map((result: OrgSyncResult) => {\r\n return (\r\n \r\n \r\n \r\n {result.deltaTime === 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
    DateStatusDurationUsersGroups
    {Utils.formatDateTime(result.startTime)}{statusForResult(result)}{Utils.secondsToString(result.deltaTime)}\r\n {valWithDelta(result.usersUpdated, result.usersAdded, 0)}\r\n \r\n {valWithDelta(\r\n result.groupsUpdated,\r\n result.groupsAdded,\r\n result.groupsRemoved\r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n});\r\n","import {\r\n AadOrgConfig,\r\n OktaOrgSyncConfig,\r\n OrgSyncConfig,\r\n OrgSyncState,\r\n SyncStrategyConfigBase,\r\n SyncValidation,\r\n} from \"@soundbite/api\";\r\nimport {\r\n ErrorDlg,\r\n Loader,\r\n ShowWhen,\r\n WidgetStore,\r\n} from \"@soundbite/widgets-react\";\r\nimport classnames from \"classnames\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React, { Fragment, useEffect, useState } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport {\r\n Alert,\r\n Button,\r\n Card,\r\n CardBody,\r\n CardFooter,\r\n CardHeader,\r\n Nav,\r\n NavItem,\r\n NavLink,\r\n TabContent,\r\n TabPane,\r\n} from \"reactstrap\";\r\nimport { AadSync } from \"../sync/AAD/AadSync\";\r\nimport { SyncDisabled } from \"../sync/SyncDisabled\";\r\nimport { doConfigsMatch, SyncType } from \"../../modules/Sync\";\r\nimport { getTenantId } from \"../../sdk/providers/auth/AadAuthProvider\";\r\nimport { OktaSync } from \"../sync/Okta/OktaSync\";\r\nimport { SyncHistory } from \"../sync/SyncHistory\";\r\n\r\nexport const SyncCard: React.FC = observer(() => {\r\n // Params\r\n let { orgRoute } = useParams<{ orgRoute: string }>();\r\n\r\n // State\r\n const [isDirty, setIsDirty] = useState(false);\r\n const [isSyncing, setIsSyncing] = useState(false);\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isValidating, setIsValidating] = useState(false);\r\n const [syncMode, setSyncMode] = useState(SyncType.Disabled);\r\n\r\n // Render\r\n const latestConfig = WidgetStore.sync.validation ?? WidgetStore.sync.config;\r\n\r\n const date = new Date();\r\n date.setUTCHours(0, 0, 0, 0);\r\n date.setDate(date.getDate() + 1);\r\n const nextRunDate = date.toLocaleString();\r\n\r\n const tabValueForConfig = (config?: OrgSyncConfig) => {\r\n if (config?.syncType === SyncType.AAD) return SyncType.AAD;\r\n if (config?.syncType === SyncType.Okta) return SyncType.Okta;\r\n return SyncType.Disabled;\r\n };\r\n\r\n const validate = async (\r\n orgConfig?: OrgSyncConfig\r\n ): Promise => {\r\n setIsValidating(true);\r\n const validation = await WidgetStore.sync.validateNextConfig(orgRoute);\r\n setIsValidating(false);\r\n checkDirty();\r\n return validation;\r\n };\r\n\r\n const setFromConfig = (savedConfig: SyncValidation): void => {\r\n setSyncMode(tabValueForConfig(savedConfig.sanitizedConfig));\r\n setIsDirty(false);\r\n };\r\n\r\n const load = async () => {\r\n try {\r\n if (orgRoute == null)\r\n throw new Error(\r\n \"Cannot load sync settings without first connecting to an organization\"\r\n );\r\n // Start\r\n setIsLoading(true);\r\n WidgetStore.sync.reset();\r\n // Load\r\n const newOrgConfig = await WidgetStore.sync.readConfigAsync(orgRoute);\r\n setFromConfig(newOrgConfig);\r\n // End\r\n setIsLoading(false);\r\n } catch (err: any) {\r\n WidgetStore.sync.reset();\r\n ErrorDlg.show(err, \"Cannot load organization sync config\");\r\n }\r\n };\r\n\r\n const save = async () => {\r\n // Start\r\n setIsSaving(true);\r\n try {\r\n // Save\r\n const newVal = await WidgetStore.sync.updateToNextConfig(orgRoute);\r\n setFromConfig(newVal);\r\n } catch (err) {\r\n ErrorDlg.show(err);\r\n }\r\n\r\n // End\r\n setIsSaving(false);\r\n };\r\n\r\n useEffect(() => {\r\n load();\r\n // eslint-disable-next-line\r\n }, []); // Fire once\r\n\r\n const onChangeStrategy = (newStrategyConfig?: object): void => {\r\n checkDirty();\r\n };\r\n\r\n // TODO: Hide this detail in an abstraction\r\n function readConfig(json?: string) {\r\n if (json == null) return undefined;\r\n const config: TConfig | undefined = JSON.parse(json);\r\n return config;\r\n }\r\n\r\n const initAad = async (): Promise => {\r\n const latestJson =\r\n WidgetStore.sync.validation?.sanitizedConfig?.syncConfigJson ??\r\n WidgetStore.sync.config?.sanitizedConfig?.syncConfigJson;\r\n const latestAadConfig = readConfig(latestJson);\r\n const ret: AadOrgConfig = {\r\n tenantId: latestAadConfig?.tenantId ?? (await getTenantId()),\r\n appId: latestAadConfig?.appId,\r\n secretKey: latestAadConfig?.secretKey,\r\n syncType: latestAadConfig?.syncType ?? SyncType.AAD,\r\n };\r\n return ret;\r\n };\r\n\r\n const initOkta = async (): Promise => {\r\n const latestJson =\r\n WidgetStore.sync.validation?.sanitizedConfig?.syncConfigJson ??\r\n WidgetStore.sync.config?.sanitizedConfig?.syncConfigJson;\r\n const latestConfig = readConfig(latestJson);\r\n const ret: OktaOrgSyncConfig = {\r\n domain: latestConfig?.domain ?? \"\",\r\n apiToken: latestConfig?.apiToken ?? \"\",\r\n syncType: latestConfig?.syncType ?? SyncType.Okta,\r\n isPartialSync: latestConfig?.isPartialSync ?? false,\r\n maxRunLength: latestConfig?.maxRunLength ?? 1000 * 60 * 8 /* 8 Minutes */,\r\n userSyncComplete: latestConfig?.userSyncComplete ?? false,\r\n };\r\n return ret;\r\n };\r\n\r\n const init = async () => {\r\n // TODO: Hide this detail in an abstraction\r\n let nextStrategy =\r\n WidgetStore.sync.nextStrategyConfig();\r\n if (nextStrategy == null) {\r\n if (syncMode === SyncType.AAD) {\r\n nextStrategy = await initAad();\r\n } else if (syncMode === SyncType.Okta) {\r\n nextStrategy = await initOkta();\r\n }\r\n }\r\n const nextStrategyJson =\r\n nextStrategy == null ? undefined : JSON.stringify(nextStrategy);\r\n\r\n const nextConfig: OrgSyncConfig = {\r\n syncConfigJson: nextStrategyJson,\r\n ...WidgetStore.sync.nextConfig,\r\n syncType: syncMode === SyncType.Disabled ? undefined : syncMode,\r\n };\r\n WidgetStore.sync.setNextConfig(nextConfig);\r\n\r\n validate();\r\n };\r\n\r\n // When the sync mode OR provider config changes, then validate\r\n useEffect(\r\n () => {\r\n init();\r\n },\r\n // eslint-disable-next-line\r\n [syncMode]\r\n );\r\n\r\n const switchMode = (newSyncMode: SyncType) => {\r\n if (newSyncMode === syncMode) return;\r\n setSyncMode(newSyncMode);\r\n };\r\n\r\n const checkDirty = (): void => {\r\n // Pull out the target configs\r\n const nextConfig = WidgetStore.sync.nextConfig;\r\n let lastConfig = WidgetStore.sync.config?.sanitizedConfig;\r\n\r\n if (\r\n WidgetStore.sync.validation != null &&\r\n lastConfig?.syncType !==\r\n WidgetStore.sync.validation?.sanitizedConfig?.syncType\r\n ) {\r\n lastConfig = WidgetStore.sync.validation?.sanitizedConfig;\r\n }\r\n\r\n // Set dirty state\r\n const dirty = !doConfigsMatch(nextConfig, lastConfig);\r\n setIsDirty(dirty);\r\n };\r\n\r\n const onSave = async () => {\r\n try {\r\n if (orgRoute == null) {\r\n throw new Error(\r\n \"Cannot save sync settings without loading the configuration first\"\r\n );\r\n }\r\n\r\n // If we have nothing to change, then do nothing\r\n if (!isDirty) return;\r\n\r\n await save();\r\n } catch (err: any) {\r\n ErrorDlg.show(err);\r\n }\r\n };\r\n\r\n // Check for dirty when config components change\r\n useEffect(() => {\r\n checkDirty();\r\n // eslint-disable-next-line\r\n }, [syncMode]);\r\n\r\n const sync = async () => {\r\n setIsSyncing(true);\r\n await WidgetStore.sync.syncAsync(orgRoute);\r\n setIsSyncing(false);\r\n };\r\n\r\n const createTab = (title: string, value: SyncType) => {\r\n const className = classnames({ active: value === syncMode }, \"sb-tab-btn\");\r\n\r\n return (\r\n \r\n {\r\n switchMode(value);\r\n }}\r\n >\r\n {title}\r\n \r\n \r\n );\r\n };\r\n\r\n const saveBtn = (isShow: boolean) => {\r\n const animationClass = isSaving ? \"fa-spin\" : \"\";\r\n const iconClass = isSaving ? \"fa-cog\" : \"fa-save\";\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n  Save\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const syncBtn = (isShow: boolean) => {\r\n const syncMessage = isDirty ? \"Save & Sync\" : \"Sync\";\r\n const animationClass = isSyncing ? \"fa-spin\" : \"\";\r\n const syncState = WidgetStore.sync.result?.state;\r\n const isShowPending =\r\n syncState === OrgSyncState.Pending ||\r\n syncState === OrgSyncState.Processing;\r\n return (\r\n \r\n \r\n \r\n Sync successfully pending; Refresh history below to see more\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n  \r\n {syncMessage}\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const Footer: React.FC = () => {\r\n const savedConfig = WidgetStore.sync.config;\r\n const isSyncableModeSaved =\r\n !!savedConfig?.hasAccess && savedConfig?.validationMessage == null;\r\n\r\n const isShowSync =\r\n isSyncableModeSaved && !isLoading && !isDirty && !isValidating;\r\n\r\n const isWaitingOnAccess =\r\n syncMode !== SyncType.Disabled && !latestConfig?.hasAccess;\r\n\r\n const isShowSave =\r\n !isLoading && isDirty && !isValidating && !isWaitingOnAccess;\r\n\r\n return (\r\n \r\n \r\n {saveBtn(isShowSave)}\r\n {syncBtn(isShowSync)}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const AadView: React.FC = () => {\r\n const isLoaded = WidgetStore.sync.config != null && !isLoading && !isSaving;\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const OktaView: React.FC = () => {\r\n const isLoaded = WidgetStore.sync.config != null && !isLoading && !isSaving;\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const Body: React.FC = () => {\r\n let loadingMessage = \"Loading Configuration...\";\r\n if (isValidating) loadingMessage = \"Validating Configuration...\";\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Soundbite will not be able to sync:{\" \"}\r\n {latestConfig?.validationMessage}\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n \r\n {WidgetStore.organizations.currentOrg?.details.name} Directory Sync\r\n

    \r\n
    \r\n Next automatic run is {nextRunDate} local time.\r\n
    \r\n
    \r\n \r\n