{"version":3,"file":"main.665423c3cc585616.js","mappings":"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","names":["DeveloperToolsPageComponent","static","this","t","core","VBU","selectors","decls","vars","consts","template","rf","ctx","i0","_c0","CourseType","LearnerStatus","ACCREDITATION","CERTIFICATION","SELF_PACED","ON_DEMAND","COMMUNITY","LIVE_EVENT","OTHER","LearnerService","AbstractSearchService","constructor","baseUrl","backend","inject","BackendService","url","createLearner","eventId","firstValueFrom","post","courseType","deleteLearner","learnerId","delete","getPageAsync","page","getPage","jDH","factory","ɵfac","providedIn","COMPLETE","ENROLLED","FAILED","CANCELLED","CommunityEventService","registrations","SimpleLoadingCache","fetchRegistration","events","fetchEvents","sessionService","SessionService","location","Location","window","WINDOW","learnerService","getEvent","_this","_asyncToGenerator","getEvents","find","it","id","get","_this2","prefix","map","origin","prepareExternalUrl","series","learningCategories","startsWith","replace","register","isRegistered","_this3","isLoggedIn","status","getRegistrations","_this4","results","withCount","withSort","withNestedFilter","value","filter","event","_this5","EverythingSearchParams","SearchParams","isPostBody","getHttpParamsMap","super","nestedFilters","toJSON","EverythingSearchService","params","getResults","pipe","SearchFactoryService","forumThreads","and","marketplaceEntries","knowledgeArticles","i1","SwipeDirective","swipeLeft","EventEmitter","swipeRight","touchStartX","handleTouchStart","touches","clientX","handleTouchEnd","changedTouches","emit","FsC","hostBindings","$event","StripHtmlPipe","document","transform","e","createElement","innerHTML","innerText","DOCUMENT","EJ8","pure","ctx_r5","imageUrl","result_r4","i_r5","SearchResultCarouselComponent_For_3_ng_template_0_Conditional_0_Template","SearchResultCarouselComponent_For_3_ng_template_0_ng_container_5_Template","backgroundClass","tmp_14_0","category","undefined","source","heading","title","tmp_21_0","synopsis","summary","SearchResultCarouselComponent_For_3_ng_template_0_Template","SearchResultCarouselComponent","inputs","_r1","carousel_r2","next","prev","SearchResultCarouselComponent_For_3_Template","result_r1","startDateTime","DevelopersPageComponent_Conditional_64_ng_template_1_Template","ctx_r2","eventImageUrl","heading_r2","articles","DevelopersPageComponent","TryCatcher","pageMetaService","PageMetaService","alertService","AlertService","searchFactory","communityEventService","ngOnInit","setTitle","promises","tryCatch","Promise","allSettled","index","features","DevelopersPageComponent_Conditional_64_Template","DevelopersPageComponent_Conditional_68_Template","DevelopersPageComponent_Conditional_70_Template","DevelopersPageComponent_Conditional_72_Template","_c1","length","_c2","_c3","CalendarLinkPipe","datePipe","DatePipe","icsDateFormat","defaultDateFormat","sanitizer","DomSanitizer","stripHtmlPipe","format","toIcs","toGoogleCalendarLink","toOutlookCalendarLink","toYahooCalendarLink","formatDate","date","dateFormat","data","timezone","startInstant","endInstant","venueLocation","toDescription","blob","Blob","type","URL","createObjectURL","bypassSecurityTrustResourceUrl","toHttpParams","action","dates","details","sprop","text","toString","allday","body","startdt","enddt","path","rru","subject","desc","dur","st","et","in_loc","v","richText","description","registrationUrl","ctx_r0","_r2","EventRegistrationComponent_Conditional_2_Conditional_0_Conditional_1_Conditional_0_Template","EventRegistrationComponent_Conditional_2_Conditional_0_Conditional_1_Conditional_1_Template","emailVerified","EventRegistrationComponent_Conditional_2_Conditional_0_Conditional_0_Template","EventRegistrationComponent_Conditional_2_Conditional_0_Conditional_1_Template","registered","_r3","redirectToLogin","EventRegistrationComponent_Conditional_2_Conditional_0_Template","EventRegistrationComponent_Conditional_2_Conditional_1_Template","loggedIn","EventRegistrationComponent","accountService","hasRole","RoleName","i2","EventRegistrationComponent_Conditional_2_Template","spinning","UrlEncodePipe","encodeURIComponent","SocialMediaButtonsComponent","ColorizePipe","colors","valueAsDigits","split","charCodeAt","join","BigInt","Number","ReplacePipe","from","to","RegExp","guestSpeaker","language","modality","EventDetailPageComponent_Conditional_1_Conditional_5_Template","EventDetailPageComponent_Conditional_1_Conditional_7_Template","EventDetailPageComponent_Conditional_1_Conditional_34_Template","EventDetailPageComponent_Conditional_1_Conditional_35_Template","EventDetailPageComponent","route","ActivatedRoute","router","Router","snapshot","err","navigateByUrl","EventDetailPageComponent_Conditional_1_Template","EventDetailCardComponent","EventDetailCardComponent_Conditional_10_Template","EventDetailCardComponent_Conditional_18_Template","EventDetailCardComponent_Conditional_19_Template","EventDetailCardComponent_Conditional_23_Template","EventDetailCardComponent_Conditional_25_Template","tags","includes","value_r2","$implicit","filter_r3","ctx_r3","removeFilterValue","EventFilterContainerComponent_For_5_For_1_Template","EventFilterContainerComponent","filterValuesChange","DelayedBehaviorSubject","setFilterValues","values","oldValues","key","outputs","ngContentSelectors","EventFilterContainerComponent_For_5_Template","result_r2","toggleValue","has","total","EventFilterComponent","container","Set","subscription","subscribe","toStringArray","filterName","ngOnDestroy","unsubscribe","add","aggregationResults","EventFilterComponent_For_1_Template","RegistrationDetailCardComponent","learner","registration_r1","learner_r2","RegistrationListComponent_Conditional_7_For_4_Template","pastLearners","RegistrationListComponent","futureLearners","now","Date","toISOString","learners","RegistrationListComponent_For_5_Template","RegistrationListComponent_Conditional_6_Template","RegistrationListComponent_Conditional_7_Template","aggregation_r3","name","event_r4","EventListPageComponent","filterableFields","filteredEvents","aggregations","getAggregations","handleFilterValuesChange","filterValues","filterEvents","validFilterValues","Object","entries","reduce","acc","drawer_r2","open","EventListPageComponent_For_20_Template","EventListPageComponent_For_29_Template","Theme","ThemeService","theme","BehaviorSubject","light","darkTheme","dark","ThemeGuard","themeService","canActivate","canDeactivate","routes","pathMatch","redirectTo","children","component","AppRoutingModule","$C","G2t","RouterModule","forRoot","anchorScrolling","scrollOffset","scrollPositionRestoration","NavComponent","AppComponent","className","classList","remove","AppModule","bootstrap","provide","PAGE_META","useValue","APP_NAME","imports","BrowserModule","BrowserAnimationsModule","NgbDropdownModule","UiCoreModule","NgbCarouselModule","FormsModule","NotificationsComponent","DrawerSpacerComponent","SpinnerComponent","DrawerComponent","LayoutGridComponent","LayoutGridCellComponent","LayoutFoldableSectionComponent","RecaptchaInputComponent","FeedbackComponent","EllipsisComponent","ChipComponent","IconComponent","production","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","then","getElementById","setAttribute","catch","removeAttribute","console","error"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/app/page/developer-tools-page/developer-tools-page.component.ts","./src/app/page/developer-tools-page/developer-tools-page.component.html","./src/app/model/community-event.ts","./src/app/model/learner.ts","./src/app/learner.service.ts","./src/app/community-event.service.ts","./src/app/model/everything-search-params.ts","./src/app/everything-search.service.ts","./src/app/search-factory.service.ts","./src/app/swipe.directive.ts","./src/app/pipe/strip-html.pipe.ts","./src/app/search-result-carousel/search-result-carousel.component.html","./src/app/search-result-carousel/search-result-carousel.component.ts","./src/app/page/developers-page/developers-page.component.html","./src/app/page/developers-page/developers-page.component.ts","./src/app/pipe/calendar-link.pipe.ts","./src/app/event-registration/event-registration.component.html","./src/app/event-registration/event-registration.component.ts","./src/app/pipe/url-encode.pipe.ts","./src/app/social-media-buttons/social-media-buttons.component.ts","./src/app/social-media-buttons/social-media-buttons.component.html","./src/app/pipe/colorize.pipe.ts","./src/app/pipe/replace.pipe.ts","./src/app/page/event-detail-page/event-detail-page.component.html","./src/app/page/event-detail-page/event-detail-page.component.ts","./src/app/event-detail-card/event-detail-card.component.html","./src/app/event-detail-card/event-detail-card.component.ts","./src/app/event-filter-container/event-filter-container.component.html","./src/app/event-filter-container/event-filter-container.component.ts","./src/app/event-filter/event-filter.component.html","./src/app/event-filter/event-filter.component.ts","./src/app/registration-detail-card/registration-detail-card.component.ts","./src/app/registration-detail-card/registration-detail-card.component.html","./src/app/registration-list/registration-list.component.html","./src/app/registration-list/registration-list.component.ts","./src/app/page/event-list-page/event-list-page.component.html","./src/app/page/event-list-page/event-list-page.component.ts","./src/app/theme.service.ts","./src/app/theme.guard.ts","./src/app/app-routing.module.ts","./src/app/nav/nav.component.ts","./src/app/nav/nav.component.html","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/main.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-developer-tools-page',\n templateUrl: './developer-tools-page.component.html',\n styleUrls: [ './developer-tools-page.component.scss' ]\n})\nexport class DeveloperToolsPageComponent {}\n\n","
\n
\n

\n Your ForgeRock integration starts here\n

\n
\n
\n \n \n \n Develop mobile apps
with\n ForgeRock SDKs\n \n \n \n JS\n \n \n

\n Making authentication, registration, and self-service journeys into your mobile applications a breeze.\n

\n

\n You can effortlessly develop and integrate android, iOs and JavaScript applications with authentication,\n registration and self service journeys.\n Get started building what matters to your customers, while our Android, iOS, JavaScript SDKs take care of all\n the low-level REST API calls.\n

\n
\n Read the docs\n
\n \n \n \n \n \n \n
\n \n \n \n Alter authentication journeys
with\n custom nodes\n

\n Everyone’s different - so are their journeys!\n

\n

\n With flexibility of ForgeRock platform, you can develop your own authentication nodes can develop your own\n authentication nodes, just like many others have. In addition to using the default nodes provided by\n ForgeRock, you can take your journeys to the next level by using a custom node from our Marketplace or\n developing your own for a more personalized experience.\n

\n
\n Develop your own custom node\n Visit the ForgeRock Marketplace\n
\n \n \n \n \n
\n \n \n \n Enhance platform functionality
with\n scripts\n

\n At ForgeRock, we know that one size does not always fit all.\n

\n

\n That’s why we provide a scripting engine for you to modify default behaviour. The scripted decision node API\n lets you determine the path the authentication journey takes, scripted policy condition lets you add more\n context to your authorization policies, while plugins can be used to manipulate access tokens and scope\n handling in your OAuth 2.0 flows.\n

\n
\n Decision node API\n OAuth2 scopes\n Policy conditions\n
\n \n \n \n \n
\n \n
\n
\n
\n
\n \n \n Use sample code to extend platform capabilities\n
    \n
  • \n \n Return a custom error message using the Scripted Decision node\n
  • \n
  • \n \n Migrate Security Question answers into Identity Cloud\n
  • \n
  • \n \n Use Identity Gateway as a route service for Cloud Foundry\n
  • \n
  • \n \n Modify AM Oauth2/OIDC scripts\n
  • \n
  • \n \n Add a multi-valued attribute to a connector\n
  • \n
  • \n \n Use scripts to extend IDM capabilities\n
  • \n
\n
\n \n \n \n
\n
\n
\n","export interface CommunityEvent {\n id: string;\n startInstant: string;\n endInstant: string;\n timezone: string;\n language: string;\n availablePlaces: number;\n learningCategories: string[];\n guestSpeaker: string;\n modality: string;\n venueLocation: string;\n summary: string;\n series: string;\n registrationUrl: string;\n title: string;\n url: string;\n tags: string[];\n courseType: CourseType\n}\n\nexport enum CourseType {\n ACCREDITATION = 'ACCREDITATION',\n CERTIFICATION = 'CERTIFICATION',\n SELF_PACED = 'SELF_PACED',\n ON_DEMAND = 'ON_DEMAND',\n COMMUNITY = 'COMMUNITY',\n LIVE_EVENT = 'LIVE_EVENT',\n OTHER = 'OTHER',\n}\n","import { CommunityEvent } from './community-event';\n\nexport interface Learner {\n id: string;\n legacyId: string;\n contact: {\n givenName: string;\n familyName: string;\n emailAddress: string;\n };\n event: CommunityEvent;\n lastUpdated: string;\n created: string;\n orderDate: string;\n status: LearnerStatus;\n cancellationRequiresApproval: boolean;\n}\n\nexport enum LearnerStatus {\n COMPLETE = 'COMPLETE',\n ENROLLED = 'ENROLLED',\n FAILED = 'FAILED',\n CANCELLED = 'CANCELLED'\n}\n","import { inject, Injectable } from '@angular/core';\nimport { AbstractSearchService, BackendService, SearchResults } from '@forgerock/backstage-ui-core';\nimport { firstValueFrom } from 'rxjs';\nimport { CourseType } from './model/community-event';\nimport { Learner } from './model/learner';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LearnerService extends AbstractSearchService {\n private baseUrl = '/university-ws/api/v1/learner';\n private backend = inject(BackendService);\n override url = `${this.baseUrl}/_search`;\n\n /**\n * Creates a Learner for an event. Simplifies the order flow as it directly adds a learner on an event.\n * Only pass holders are allowed to use this endpoint for live events.\n */\n createLearner(eventId: string): Promise {\n return firstValueFrom(\n this.backend.post(this.baseUrl, { eventId, courseType: CourseType.COMMUNITY })\n );\n }\n\n deleteLearner(learnerId: string): Promise {\n return firstValueFrom(\n this.backend.delete(`${this.baseUrl}/${learnerId}`)\n );\n }\n\n getPageAsync(page: number): Promise> {\n return firstValueFrom(this.getPage(page));\n }\n}\n","import { Location } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { BackendService, SessionService, SimpleLoadingCache, value, WINDOW } from '@forgerock/backstage-ui-core';\nimport { firstValueFrom } from 'rxjs';\nimport { LearnerService } from './learner.service';\nimport { CommunityEvent, CourseType } from './model/community-event';\nimport { Learner, LearnerStatus } from './model/learner';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommunityEventService {\n private url = '/university-ws/api/v2/community-event';\n private registrations = new SimpleLoadingCache(eventId => this.fetchRegistration(eventId));\n private events = new SimpleLoadingCache(() => this.fetchEvents());\n private sessionService = inject(SessionService);\n private backend = inject(BackendService);\n private location = inject(Location);\n private window = inject(WINDOW);\n private learnerService = inject(LearnerService);\n\n async getEvent(eventId: string): Promise {\n const events = await this.getEvents();\n return events.find(it => it.id === eventId);\n }\n\n getEvents(): Promise {\n return this.events.get();\n }\n\n private async fetchEvents() {\n const events: CommunityEvent[] = await firstValueFrom(this.backend.get(this.url));\n const prefix = 'COMMUNITY_';\n return events.map(it => ({\n ...it,\n url: this.window.location.origin + this.location.prepareExternalUrl(`/events/${it.id}`),\n series: it.learningCategories.find(it => it.startsWith(prefix))?.replace(prefix, '')\n }));\n }\n\n register(eventId: string): Promise {\n return this.learnerService.createLearner(eventId);\n }\n\n async isRegistered(eventId: string): Promise {\n if (!(await this.sessionService.isLoggedIn())) {\n return false;\n }\n const learner = await this.registrations.get(eventId);\n return learner?.status === LearnerStatus.ENROLLED;\n }\n\n async getRegistrations(): Promise {\n const { results } = await this.learnerService\n .withCount(100)\n .withSort('created:desc')\n .withNestedFilter(value('active', true))\n .getPageAsync(0);\n\n return results.filter(it => it.event.courseType === CourseType.COMMUNITY);\n }\n\n private async fetchRegistration(eventId: string): Promise {\n const { results } = await this.learnerService\n .withNestedFilter(value('eventId', eventId))\n .withSort('created:desc')\n .getPageAsync(0);\n\n return results[ 0 ];\n }\n\n}\n","import { SearchParams } from '@forgerock/backstage-ui-core';\n\nexport class EverythingSearchParams extends SearchParams {\n\n override get isPostBody(): boolean {\n return true;\n }\n\n override getHttpParamsMap(): Record {\n return {\n ...super.getHttpParamsMap(),\n filter: this.nestedFilters?.toJSON()\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractSearchService } from '@forgerock/backstage-ui-core';\nimport { firstValueFrom, map } from 'rxjs';\nimport { EverythingSearchParams } from './model/everything-search-params';\nimport { EverythingSearchResult, EverythingSearchResultContainer } from './model/everything-search-result';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EverythingSearchService\n extends AbstractSearchService> {\n override params = new EverythingSearchParams();\n override readonly url = '/search-ws/api/v1/everything/_search';\n\n getResults(): Promise {\n return firstValueFrom(\n this\n .withCount(5)\n .getPage(0)\n .pipe(\n map(it => it.results)\n )\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { and, filter, BackendService, value } from '@forgerock/backstage-ui-core';\nimport { EverythingSearchService } from './everything-search.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SearchFactoryService {\n\n constructor(private backend: BackendService) { }\n\n forumThreads(): EverythingSearchService {\n return new EverythingSearchService(this.backend)\n .withSort('updateTimestamp', false)\n .withNestedFilter(\n and(\n value(filter('source', 'community')),\n value(filter('entityType', 'THREAD')),\n )\n )\n }\n\n marketplaceEntries(): EverythingSearchService {\n return new EverythingSearchService(this.backend)\n .withSort('updateTimestamp', false)\n .withNestedFilter(\n and(\n value(filter('source', 'marketplace-entry')),\n value(filter('entityType', 'SOFTWARE_ARTIFACT')),\n )\n )\n }\n knowledgeArticles(): EverythingSearchService {\n return new EverythingSearchService(this.backend)\n .withSort('updateTimestamp', false)\n .withNestedFilter(\n and(\n value(filter('source', 'knowledge')),\n value(filter('entityType', 'ARTICLE')),\n )\n )\n }\n}\n","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Directive({\n selector: '[appSwipe]'\n})\nexport class SwipeDirective {\n @Output() swipeLeft = new EventEmitter();\n @Output() swipeRight = new EventEmitter();\n touchStartX = 0;\n\n @HostListener('touchstart', [ '$event' ])\n handleTouchStart(event: TouchEvent) {\n this.touchStartX = event.touches[ 0 ].clientX;\n }\n\n @HostListener('touchend', [ '$event' ])\n handleTouchEnd(event: TouchEvent) {\n if (this.touchStartX - event.changedTouches[ 0 ].clientX > 0) {\n this.swipeLeft.emit();\n } else {\n this.swipeRight.emit();\n }\n this.touchStartX = null;\n }\n\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'stripHtml'\n})\nexport class StripHtmlPipe implements PipeTransform {\n constructor(@Inject(DOCUMENT) private document: Document) {}\n\n transform(value: string): string {\n const e = this.document.createElement('div');\n e.innerHTML = value;\n return e.innerText;\n }\n\n}\n","\n @for (result of results; track result; let i = $index) {\n \n @if (imageUrl) {\n \n \n }\n
\n
{{ category ?? result.source }}
\n
\n \n \n {{ result.title }}\n
\n \n {{ result.synopsis ?? result.summary | stripHtml }}\n \n \n
\n }\n\n","import { Component, Input, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'app-search-result-carousel',\n templateUrl: './search-result-carousel.component.html',\n styleUrls: [ './search-result-carousel.component.scss' ]\n})\nexport class SearchResultCarouselComponent {\n @Input() results: CarouselItem[];\n @Input() backgroundClass: string;\n @Input() heading: TemplateRef;\n @Input() category: string;\n @Input() imageUrl: (item: CarouselItem, index: number) => string;\n}\n\nexport interface CarouselItem {\n source?: string;\n title: string;\n url?: string;\n synopsis?: string;\n summary?: string;\n}\n","
\n
\n

\n Fundamentals for developers
\n to build secure applications\n

\n

\n Curated quick start guides\n and development resources for the ForgeRock platform\n

\n
\n
\n \n \n
\n
\n
\n
\n Mobile Apps\n \n \n
\n
\n Authentication, registration, and self-service flows\n
\n
\n
\n
\n \n
\n
\n
\n
\n Custom Nodes\n \n \n
\n
\n Develop your own or browse existing authentication nodes\n
\n
\n
\n
\n \n
\n
\n
\n
\n Scripts\n \n \n
\n
\n Customize and extend authentication journeys\n
\n
\n
\n
\n \n
\n
\n
\n
\n Sample Code\n \n \n
\n
\n Examples for logging, OAuth2/OIDC, connectors and more\n
\n
\n
\n
\n
\n
\n
\n

What's new in the Community

\n \n \n @if (events.length) {\n \n \n
{{ result.startDateTime | date: 'MMM dd' }}
\n \n \n }\n
\n \n \n \n @if (marketplaceEntries.length) {\n \n }\n \n \n @if (forumThreads.length) {\n \n }\n \n \n @if (articles.length) {\n \n }\n \n \n \n
\n
\n
\n
\n
Always stay up to date
\n
\n ForgeRock Community\n ForgeRock News\n
\n
\n
\n
We’d love to hear from you
\n
\n You are big part of why ForgeRock is the best platform for building secure applications.\n Share your thoughts to tell us how we can improve our developer experience!\n
\n
\n
\n
\n
\n
\n
\n","import { Component, inject, OnInit } from '@angular/core';\nimport { AlertService, PageMetaService, TryCatcher } from '@forgerock/backstage-ui-core';\nimport { CommunityEventService } from '../../community-event.service';\nimport { CommunityEvent } from '../../model/community-event';\nimport { EverythingSearchResult } from '../../model/everything-search-result';\nimport { SearchFactoryService } from '../../search-factory.service';\n\n@Component({\n selector: 'app-developers-page',\n templateUrl: './developers-page.component.html',\n styleUrls: [ './developers-page.component.scss' ],\n providers: [ CommunityEventService ]\n})\nexport class DevelopersPageComponent extends TryCatcher implements OnInit {\n events: CommunityEvent[] = [];\n marketplaceEntries: EverythingSearchResult[] = [];\n articles: EverythingSearchResult[] = [];\n forumThreads: EverythingSearchResult[] = [];\n private pageMetaService = inject(PageMetaService);\n protected alertService = inject(AlertService);\n private searchFactory = inject(SearchFactoryService);\n private communityEventService = inject(CommunityEventService);\n\n async ngOnInit(): Promise {\n this.pageMetaService.setTitle('Developers');\n const promises = [\n async () => this.events = await this.communityEventService\n .getEvents(),\n async () => this.marketplaceEntries = await this.searchFactory\n .marketplaceEntries()\n .getResults(),\n async () => this.articles = await this.searchFactory\n .knowledgeArticles()\n .getResults(),\n async () => this.forumThreads = await this.searchFactory\n .forumThreads()\n .getResults()\n ];\n\n await this.tryCatch(() => Promise.allSettled(promises.map(it => it())));\n }\n\n eventImageUrl(event: EverythingSearchResult, index: number): string {\n return `assets/eventbg${index % 6}.jpeg`;\n }\n\n}\n","import { DatePipe, DOCUMENT } from '@angular/common';\nimport { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { toHttpParams } from '@forgerock/backstage-ui-core';\nimport { CommunityEvent } from '../model/community-event';\nimport { StripHtmlPipe } from './strip-html.pipe';\n\n@Pipe({\n name: 'calendarLink'\n})\nexport class CalendarLinkPipe implements PipeTransform {\n datePipe = new DatePipe('en_US');\n icsDateFormat = 'yyyyMMddTHHmmss';\n defaultDateFormat = 'yyyyMMddTHHmmssZ';\n private sanitizer = inject(DomSanitizer);\n private document = inject(DOCUMENT);\n private stripHtmlPipe = new StripHtmlPipe(this.document);\n\n transform(event: CommunityEvent, format: CalendarFormat): SafeResourceUrl | string {\n if (format === 'ics') {\n return this.toIcs(event);\n } else if (format === 'google') {\n return this.toGoogleCalendarLink(event);\n } else if (format === 'outlook') {\n return this.toOutlookCalendarLink(event, 'https://outlook.live.com');\n } else if (format === 'office365') {\n return this.toOutlookCalendarLink(event, 'https://outlook.office.com');\n } else if (format === 'yahoo') {\n return this.toYahooCalendarLink(event);\n } else {\n return '';\n }\n }\n\n formatDate(date: string, dateFormat = this.defaultDateFormat): string {\n return this.datePipe.transform(date, dateFormat);\n }\n\n toIcs(event: CommunityEvent) {\n const data = `BEGIN:VCALENDAR\nCALSCALE:GREGORIAN\nVERSION:2.0\nMETHOD:PUBLISH\nBEGIN:VTIMEZONE\nTZID:${event.timezone}\nEND:VTIMEZONE\nBEGIN:VEVENT\nURL:${event.url}\nTRANSP:OPAQUE\nDTSTART;TZID=${event.timezone}:${this.formatDate(event.startInstant, this.icsDateFormat)}\nDTEND;TZID=${event.timezone}:${this.formatDate(event.endInstant, this.icsDateFormat)}\nLOCATION:${event.venueLocation}\nDESCRIPTION:${this.toDescription(event).replace(/\\n/g, '\\\\n')}\nSUMMARY:${event.title}\nEND:VEVENT\nEND:VCALENDAR`;\n const blob = new Blob([ data ], { type: 'text/calendar' });\n const url = URL.createObjectURL(blob);\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n\n toGoogleCalendarLink(event: CommunityEvent): string {\n const params = toHttpParams({\n action: 'TEMPLATE',\n dates: `${this.formatDate(event.startInstant)}/${this.formatDate(event.endInstant)}`,\n details: this.toDescription(event, true),\n location: event.venueLocation,\n sprop: event.url,\n text: event.title\n });\n\n return `https://calendar.google.com/calendar/render?${params.toString()}`;\n }\n\n toOutlookCalendarLink(event: CommunityEvent, baseUrl: string): string {\n const params = toHttpParams({\n allday: false,\n body: this.toDescription(event),\n startdt: event.startInstant,\n enddt: event.endInstant,\n location: event.venueLocation,\n path: 'calendar/action/compose',\n rru: 'addevent',\n subject: event.title\n });\n\n return `${baseUrl}/calendar/0/deeplink/compose?${params.toString()}`;\n }\n\n toYahooCalendarLink(event: CommunityEvent): string {\n const params = toHttpParams({\n desc: this.toDescription(event),\n dur: '',\n st: this.formatDate(event.startInstant),\n et: this.formatDate(event.endInstant),\n // eslint-disable-next-line @typescript-eslint/naming-convention\n in_loc: event.venueLocation,\n title: event.title,\n url: event.url,\n v: '60'\n });\n\n return `https://calendar.yahoo.com/?${params.toString()}`;\n }\n\n private toDescription(event: CommunityEvent, richText = false): string {\n let description = richText ? event.summary : this.stripHtmlPipe.transform(event.summary);\n\n if (event.registrationUrl) {\n description += `\\nJoin the video call: ${event.registrationUrl}`;\n }\n\n return description;\n }\n\n}\n\nexport type CalendarFormat = 'ics' | 'google' | 'outlook' | 'office365' | 'yahoo';\n","
\n \n @if (!spinning) {\n @if (loggedIn) {\n @if (registered) {\n
\n You are registered on this event\n
\n
\n Add to my calendar\n \n
\n Download .ics file\n Add to Google Calendar\n Add to Outlook Live Calendar\n Add to Office 365 Calendar\n Add to Yahoo!\n
\n
\n } @else {\n @if (emailVerified) {\n Register now\n \n } @else {\n

\n \n

\n

\n Your email verification has expired. Please renew your verification to register on this event.\n

\n

\n Manage your account\n

\n }\n }\n } @else {\n Log in to Register\n \n \n }\n }\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AccountService, AlertService, RoleName, SessionService, TryCatcher } from '@forgerock/backstage-ui-core';\nimport { CommunityEventService } from '../community-event.service';\nimport { CommunityEvent } from '../model/community-event';\n\n@Component({\n selector: 'app-event-registration',\n templateUrl: './event-registration.component.html',\n styleUrls: [ './event-registration.component.scss' ]\n})\nexport class EventRegistrationComponent extends TryCatcher implements OnInit {\n @Input() event: CommunityEvent;\n registered: boolean;\n loggedIn: boolean;\n emailVerified: boolean;\n\n constructor(private communityEventService: CommunityEventService,\n private sessionService: SessionService,\n private accountService: AccountService,\n protected alertService: AlertService) {\n super();\n }\n\n async ngOnInit(): Promise {\n await this.tryCatch(async () => {\n this.loggedIn = await this.sessionService.isLoggedIn();\n\n if (!this.loggedIn) {\n return;\n }\n\n this.emailVerified = await this.accountService.hasRole(RoleName.emailVerified);\n\n if (!this.emailVerified) {\n return;\n }\n\n this.registered = await this.communityEventService.isRegistered(this.event.id);\n });\n }\n\n register(): Promise {\n return this.tryCatch(\n async () => {\n await this.communityEventService.register(this.event.id);\n this.registered = true;\n },\n 'You have successfully registered on this event!',\n 'Registration failed. You can report this issue at ' +\n 'backstage@forgerock.com.'\n );\n }\n\n redirectToLogin(): Promise {\n return this.sessionService.redirectToLogin();\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'urlEncode'\n})\nexport class UrlEncodePipe implements PipeTransform {\n\n transform(value: string): string {\n return encodeURIComponent(value);\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { CommunityEvent } from '../model/community-event';\n\n@Component({\n selector: 'app-social-media-buttons',\n templateUrl: './social-media-buttons.component.html',\n styleUrls: [ './social-media-buttons.component.scss' ]\n})\nexport class SocialMediaButtonsComponent {\n @Input() event: CommunityEvent;\n}\n","
\n Share this event\n \n \n \n
\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'colorize'\n})\nexport class ColorizePipe implements PipeTransform {\n private colors = [ 'purple', 'darkblue', 'lightblue', 'green', 'yellow', 'red', 'gray' ];\n\n transform(value: any): string {\n if (!value) {\n return 'gray';\n }\n const valueAsDigits = value.toString().split('').map(it => it.charCodeAt(0)).join('');\n const index = BigInt(valueAsDigits) % BigInt(this.colors.length);\n return this.colors[ Number(index) ];\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'replace'\n})\nexport class ReplacePipe implements PipeTransform {\n\n transform(value: string, from: string, to: string): unknown {\n return value?.replace(new RegExp(from, 'g'), to);\n }\n\n}\n","\n@if (event) {\n
\n
\n

{{ event.title }}

\n
\n @if (event.series) {\n \n {{ event.series | replace: '_' : ' ' }}\n
\n }\n Community Event\n
\n @if (event.guestSpeaker) {\n \n Guest speaker: {{ event.guestSpeaker }}\n
\n }\n \n \n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n @if (event.language) {\n \n \n \n \n }\n @if (event.modality) {\n \n \n \n \n }\n \n
\n Start\n {{ event.startInstant | date: 'MMM dd, yyyy, h:mm a O' }}
\n End\n {{ event.endInstant | date: 'MMM dd, yyyy, h:mm a O' }}
\n Region\n {{ event.venueLocation }}
\n Language\n {{ event.language }}
\n Modality\n {{ event.modality }}
\n
\n \n \n
\n
\n
\n
\n
\n \n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AlertService, PageMetaService, TryCatcher } from '@forgerock/backstage-ui-core';\nimport { CommunityEventService } from '../../community-event.service';\nimport { CommunityEvent } from '../../model/community-event';\n\n@Component({\n selector: 'app-event-detail-page',\n templateUrl: './event-detail-page.component.html',\n styleUrls: [ './event-detail-page.component.scss' ]\n})\nexport class EventDetailPageComponent extends TryCatcher implements OnInit {\n override spinning = true;\n event: CommunityEvent;\n eventId: string;\n private pageMetaService = inject(PageMetaService);\n private communityEventService = inject(CommunityEventService);\n private route = inject(ActivatedRoute);\n private router = inject(Router);\n protected alertService = inject(AlertService);\n\n async ngOnInit(): Promise {\n const { id } = this.route.snapshot.params;\n this.eventId = id;\n await this.tryCatch(async () => {\n try {\n this.event = await this.communityEventService.getEvent(id);\n this.pageMetaService.setTitle(`${this.event.title} | Events`);\n } catch (err) {\n await this.router.navigateByUrl('/');\n throw err;\n }\n });\n }\n\n}\n","
\n
\n
\n {{ event.startInstant | date: 'mediumDate' }}\n
\n
\n \n {{ event.modality }}\n @if (event.modality) {\n \n }\n {{ event.venueLocation }}\n
\n
\n
\n
\n
{{ event.title }}
\n
\n @if (event.series) {\n \n {{ event.series | replace: '_' : ' ' }}\n
\n }\n @if (event.tags.includes('role:partner')) {\n For partners\n
\n }\n
\n
\n \n
\n @if (event.guestSpeaker) {\n \n Guest speaker: {{ event.guestSpeaker }}\n
\n }\n \n
\n @if (registered) {\n \n You're registered\n
\n }\n Details \n \n \n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CommunityEventService } from '../community-event.service';\nimport { CommunityEvent } from '../model/community-event';\n\n@Component({\n selector: 'app-event-detail-card',\n templateUrl: './event-detail-card.component.html',\n styleUrls: [ './event-detail-card.component.scss' ]\n})\nexport class EventDetailCardComponent implements OnInit {\n @Input() event: CommunityEvent;\n registered: boolean;\n\n constructor(private communityEventService: CommunityEventService) {}\n\n async ngOnInit(): Promise {\n try {\n this.registered = await this.communityEventService.isRegistered(this.event.id);\n } catch {\n // ignored\n }\n }\n}\n","
\n Clear filters\n \n
\n
\n @for (filter of filterValuesChange.value | keyvalue; track filter) {\n @for (value of filter.value; track value) {\n {{ value }}\n \n }\n }\n
\n\n","import { KeyValue } from '@angular/common';\nimport { Component, Output } from '@angular/core';\nimport { DelayedBehaviorSubject } from '@forgerock/backstage-ui-core';\nimport { EventFilterValues } from '../model/event-filter-values';\n\n@Component({\n selector: 'app-event-filter-container',\n templateUrl: './event-filter-container.component.html',\n styleUrls: [ './event-filter-container.component.scss' ]\n})\nexport class EventFilterContainerComponent {\n @Output() filterValuesChange = new DelayedBehaviorSubject();\n\n setFilterValues(values: EventFilterValues): void {\n const oldValues = this.filterValuesChange.value ?? {};\n this.filterValuesChange.next({ ...oldValues, ...values });\n }\n\n removeFilterValue(filter: KeyValue, value: string): void {\n this.setFilterValues({ [ filter.key ]: filter.value.filter(it => it !== value) });\n }\n\n}\n\n","@for (result of aggregationResults?.results; track result) {\n
\n \n
\n}\n\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { toStringArray } from '@forgerock/backstage-ui-core';\nimport { Subscription } from 'rxjs';\nimport { EventFilterContainerComponent } from '../event-filter-container/event-filter-container.component';\nimport { CommunityEvent } from '../model/community-event';\nimport { AggregationResultContainer } from '../model/everything-search-result';\n\n@Component({\n selector: 'app-event-filter',\n templateUrl: './event-filter.component.html',\n styleUrls: [ './event-filter.component.scss' ]\n})\nexport class EventFilterComponent implements OnInit, OnDestroy {\n @Input() filterName: keyof CommunityEvent;\n @Input() aggregationResults: AggregationResultContainer;\n values = new Set();\n private subscription: Subscription;\n\n constructor(private container: EventFilterContainerComponent) { }\n\n ngOnInit(): void {\n this.subscription = this.container.filterValuesChange.subscribe(it => {\n this.values = new Set(toStringArray(it[ this.filterName ]));\n });\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n toggleValue(value: string): void {\n if (this.values.has(value)) {\n this.values.delete(value);\n } else {\n this.values.add(value);\n }\n this.container.setFilterValues({ [ this.filterName ]: toStringArray(this.values) });\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { Learner } from '../model/learner';\n\n@Component({\n selector: 'app-registration-detail-card',\n templateUrl: './registration-detail-card.component.html',\n styleUrls: [ './registration-detail-card.component.scss' ]\n})\nexport class RegistrationDetailCardComponent {\n @Input() learner: Learner;\n}\n","
\n
\n
\n
\n
\n {{learner.event.startInstant | date: 'MMM'}}\n
\n
\n {{learner.event.startInstant | date: 'dd'}}\n
\n
\n
\n \n
\n
\n","
\n \n
Upcoming Events
\n @for (registration of futureLearners; track registration) {\n \n }\n @if (!futureLearners.length) {\n

You're not registered on any upcoming events

\n }\n
\n @if (pastLearners.length) {\n \n
Past Events
\n @for (learner of pastLearners; track learner) {\n \n }\n \n }\n
\n To cancel a registration, please contact us at\n community@forgerock.com\n
\n\n","import { Component, OnInit } from '@angular/core';\nimport { CommunityEventService } from '../community-event.service';\nimport { Learner } from '../model/learner';\n\n@Component({\n selector: 'app-registration-list',\n templateUrl: './registration-list.component.html',\n styleUrls: [ './registration-list.component.scss' ]\n})\nexport class RegistrationListComponent implements OnInit {\n futureLearners: Learner[] = [];\n pastLearners: Learner[] = [];\n\n constructor(private communityEventService: CommunityEventService) {}\n\n async ngOnInit(): Promise {\n try {\n const now = new Date().toISOString();\n const learners = await this.communityEventService.getRegistrations();\n this.futureLearners = learners.filter(it => it.event.startInstant >= now);\n this.pastLearners = learners.filter(it => it.event.startInstant < now);\n } catch {\n // ignored\n }\n }\n\n}\n","\n\n
\n

My Event Registrations

\n
\n \n\n
\n
\n

Community Events

\n

\n Upcoming events hosted by ForgeRock and the ForgeRock community to connect, collaborate and learn from experts\n

\n
\n \n \n
\n My Registrations\n \n
\n \n @for (aggregation of aggregations; track aggregation) {\n \n \n \n }\n \n
\n \n
\n
Sort By: Start Date
\n \n @for (event of filteredEvents; track event) {\n \n \n \n }\n \n
\n
\n
\n
\n","import { Component, inject, OnInit } from '@angular/core';\nimport { AlertService, TryCatcher } from '@forgerock/backstage-ui-core';\nimport { CommunityEventService } from '../../community-event.service';\nimport { EverythingSearchService } from '../../everything-search.service';\nimport { CommunityEvent } from '../../model/community-event';\nimport { EventFilterValues } from '../../model/event-filter-values';\nimport { AggregationResult, AggregationResultContainer } from '../../model/everything-search-result';\n\n@Component({\n selector: 'app-event-list-page',\n templateUrl: './event-list-page.component.html',\n styleUrls: [ './event-list-page.component.scss' ],\n providers: [ EverythingSearchService ]\n})\nexport class EventListPageComponent extends TryCatcher implements OnInit {\n override spinning = true;\n filterableFields: (keyof CommunityEvent)[] = [ 'series', 'venueLocation', 'language', 'modality' ];\n events: CommunityEvent[] = [];\n filteredEvents: CommunityEvent[] = [];\n aggregations: AggregationResultContainer[];\n protected alertService = inject(AlertService);\n private communityEventService = inject(CommunityEventService);\n\n async ngOnInit(): Promise {\n await this.tryCatch(async () => {\n this.events = await this.communityEventService.getEvents();\n this.filteredEvents = [ ...this.events ];\n this.aggregations = this.getAggregations();\n });\n }\n\n handleFilterValuesChange(filterValues: Partial): void {\n this.filteredEvents = this.filterEvents(this.events, filterValues);\n }\n\n filterEvents(events: CommunityEvent[], filterValues: Partial): CommunityEvent[] {\n const validFilterValues = Object\n .entries(filterValues)\n .filter(([ , values ]) => values.length);\n\n return validFilterValues.length\n ? validFilterValues.reduce((filteredEvents, [ key, values ]) =>\n filteredEvents.filter(event => values.includes(event[ key ])), events\n )\n : events;\n }\n\n getAggregations(): AggregationResultContainer[] {\n // for each aggregated field\n return this.filterableFields.map(name => {\n // count the occurrences of each value of the current field\n const values = this.events.reduce((acc, event) => {\n if (event[ name ]) {\n const value = event[ name ].toString();\n acc[ value ] = acc[ value ] ? acc[ value ] + 1 : 1;\n }\n return acc;\n }, {});\n // convert the map to an array\n const results: AggregationResult[] = Object\n .entries(values)\n .map(([ value, total ]) => ({ value, total }));\n\n return { name, results };\n });\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemeService {\n theme = new BehaviorSubject(Theme.light);\n darkTheme: Observable = this.theme.pipe(map(it => it === Theme.dark));\n}\n\nexport enum Theme {\n light = 'light',\n dark = 'dark'\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { Theme, ThemeService } from './theme.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemeGuard {\n constructor(private themeService: ThemeService) {}\n\n canActivate(route: ActivatedRouteSnapshot): boolean {\n this.themeService.theme.next(route.data[ 'theme' ]);\n return true;\n }\n\n canDeactivate(): boolean {\n this.themeService.theme.next(Theme.light);\n return true;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { DeveloperToolsPageComponent } from './page/developer-tools-page/developer-tools-page.component';\nimport { DevelopersPageComponent } from './page/developers-page/developers-page.component';\nimport { EventDetailPageComponent } from './page/event-detail-page/event-detail-page.component';\nimport { EventListPageComponent } from './page/event-list-page/event-list-page.component';\nimport { ThemeGuard } from './theme.guard';\nimport { Theme } from './theme.service';\n\nconst routes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'events'\n },\n {\n path: 'developer',\n redirectTo: 'developers'\n },\n {\n path: 'developers',\n canActivate: [ ThemeGuard ],\n canDeactivate: [ ThemeGuard ],\n data: {\n theme: Theme.dark\n },\n children: [\n {\n path: '',\n component: DevelopersPageComponent\n },\n {\n path: 'tools',\n component: DeveloperToolsPageComponent\n }\n ]\n },\n {\n path: 'events',\n component: EventListPageComponent\n },\n {\n path: 'event/:id',\n redirectTo: 'events/:id'\n },\n {\n path: 'events/:id',\n component: EventDetailPageComponent\n }\n];\n\n@NgModule({\n imports: [\n RouterModule.forRoot(routes, {\n anchorScrolling: 'enabled',\n scrollOffset: [ 0, 67 ],\n scrollPositionRestoration: 'top'\n })\n ],\n exports: [ RouterModule ]\n})\nexport class AppRoutingModule {}\n","import { Component } from '@angular/core';\nimport { ThemeService } from '../theme.service';\n\n@Component({\n selector: 'app-nav',\n templateUrl: './nav.component.html',\n styleUrls: ['./nav.component.scss']\n})\nexport class NavComponent {\n\n constructor(public themeService: ThemeService) { }\n\n}\n","
\n \n
\n

\n \n Community\n

\n
\n
\n
    \n
  • \n Events\n
  • \n
  • \n Developers\n
      \n
    • \n Overview\n
    • \n
    • \n Tools\n
    • \n
    • \n Repositories\n
    • \n
    \n
  • \n
  • \n Forums\n
  • \n
  • \n Marketplace\n
  • \n
\n
\n \n
\n","import { DOCUMENT } from '@angular/common';\nimport { Component, Inject } from '@angular/core';\nimport { ThemeService } from './theme.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: [ './app.component.scss' ]\n})\nexport class AppComponent {\n constructor(public themeService: ThemeService,\n @Inject(DOCUMENT) private document: Document) {\n const className = 'theme-dark';\n themeService.darkTheme.subscribe(darkTheme => {\n if (darkTheme) {\n document.body.classList.add(className);\n } else {\n document.body.classList.remove(className);\n }\n });\n }\n\n}\n","\n\n \n
\n \n \n
\n \n
\n
\n\n
\n
\n \n
\n
\n\n","import { NgOptimizedImage } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport {\n ChipComponent,\n DrawerComponent,\n DrawerSpacerComponent, EllipsisComponent,\n FeedbackComponent, IconComponent,\n LayoutFoldableSectionComponent,\n LayoutGridCellComponent,\n LayoutGridComponent,\n NotificationsComponent,\n RecaptchaInputComponent,\n SpinnerComponent\n} from '@forgerock/backstage-ui-components';\nimport { APP_NAME, PAGE_META, UiCoreModule } from '@forgerock/backstage-ui-core';\nimport { NgbCarouselModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { DevelopersPageComponent } from './page/developers-page/developers-page.component';\nimport { CardWithIconComponent } from './card-with-icon/card-with-icon.component';\nimport { EventDetailPageComponent } from './page/event-detail-page/event-detail-page.component';\nimport { EventDetailCardComponent } from './event-detail-card/event-detail-card.component';\nimport { EventListPageComponent } from './page/event-list-page/event-list-page.component';\nimport { EventRegistrationComponent } from './event-registration/event-registration.component';\nimport { CalendarLinkPipe } from './pipe/calendar-link.pipe';\nimport { EventFilterComponent } from './event-filter/event-filter.component';\nimport { EventFilterContainerComponent } from './event-filter-container/event-filter-container.component';\nimport { ColorizePipe } from './pipe/colorize.pipe';\nimport { ReplacePipe } from './pipe/replace.pipe';\nimport { RegistrationListComponent } from './registration-list/registration-list.component';\nimport { RegistrationDetailCardComponent } from './registration-detail-card/registration-detail-card.component';\nimport { NavComponent } from './nav/nav.component';\nimport { DeveloperToolsPageComponent } from './page/developer-tools-page/developer-tools-page.component';\nimport { SwipeDirective } from './swipe.directive';\nimport { SearchResultCarouselComponent } from './search-result-carousel/search-result-carousel.component';\nimport { SocialMediaButtonsComponent } from './social-media-buttons/social-media-buttons.component';\nimport { UrlEncodePipe } from './pipe/url-encode.pipe';\nimport { StripHtmlPipe } from './pipe/strip-html.pipe';\n\n@NgModule({\n declarations: [\n AppComponent,\n DevelopersPageComponent,\n CardWithIconComponent,\n EventDetailPageComponent,\n EventDetailCardComponent,\n EventListPageComponent,\n EventRegistrationComponent,\n CalendarLinkPipe,\n EventFilterComponent,\n EventFilterContainerComponent,\n ColorizePipe,\n ReplacePipe,\n RegistrationListComponent,\n RegistrationDetailCardComponent,\n NavComponent,\n DeveloperToolsPageComponent,\n SwipeDirective,\n SearchResultCarouselComponent,\n SocialMediaButtonsComponent,\n UrlEncodePipe,\n StripHtmlPipe\n ],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n NgbDropdownModule,\n UiCoreModule,\n AppRoutingModule,\n NgbCarouselModule,\n FormsModule,\n NgOptimizedImage,\n NotificationsComponent,\n DrawerSpacerComponent,\n SpinnerComponent,\n DrawerComponent,\n LayoutGridComponent,\n LayoutGridCellComponent,\n LayoutFoldableSectionComponent,\n RecaptchaInputComponent,\n FeedbackComponent,\n EllipsisComponent,\n ChipComponent,\n IconComponent\n ],\n schemas: [ CUSTOM_ELEMENTS_SCHEMA ],\n providers: [\n {\n provide: PAGE_META,\n useValue: {\n title: 'Community | ForgeRock Backstage'\n }\n },\n {\n provide: APP_NAME,\n useValue: 'bs_community-ui'\n }\n ],\n bootstrap: [ AppComponent ]\n})\nexport class AppModule {}\n","/// \n\nimport { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport '@popperjs/core';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .then(() => {\n document.getElementById('waitforit')?.setAttribute('hidden', 'hidden');\n })\n .catch(err => {\n document.getElementById('app-loading')?.setAttribute('hidden', 'hidden');\n document.getElementById('app-error')?.removeAttribute('hidden');\n console.error(err);\n });\n"],"x_google_ignoreList":[]}