{"version":3,"sources":["webpack:///./src/app/components/app/app.component.html","webpack:///./src/app/components/errormessage/errormessage.component.html","webpack:///./src/app/components/event/event.component.html","webpack:///./src/app/components/event/passes/passes.component.html","webpack:///./src/app/components/event/session-cart/session-cart.component.html","webpack:///./src/app/components/event/sessions/sessions.component.html","webpack:///./src/app/components/event/sessionslistview/sessionslistview.component.html","webpack:///./src/app/components/event/sessiontracks/sessiontracks.component.html","webpack:///./src/app/components/event/speakers/speakers.component.html","webpack:///./src/app/components/event/sponsors/sponsors.component.html","webpack:///./src/app/components/eventregistration/attendee/attendee.component.html","webpack:///./src/app/components/eventregistration/attendee/custom-registration-fields/custom-registration-fields.component.html","webpack:///./src/app/components/eventregistration/captcha/captcha.component.html","webpack:///./src/app/components/eventregistration/confirmation/confirmation.component.html","webpack:///./src/app/components/eventregistration/eventregistration.component.html","webpack:///./src/app/components/eventregistration/eventregistrationform/eventregistrationform.component.html","webpack:///./src/app/components/eventregistration/modal/modal.component.html","webpack:///./src/app/components/eventregistration/paymentdemo/payment.demo.html","webpack:///./src/app/components/eventregistration/session-selection/session-selection.component.html","webpack:///./src/app/components/footer/footer.component.html","webpack:///./src/app/components/home/home.component.html","webpack:///./src/app/components/myregistrations/myregistrations.component.html","webpack:///./src/app/components/myregistrations/waitlist-item-card/waitlist-item-card.component.html","webpack:///./src/app/components/navmenu/navmenu.component.html","webpack:///./src/app/components/spinner/spinner.component.html","webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app.module.ts","webpack:///./src/app/components/app/app.component.css","webpack:///./src/app/components/app/app.component.ts","webpack:///./src/app/components/errormessage/errormessage.component.css","webpack:///./src/app/components/errormessage/errormessage.component.ts","webpack:///./src/app/components/event/event.component.css","webpack:///./src/app/components/event/event.component.ts","webpack:///./src/app/components/event/passes/passes.component.css","webpack:///./src/app/components/event/passes/passes.component.ts","webpack:///./src/app/components/event/session-cart/session-cart.component.css","webpack:///./src/app/components/event/session-cart/session-cart.component.ts","webpack:///./src/app/components/event/session-cart/session-cart.service.ts","webpack:///./src/app/components/event/sessions/sessions.component.css","webpack:///./src/app/components/event/sessions/sessions.component.ts","webpack:///./src/app/components/event/sessionslistview/sessionslistview.component.css","webpack:///./src/app/components/event/sessionslistview/sessionslistview.component.ts","webpack:///./src/app/components/event/sessiontracks/sessiontracks.component.css","webpack:///./src/app/components/event/sessiontracks/sessiontracks.component.ts","webpack:///./src/app/components/event/speakers/speakers.component.css","webpack:///./src/app/components/event/speakers/speakers.component.ts","webpack:///./src/app/components/event/sponsors/sponsors.component.css","webpack:///./src/app/components/event/sponsors/sponsors.component.ts","webpack:///./src/app/components/eventregistration/attendee/attendee.component.css","webpack:///./src/app/components/eventregistration/attendee/attendee.component.ts","webpack:///./src/app/components/eventregistration/attendee/custom-registration-fields/custom-registration-fields.component.css","webpack:///./src/app/components/eventregistration/attendee/custom-registration-fields/custom-registration-fields.component.ts","webpack:///./src/app/components/eventregistration/captcha/captcha.component.css","webpack:///./src/app/components/eventregistration/captcha/captcha.component.ts","webpack:///./src/app/components/eventregistration/confirmation/confirmation.component.css","webpack:///./src/app/components/eventregistration/confirmation/confirmation.component.ts","webpack:///./src/app/components/eventregistration/eventregistration.component.css","webpack:///./src/app/components/eventregistration/eventregistration.component.ts","webpack:///./src/app/components/eventregistration/eventregistrationform/eventregistrationform.component.ts","webpack:///./src/app/components/eventregistration/modal/modal.component.css","webpack:///./src/app/components/eventregistration/modal/modal.component.ts","webpack:///./src/app/components/eventregistration/paymentdemo/payment.demo.css","webpack:///./src/app/components/eventregistration/paymentdemo/payment.demo.ts","webpack:///./src/app/components/eventregistration/registration-service.factory.ts","webpack:///./src/app/components/eventregistration/registration.service.ts","webpack:///./src/app/components/eventregistration/session-selection/session-selection.component.css","webpack:///./src/app/components/eventregistration/session-selection/session-selection.component.ts","webpack:///./src/app/components/footer/footer.component.css","webpack:///./src/app/components/footer/footer.component.ts","webpack:///./src/app/components/home/home.component.css","webpack:///./src/app/components/home/home.component.ts","webpack:///./src/app/components/myregistrations/myregistrations.component.css","webpack:///./src/app/components/myregistrations/myregistrations.component.ts","webpack:///./src/app/components/myregistrations/waitlist-item-card/waitlist-item-card.component.css","webpack:///./src/app/components/myregistrations/waitlist-item-card/waitlist-item-card.component.ts","webpack:///./src/app/components/navmenu/navmenu.component.css","webpack:///./src/app/components/navmenu/navmenu.component.ts","webpack:///./src/app/components/pipes/safe.pipe.ts","webpack:///./src/app/components/spinner/spinner.component.css","webpack:///./src/app/components/spinner/spinner.component.ts","webpack:///./src/app/constants/TranslationKeys.ts","webpack:///./src/app/directives/defaultImage.directive.ts","webpack:///./src/app/directives/translate.directive.ts","webpack:///./src/app/guards/is.authenticated.guard.ts","webpack:///./src/app/helpers/AadB2CHelper.ts","webpack:///./src/app/helpers/ErrorHelper.ts","webpack:///./src/app/helpers/ImageHelper.ts","webpack:///./src/app/helpers/ScrollHelper.ts","webpack:///./src/app/helpers/d365/HttpD365Helper.ts","webpack:///./src/app/helpers/mock/HttpMockHelper.ts","webpack:///./src/app/helpers/rest/HttpRestHelper.ts","webpack:///./src/app/models/CustomRegistrationField.ts","webpack:///./src/app/models/ErrorResponse.ts","webpack:///./src/app/models/LocalizableError.ts","webpack:///./src/app/providers/http.helper.provider.ts","webpack:///./src/app/providers/service.providers.ts","webpack:///./src/app/resolvers/external.login.url.resolver.ts","webpack:///./src/app/resolvers/external.logout.url.resolver.ts","webpack:///./src/app/resolvers/external.profile.url.resolver.ts","webpack:///./src/app/resolvers/external.url.resolver.ts","webpack:///./src/app/routes.ts","webpack:///./src/app/services/active-event.service.ts","webpack:///./src/app/services/base/user.base.service.ts","webpack:///./src/app/services/browser-session.service.ts","webpack:///./src/app/services/captcha.service.ts","webpack:///./src/app/services/cookie.service.ts","webpack:///./src/app/services/d365/event.d365.service.ts","webpack:///./src/app/services/d365/session.d365.service.ts","webpack:///./src/app/services/d365/sponsors.d366.service.ts","webpack:///./src/app/services/d365/tracks.d365.service.ts","webpack:///./src/app/services/d365/user.d365.service.ts","webpack:///./src/app/services/labels.service.ts","webpack:///./src/app/services/rest/event.rest.service.ts","webpack:///./src/app/services/rest/session.rest.service.ts","webpack:///./src/app/services/rest/sponsorships.rest.service.ts","webpack:///./src/app/services/rest/tracks.rest.service.ts","webpack:///./src/app/services/rest/user.rest.service.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n {{ serverErrorMessage }} \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n

{{ event.eventName }}

\\r\\n

{{ event.startDate | date:'dd-MM-yyyy HH:mm' }}

\\r\\n

{{ event.building ? event.building.name : '' }}

\\r\\n \\r\\n Register Now\\r\\n \\r\\n \\r\\n Register Now\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n {{event.websiteMessage}}\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ event.description }}\\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\"","module.exports = \"
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n

No passes are associated to this event.

\\r\\n
0\\\" class=\\\"container mb-4\\\">\\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
0\\\">\\r\\n

\\r\\n Sessions included in Pass\\r\\n ({{ selectedPass.sessions.length }})\\r\\n

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

\\r\\n There are no sessions associated with this pass.\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Session Cart

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n

No sessions are associated to this event.

\\r\\n\\r\\n
0\\\">\\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\"","module.exports = \"

\\r\\n There are no sessions assigned.\\r\\n

\\r\\n\\r\\n
0\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ session.name }}
\\r\\n
\\r\\n
\\r\\n Waitlist\\r\\n
\\r\\n \\r\\n {{ session.startTime | date:'shortTime' }} - {{ session.endTime | date:'shortTime' }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{ session.room.name }} @\\r\\n \\r\\n \\r\\n {{ session.building.name }}\\r\\n \\r\\n
\\r\\n
\\r\\n New registrants will be added to the waitlist for this session.\\r\\n
\\r\\n

\\r\\n {{ session.sessionSummary }}\\r\\n

\\r\\n

\\r\\n {{ session.detailedDescription }}\\r\\n

\\r\\n
0\\\">\\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\\n\"","module.exports = \"
0\\\">\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n

No session tracks are associated to this event.

\\r\\n\\r\\n
0\\\" class=\\\"filters mr-3 ml-3 mb-4\\\">\\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\"","module.exports = \"
\\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 \\\"{{speaker.name}}\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ speaker.name }} , {{ speaker.title }}

\\r\\n
\\r\\n
\\r\\n {{ speaker.about }}\\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\\n
\\r\\n

No speakers are associated to this event.

\\r\\n
0\\\" class=\\\"row speaker\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"{{speaker.name}}\\\"\\r\\n
\\r\\n
\\r\\n {{ speaker.name }}\\r\\n
\\r\\n
\\r\\n {{ speaker.title }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
0)\\\" class=\\\"event-sponsors-container\\\">\\r\\n
\\r\\n

Brought to you by

\\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

No sponsorships are associated to this event.

\\r\\n\\r\\n
0\\\" class=\\\"container\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"{{sponsor.sponsorName}}\\\"\\r\\n
\\r\\n
{{ sponsor.sponsorName }}
\\r\\n
Sponsor\\r\\n Name
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{ attendee.lastName }} \\r\\n {{ attendee.firstName }} \\r\\n {{ attendee.lastName }}\\r\\n \\r\\n
\\r\\n
0\\\">\\r\\n \\r\\n {{ getCntOfWaitlistedSessionsForAttendee() }} \\r\\n waitlisted session(s)\\r\\n \\r\\n
\\r\\n\\r\\n

{{ passDisplayString(attendee.passId) }}

\\r\\n {{ attendee.email }}\\r\\n

0\\\">\\r\\n Additional information available\\r\\n

\\r\\n

0\\\" class=\\\"mb-1\\\">\\r\\n This registrant is on the waitlist for one or more sessions.\\r\\n

\\r\\n

\\r\\n This attendee will be automatically registered as soon as there is capacity available.\\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 Last Name is required.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n First Name is required.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Last Name is required.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Please enter a valid email address.\\r\\n
\\r\\n
\\r\\n Email is required.\\r\\n
\\r\\n
\\r\\n
\\r\\n
0 && !waitlisted\\\">\\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\"","module.exports = \"\\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\\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\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Thank you for registering for the event!

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
0\\\">\\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
The event's maximum capacity has been reached. You can only add attendants to the waitlist.
\\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
0\\\" class=\\\"sessions-spacer\\\">\\r\\n
0\\\" class=\\\"col col-lg-6 col-sm-6 registration-form-sessions-wrapper align-left\\\">\\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

Sign-in for event registration

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

You need to sign-in to continue with the event registration.

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

Aanmelden voor {{event.eventName}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
The event's maximum capacity has been reached. You can only add attendants to the waitlist.
\\r\\n
\\r\\n
\\r\\n

Add attendee to waitlist

\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\\\" class=\\\"col registered-attendee-list\\\">\\r\\n

Waitlisted attendees

\\r\\n

0\\\" class=\\\"h4\\\" [appTranslate]=\\\"'EditingWaitlistedAttendee'\\\">Editing waitlisted attendee

\\r\\n\\r\\n
\\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

Attendee details

\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\\\"\\r\\n [ngClass]=\\\"{'col-lg-6': !showWaitlist() && attendeeEditingCount == 0 && !isAllowedToCreateNewAttendee()}\\\"\\r\\n class=\\\"col registered-attendee-list\\\">\\r\\n

Registrations

\\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\"","module.exports = \"
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

{{ title }}

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

\\r\\n {{ translateLabelWithParams(getTranslationForMessage(), getMessage(), getExtraParams()) | async }}\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

Demo Payment Gateway

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

Order Summary

\\r\\n Description: Event pass
\\r\\n Amount: {{ currencySymbol }}{{ total }}\\r\\n
\\r\\n\\r\\n
\\r\\n

Payment details

\\r\\n
\\r\\n
\\r\\n Card number: xxxx-xxxx-xxxx-xxxx\\r\\n
\\r\\n
\\r\\n Card holder: Name & Last Name\\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\"","module.exports = \"
\\r\\n

Selected Sessions

\\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

Available events

\\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\\n
\\r\\n \\r\\n {{ event.eventName }}\\r\\n
\\r\\n
at {{ event.building.name }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
0\\\">\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

My registrations

\\r\\n
\\r\\n
Please note there can be a delay in processing your registrations.
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
No registrations found
\\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

\\r\\n {{ registration.event }}\\r\\n \\r\\n 0\\\" class=\\\"badge badge-primary badge-pill showMore\\\" [appTranslate]=\\\"'ShowSessions'\\\">show sessions\\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
0\\\">\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n
    \\r\\n
    \\r\\n

    {{sessionRegistration.sessionName}}

    \\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

My waitlist items

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
No waitlist items found
\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{ waitlistItem.event }}\\r\\n \\r\\n Event\\r\\n \\r\\n

\\r\\n

\\r\\n {{ waitlistItem.session }}\\r\\n \\r\\n Session\\r\\n \\r\\n

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

\\r\\n Event\\r\\n :\\r\\n {{ waitlistItem.event }}\\r\\n

\\r\\n

\\r\\n Name\\r\\n :\\r\\n {{ waitlistItem.contact }}\\r\\n

\\r\\n

\\r\\n Email\\r\\n :\\r\\n {{ waitlistItem.email }}\\r\\n

\\r\\n

\\r\\n Registered since\\r\\n :\\r\\n {{ waitlistItem.createdon | date:'medium' }}\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"
\\r\\n\\r\\n
\"","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","import { LabelsService } from './services/labels.service';\r\nimport { AadB2CHelper } from \"./helpers/AadB2CHelper\";\r\nimport { CaptchaService } from \"./services/captcha.service\";\r\nimport { HttpHelperProvider } from \"./providers/http.helper.provider\";\r\nimport {\r\n EventServiceProvider,\r\n SessionServiceProvider,\r\n UserServiceProvider,\r\n TracksServiceProvider,\r\n SponsorshipsServiceProvider\r\n} from \"./providers/service.providers\";\r\nimport { IsAuthenticatedGuard } from \"./guards/is.authenticated.guard\";\r\nimport { AppRoutes } from \"./routes\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { BrowserModule } from \"@angular/platform-browser\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { AppComponent } from \"./components/app/app.component\";\r\nimport { NavMenuComponent } from \"./components/navmenu/navmenu.component\";\r\nimport { HomeComponent } from \"./components/home/home.component\";\r\nimport { FooterComponent } from \"./components/footer/footer.component\";\r\nimport { EventComponent } from \"./components/event/event.component\";\r\nimport { EventRegistrationComponent } from \"./components/eventregistration/eventregistration.component\";\r\nimport { AttendeeComponent } from \"./components/eventregistration/attendee/attendee.component\";\r\nimport { SpeakersComponent } from \"./components/event/speakers/speakers.component\";\r\nimport { SessionsComponent } from \"./components/event/sessions/sessions.component\";\r\nimport { SessiontracksComponent } from \"./components/event/sessiontracks/sessiontracks.component\";\r\nimport { ConfirmationComponent } from \"./components/eventregistration/confirmation/confirmation.component\";\r\nimport { SpinnerComponent } from \"./components/spinner/spinner.component\";\r\nimport { ErrorMessageComponent } from \"./components/errormessage/errormessage.component\";\r\nimport { SponsorsComponent } from \"./components/event/sponsors/sponsors.component\";\r\nimport { PassesComponent } from \"./components/event/passes/passes.component\";\r\nimport { SessionsListViewComponent } from \"./components/event/sessionslistview/sessionslistview.component\";\r\nimport { CaptchaComponent } from \"./components/eventregistration/captcha/captcha.component\";\r\nimport { TranslateDirective } from \"./directives/translate.directive\";\r\nimport { DefaultImage } from \"./directives/defaultImage.directive\";\r\nimport { ExternalLoginUrlResolver } from \"./resolvers/external.login.url.resolver\";\r\nimport { ExternalProfileUrlResolver } from \"src/app/resolvers/external.profile.url.resolver\";\r\nimport { ExternalLogoutUrlResolver } from \"./resolvers/external.logout.url.resolver\";\r\nimport { MyRegistrationsComponent } from \"./components/myregistrations/myregistrations.component\";\r\nimport { ImageHelper } from \"./helpers/ImageHelper\";\r\nimport { PaymentDemoComponent } from \"src/app/components/eventregistration/paymentdemo/payment.demo\";\r\nimport { BrowserSessionService } from \"./services/browser-session.service\";\r\nimport { CustomRegistrationFieldsComponent } from \"./components/eventregistration/attendee/custom-registration-fields/custom-registration-fields.component\";\r\nimport { SessionCartComponent } from \"./components/event/session-cart/session-cart.component\";\r\nimport { SessionCartService } from \"./components/event/session-cart/session-cart.service\";\r\nimport { SessionSelectionComponent } from \"./components/eventregistration/session-selection/session-selection.component\";\r\nimport { CookieService } from \"./services/cookie.service\";\r\nimport { WaitlistItemCardComponent } from './components/myregistrations/waitlist-item-card/waitlist-item-card.component';\r\nimport { EventRegistrationFormComponent } from './components/eventregistration/eventregistrationform/eventregistrationform.component';\r\nimport { RegistrationFormInitializerDirective } from './components/eventregistration/eventregistrationform/eventregistrationform.component';\r\nimport { SafePipe } from './components/pipes/safe.pipe';\r\nimport { NgbdModalContent } from './components/eventregistration/modal/modal.component';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n@NgModule({\r\n bootstrap: [AppComponent],\r\n declarations: [\r\n AppComponent,\r\n NavMenuComponent,\r\n HomeComponent,\r\n FooterComponent,\r\n EventComponent,\r\n EventRegistrationComponent,\r\n AttendeeComponent,\r\n SpeakersComponent,\r\n SessionsComponent,\r\n SessiontracksComponent,\r\n ConfirmationComponent,\r\n SpinnerComponent,\r\n ErrorMessageComponent,\r\n SponsorsComponent,\r\n PassesComponent,\r\n SessionsListViewComponent,\r\n CaptchaComponent,\r\n TranslateDirective,\r\n DefaultImage,\r\n MyRegistrationsComponent,\r\n PaymentDemoComponent,\r\n CustomRegistrationFieldsComponent,\r\n SessionCartComponent,\r\n SessionSelectionComponent,\r\n WaitlistItemCardComponent,\r\n EventRegistrationFormComponent,\r\n RegistrationFormInitializerDirective,\r\n SafePipe,\r\n NgbdModalContent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n CommonModule,\r\n HttpClientModule,\r\n FormsModule,\r\n NgbModule,\r\n RouterModule.forRoot(\r\n AppRoutes,\r\n { scrollPositionRestoration: 'disabled' }\r\n )\r\n ],\r\n providers: [\r\n IsAuthenticatedGuard,\r\n ExternalLoginUrlResolver,\r\n ExternalLogoutUrlResolver,\r\n ExternalProfileUrlResolver,\r\n HttpClient,\r\n HttpHelperProvider,\r\n ImageHelper,\r\n CaptchaService,\r\n EventServiceProvider,\r\n SessionServiceProvider,\r\n TracksServiceProvider,\r\n UserServiceProvider,\r\n SponsorshipsServiceProvider,\r\n BrowserSessionService,\r\n AadB2CHelper,\r\n SessionCartService,\r\n LabelsService,\r\n AadB2CHelper,\r\n CookieService,\r\n ],\r\n entryComponents: [NgbdModalContent]\r\n})\r\nexport class AppModule {}\r\n","module.exports = \":host {\\r\\n display: flex;\\r\\n height: 100%;\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\nmain {\\r\\n flex-grow: 2;\\r\\n}\\r\\n\\r\\n.body-content {\\r\\n padding-top: 56px;\\r\\n padding-bottom: 160px;\\r\\n\\r\\n @media (max-width: 767px) {\\r\\n padding-top: 50px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hcHAvYXBwLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxhQUFhO0lBQ2IsWUFBWTtJQUNaLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxpQkFBaUI7SUFDakIscUJBQXFCOztJQUVyQjtZQUNRLGlCQUFpQjtJQUN6QjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9hcHAvYXBwLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG5cclxubWFpbiB7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbn1cclxuXHJcbi5ib2R5LWNvbnRlbnQge1xyXG4gICAgcGFkZGluZy10b3A6IDU2cHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTYwcHg7XHJcblxyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA1MHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { LabelsService } from '../../services/labels.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { MetaDefinition, Meta } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit {\r\n constructor(public labelsService: LabelsService, private metaService: Meta) {}\r\n\r\n ngOnInit() {\r\n this.labelsService.getLabelsModel().subscribe(labelsModel => {\r\n // force get the labels\r\n });\r\n\r\n this.addBuildVersionToMetaTags();\r\n }\r\n\r\n private addBuildVersionToMetaTags() {\r\n let metaBuildVersion = '0.0.0';\r\n if (environment && environment.buildVersion) {\r\n metaBuildVersion = environment.buildVersion;\r\n }\r\n\r\n const metaDefinition: MetaDefinition = {\r\n name: 'build-version',\r\n content: metaBuildVersion\r\n };\r\n\r\n this.metaService.addTag(metaDefinition);\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZXJyb3JtZXNzYWdlL2Vycm9ybWVzc2FnZS5jb21wb25lbnQuY3NzIn0= */\"","import { Component } from '@angular/core';\r\nimport { Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-errormessage',\r\n templateUrl: './errormessage.component.html',\r\n styleUrls: ['./errormessage.component.css']\r\n})\r\nexport class ErrorMessageComponent {\r\n @Input()\r\n public serverErrorMessage: string;\r\n @Input()\r\n public errorMessageTranslationKey: string;\r\n}\r\n","module.exports = \".event-banner {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n justify-content: space-between;\\r\\n max-width: 100%;\\r\\n background-size: cover;\\r\\n text-align: center;\\r\\n color: #eee;\\r\\n background-color: #778899;\\r\\n height: 420px;\\r\\n}\\r\\n\\r\\n.register-container {\\r\\n display: block;\\r\\n align-self: center;\\r\\n margin-bottom: 40px;\\r\\n}\\r\\n\\r\\n.event-banner .row {\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\n.register-container button {\\r\\n border-radius: 0px;\\r\\n font-size: 2rem;\\r\\n}\\r\\n\\r\\n.section-landing-heading {\\r\\n font-size: 180%;\\r\\n color: #fff;\\r\\n text-transform: uppercase;\\r\\n font-weight: bold;\\r\\n margin-top: 1em;\\r\\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\\r\\n}\\r\\n\\r\\n.event-date {\\r\\n font-size: 150%;\\r\\n margin-top: 1.5em;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n.event-location {\\r\\n font-size: 150%;\\r\\n margin-top: 0;\\r\\n}\\r\\n\\r\\n.event-data-container {\\r\\n padding-top: 10px;\\r\\n padding-bottom: 60px;\\r\\n}\\r\\n\\r\\n.event-data-container-warning {\\r\\n padding-top: 10px;\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.event-description-container {\\r\\n padding-top: 10px;\\r\\n padding-bottom: 20px;\\r\\n text-align: justify;\\r\\n font-size: 1.1rem;\\r\\n\\r\\n}\\r\\n\\r\\n.icon-padding {\\r\\n padding-left: 10px;\\r\\n}\\r\\n\\r\\n.nav-link {\\r\\n font-weight: 1000;\\r\\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\\r\\n color: #495057;\\r\\n}\\r\\n\\r\\n.nav-tabs .nav-link:focus,\\r\\n.nav-tabs .nav-link:hover {\\r\\n border-top: 0;\\r\\n border-left: 0;\\r\\n border-right: 0;\\r\\n}\\r\\n\\r\\n.nav-tabs {\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n.nav-tabs .nav-item.show .nav-link,\\r\\n.nav-tabs .nav-item .nav-link.active,\\r\\n.event-details-accordion .card .card-header {\\r\\n color: #495057;\\r\\n background-color: #fff;\\r\\n border-color: #fff #fff #2196f3;\\r\\n border-bottom-width: thick;\\r\\n}\\r\\n\\r\\n.event-details-accordion .card {\\r\\n border: 0\\r\\n}\\r\\n\\r\\n.event-details-accordion .card .card-body {\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\n.btn-primary {\\r\\n background-color: #006ADB;\\r\\n}\\r\\n\\r\\n.btn-primary:hover {\\r\\n color: #fff;\\r\\n background-color: #005BBD;\\r\\n border-color: #0062cc;\\r\\n}\\r\\n\\r\\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-primary.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #0062cc;\\r\\n border-color: #005cbf;\\r\\n}\\r\\n\\r\\n.btn-primary:focus { \\r\\n outline: 1px dashed transparent; \\r\\n outline-offset: 2px; \\r\\n}\\r\\n\\r\\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\\r\\n.show > .btn-primary.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5);\\r\\n}\\r\\n\\r\\n/* [SM] Small devices (landscape phones, 576px and up) (bootstrap breakpoint SM) */\\r\\n\\r\\n@media (min-width: 576px) {\\r\\n .nav-tabs {\\r\\n flex-direction: row;\\r\\n }\\r\\n\\r\\n .nav-link {\\r\\n padding: .5rem 0.1rem;\\r\\n font-size: 13px;\\r\\n }\\r\\n}\\r\\n\\r\\n/* [MD] Medium devices (tablets, 768px and up) */\\r\\n\\r\\n@media (min-width: 768px) {\\r\\n .nav-link {\\r\\n padding: .5rem .2rem;\\r\\n font-size: 17px;\\r\\n }\\r\\n}\\r\\n\\r\\n/* [LG] Large devices (desktops, 992px and up) */\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .nav-link {\\r\\n padding: .5rem 1rem;\\r\\n font-size: 20px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudC9ldmVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksYUFBYTtJQUNiLHNCQUFzQjtJQUN0Qiw4QkFBOEI7SUFDOUIsZUFBZTtJQUNmLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIsV0FBVztJQUNYLHlCQUF5QjtJQUN6QixhQUFhO0FBQ2pCOztBQUVBO0lBQ0ksY0FBYztJQUNkLGtCQUFrQjtJQUNsQixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGVBQWU7SUFDZixXQUFXO0lBQ1gseUJBQXlCO0lBQ3pCLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2YsMkRBQTJEO0FBQy9EOztBQUVBO0lBQ0ksZUFBZTtJQUNmLGlCQUFpQjtJQUNqQix5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsYUFBYTtBQUNqQjs7QUFFQTtJQUNJLGlCQUFpQjtJQUNqQixvQkFBb0I7QUFDeEI7O0FBRUE7SUFDSSxpQkFBaUI7SUFDakIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksaUJBQWlCO0lBQ2pCLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsaUJBQWlCOztBQUVyQjs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGlCQUFpQjtJQUNqQiwyREFBMkQ7SUFDM0QsY0FBYztBQUNsQjs7QUFFQTs7SUFFSSxhQUFhO0lBQ2IsY0FBYztJQUNkLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7OztJQUdJLGNBQWM7SUFDZCxzQkFBc0I7SUFDdEIsK0JBQStCO0lBQy9CLDBCQUEwQjtBQUM5Qjs7QUFFQTtJQUNJO0FBQ0o7O0FBRUE7SUFDSSxVQUFVO0FBQ2Q7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSxXQUFXO0lBQ1gseUJBQXlCO0lBQ3pCLHFCQUFxQjtBQUN6Qjs7QUFFQTs7SUFFSSxXQUFXO0lBQ1gseUJBQXlCO0lBQ3pCLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLCtCQUErQjtJQUMvQixtQkFBbUI7QUFDdkI7O0FBRUE7O0lBRUksaURBQWlEO0FBQ3JEOztBQUVBLGtGQUFrRjs7QUFDbEY7SUFDSTtRQUNJLG1CQUFtQjtJQUN2Qjs7SUFFQTtRQUNJLHFCQUFxQjtRQUNyQixlQUFlO0lBQ25CO0FBQ0o7O0FBRUEsZ0RBQWdEOztBQUNoRDtJQUNJO1FBQ0ksb0JBQW9CO1FBQ3BCLGVBQWU7SUFDbkI7QUFDSjs7QUFFQSxnREFBZ0Q7O0FBQ2hEO0lBQ0k7UUFDSSxtQkFBbUI7UUFDbkIsZUFBZTtJQUNuQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9ldmVudC9ldmVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmV2ZW50LWJhbm5lciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogI2VlZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Nzg4OTk7XHJcbiAgICBoZWlnaHQ6IDQyMHB4O1xyXG59XHJcblxyXG4ucmVnaXN0ZXItY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxufVxyXG5cclxuLmV2ZW50LWJhbm5lciAucm93IHtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xyXG59XHJcblxyXG4ucmVnaXN0ZXItY29udGFpbmVyIGJ1dHRvbiB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgICBmb250LXNpemU6IDJyZW07XHJcbn1cclxuXHJcbi5zZWN0aW9uLWxhbmRpbmctaGVhZGluZyB7XHJcbiAgICBmb250LXNpemU6IDE4MCU7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIG1hcmdpbi10b3A6IDFlbTtcclxuICAgIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG4uZXZlbnQtZGF0ZSB7XHJcbiAgICBmb250LXNpemU6IDE1MCU7XHJcbiAgICBtYXJnaW4tdG9wOiAxLjVlbTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuXHJcbi5ldmVudC1sb2NhdGlvbiB7XHJcbiAgICBmb250LXNpemU6IDE1MCU7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG59XHJcblxyXG4uZXZlbnQtZGF0YS1jb250YWluZXIge1xyXG4gICAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNjBweDtcclxufVxyXG5cclxuLmV2ZW50LWRhdGEtY29udGFpbmVyLXdhcm5pbmcge1xyXG4gICAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59XHJcblxyXG4uZXZlbnQtZGVzY3JpcHRpb24tY29udGFpbmVyIHtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XHJcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xyXG4gICAgZm9udC1zaXplOiAxLjFyZW07XHJcblxyXG59XHJcblxyXG4uaWNvbi1wYWRkaW5nIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxufVxyXG5cclxuLm5hdi1saW5rIHtcclxuICAgIGZvbnQtd2VpZ2h0OiAxMDAwO1xyXG4gICAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiAgICBjb2xvcjogIzQ5NTA1NztcclxufVxyXG5cclxuLm5hdi10YWJzIC5uYXYtbGluazpmb2N1cyxcclxuLm5hdi10YWJzIC5uYXYtbGluazpob3ZlciB7XHJcbiAgICBib3JkZXItdG9wOiAwO1xyXG4gICAgYm9yZGVyLWxlZnQ6IDA7XHJcbiAgICBib3JkZXItcmlnaHQ6IDA7XHJcbn1cclxuXHJcbi5uYXYtdGFicyB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG59XHJcblxyXG4ubmF2LXRhYnMgLm5hdi1pdGVtLnNob3cgLm5hdi1saW5rLFxyXG4ubmF2LXRhYnMgLm5hdi1pdGVtIC5uYXYtbGluay5hY3RpdmUsXHJcbi5ldmVudC1kZXRhaWxzLWFjY29yZGlvbiAuY2FyZCAuY2FyZC1oZWFkZXIge1xyXG4gICAgY29sb3I6ICM0OTUwNTc7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjZmZmICNmZmYgIzIxOTZmMztcclxuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IHRoaWNrO1xyXG59XHJcblxyXG4uZXZlbnQtZGV0YWlscy1hY2NvcmRpb24gLmNhcmQge1xyXG4gICAgYm9yZGVyOiAwXHJcbn1cclxuXHJcbi5ldmVudC1kZXRhaWxzLWFjY29yZGlvbiAuY2FyZCAuY2FyZC1ib2R5IHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi5idG4tcHJpbWFyeSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2QURCO1xyXG59XHJcblxyXG4uYnRuLXByaW1hcnk6aG92ZXIge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1QkJEO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjMDA2MmNjO1xyXG59XHJcblxyXG4uYnRuLXByaW1hcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLCAuYnRuLXByaW1hcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxyXG4gIC5zaG93ID4gLmJ0bi1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZSB7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDYyY2M7XHJcbiAgICBib3JkZXItY29sb3I6ICMwMDVjYmY7XHJcbn1cclxuXHJcbi5idG4tcHJpbWFyeTpmb2N1cyB7IFxyXG4gICAgb3V0bGluZTogMXB4IGRhc2hlZCB0cmFuc3BhcmVudDsgXHJcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4OyBcclxufVxyXG5cclxuLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywgLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cyxcclxuLnNob3cgPiAuYnRuLXByaW1hcnkuZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcclxuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XHJcbn1cclxuXHJcbi8qIFtTTV0gU21hbGwgZGV2aWNlcyAobGFuZHNjYXBlIHBob25lcywgNTc2cHggYW5kIHVwKSAoYm9vdHN0cmFwIGJyZWFrcG9pbnQgU00pICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xyXG4gICAgLm5hdi10YWJzIHtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgfVxyXG5cclxuICAgIC5uYXYtbGluayB7XHJcbiAgICAgICAgcGFkZGluZzogLjVyZW0gMC4xcmVtO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIH1cclxufVxyXG5cclxuLyogW01EXSBNZWRpdW0gZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgIC5uYXYtbGluayB7XHJcbiAgICAgICAgcGFkZGluZzogLjVyZW0gLjJyZW07XHJcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xyXG4gICAgfVxyXG59XHJcblxyXG4vKiBbTEddIExhcmdlIGRldmljZXMgKGRlc2t0b3BzLCA5OTJweCBhbmQgdXApICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLm5hdi1saW5rIHtcclxuICAgICAgICBwYWRkaW5nOiAuNXJlbSAxcmVtO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","import {\r\n EVENT_SERVICE,\r\n} from \"./../../providers/service.providers\";\r\nimport { EventService } from \"../../services/event.service\";\r\nimport {\r\n Component,\r\n OnInit,\r\n Inject,\r\n OnDestroy\r\n} from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { Event } from \"../../models/Event\";\r\nimport { ImageHelper } from \"../../helpers/ImageHelper\";\r\nimport { environment } from \"./../../../environments/environment\";\r\nimport { LabelsService } from \"src/app/services/labels.service\";\r\nimport { SessionCartService } from \"./session-cart/session-cart.service\";\r\nimport { Session } from \"src/app/models/Session\";\r\nimport { ActiveEventService } from \"src/app/services/active-event.service\";\r\nimport { LocalizableError } from 'src/app/models/LocalizableError';\r\nimport { EventCheckoutRoutePaths } from \"../eventregistration/eventregistration.component\";\r\nimport { SessionTrack } from \"../../models/SessionTrack\";\r\nimport { Speaker } from \"../../models/Speaker\";\r\nimport { Pass } from '../../models/Pass';\r\n\r\n\r\n@Component({\r\n selector: \"app-event\",\r\n templateUrl: \"./event.component.html\",\r\n styleUrls: [\"./event.component.css\"]\r\n})\r\nexport class EventComponent implements OnInit {\r\n public EventDetailSections = EventDetailSections;\r\n public readableEventId: string;\r\n public event: Event;\r\n public sessions: Session[];\r\n public showSessions: Boolean;\r\n public showSpeakers: Boolean;\r\n public showSessionTracks: Boolean;\r\n public showPasses: Boolean;\r\n public selectedSection: EventDetailSections = EventDetailSections.Sessions;\r\n public isSessionCartCollapsed: Boolean = false;\r\n public isSessionCartAllowed: Boolean = false;\r\n public isLoadingData = false;\r\n public error: LocalizableError;\r\n\r\n private defaultImageUrlSelfHosted = 'default-event-image.jpg';\r\n private defaultImageUrlCrmHosted = 'homehero.jpg';\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n @Inject(EVENT_SERVICE) private eventService: EventService,\r\n private imageHelper: ImageHelper,\r\n private labelsService: LabelsService,\r\n private sessionCartService: SessionCartService,\r\n private activeEventService: ActiveEventService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.route.queryParamMap.subscribe(paramMap => {\r\n this.readableEventId = paramMap.get(\r\n EventQueryParameterNames.ReadableEventId\r\n );\r\n\r\n this.getEventAndSessionData().then(() =>\r\n this.setIsSessionCartAllowed()\r\n );\r\n });\r\n\r\n this.eventService.getSessionTracks(this.readableEventId).subscribe(\r\n tracks => {\r\n this.showSessionTracks = tracks && tracks.length > 0;\r\n this.chooseRoute();\r\n });\r\n\r\n this.eventService.getSpeakers(this.readableEventId).subscribe(\r\n speakers => {\r\n this.showSpeakers = speakers && speakers.length > 0;\r\n this.chooseRoute();\r\n });\r\n\r\n this.eventService.getPasses(this.readableEventId).subscribe(\r\n passes => {\r\n this.showPasses = passes && passes.length > 0;\r\n this.chooseRoute();\r\n });\r\n\r\n this.sessionCartService.isOpen = false;\r\n }\r\n\r\n public chooseRoute () {\r\n if (!this.showSessions) {\r\n if (this.showSessionTracks) {\r\n this.router.navigate([\"event/session-tracks\"], { queryParams: { id: this.readableEventId } });\r\n } else if (this.showSpeakers) {\r\n this.router.navigate([\"event/speakers\"], { queryParams: { id: this.readableEventId } });\r\n } else if (this.showPasses) {\r\n this.router.navigate([\"event/pass-information\"], { queryParams: { id: this.readableEventId } });\r\n }\r\n } else {\r\n this.router.navigate([\"event/sessions\"], { queryParams: { id: this.readableEventId } });\r\n }\r\n }\r\n\r\n public getBannerImage() {\r\n if (this.event == null) {\r\n // This early exit avoids showing placeholder image while event isn't loaded.\r\n return '';\r\n }\r\n\r\n if (this.event.image != null) {\r\n return this.event.image;\r\n } else {\r\n if (environment.useRestStack === true) {\r\n return this.imageHelper.getImageUrl(this.defaultImageUrlSelfHosted);\r\n } else {\r\n return this.imageHelper.getImageUrl(this.defaultImageUrlCrmHosted);\r\n }\r\n }\r\n }\r\n\r\n public registerForSessions() {\r\n if (this.sessionCartService.getSessionCartForEvent(this.readableEventId).length !== 0) {\r\n this.router.navigate([EventCheckoutRoutePaths.REGISTRATION], { queryParams: { id: this.readableEventId } });\r\n } else {\r\n this.registerForAllSessions();\r\n }\r\n }\r\n\r\n public canUserRegister() {\r\n if (this.event.setRegistrationEndDate) {\r\n return new Date(Date.now()) < new Date(this.event.stopRegistrationDate);\r\n }\r\n return true;\r\n }\r\n\r\n private registerForAllSessions() {\r\n this.sessions.forEach(session => {\r\n this.sessionCartService.addSession(this.readableEventId, session.id);\r\n });\r\n\r\n this.sessionCartService.isOpen = true;\r\n }\r\n\r\n private async getEventAndSessionData(): Promise {\r\n try {\r\n this.event = await this.activeEventService.getEvent(this.readableEventId).toPromise();\r\n\r\n this.sessions = await this.activeEventService.getSessions(this.readableEventId).toPromise();\r\n this.showSessions = this.sessions && this.sessions.length > 0;\r\n this.chooseRoute();\r\n } catch (error) {\r\n this.error = error;\r\n console.error(error);\r\n }\r\n }\r\n\r\n private async setIsSessionCartAllowed(): Promise {\r\n const isFreeEvent = await this.activeEventService.isFreeEvent(this.readableEventId);\r\n const hasSessions = await this.activeEventService.hasEventSessions(this.readableEventId);\r\n\r\n this.isSessionCartAllowed = this.sessionCartService.isSessionCartEnabledForEvent(\r\n this.event,\r\n isFreeEvent,\r\n hasSessions\r\n );\r\n }\r\n}\r\n\r\n\r\nexport enum EventQueryParameterNames {\r\n ReadableEventId = \"id\",\r\n SpeakerId = \"speakerId\"\r\n}\r\n\r\nexport enum EventDetailSections {\r\n Sessions = \"sessions\",\r\n SessionTracks = \"session-tracks\",\r\n Speakers = \"speakers\",\r\n PassInformation = \"pass-information\"\r\n}\r\n","module.exports = \".page-header {\\r\\n padding-top: 30px;\\r\\n margin: 42px 0 21px;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudC9wYXNzZXMvcGFzc2VzLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQkFBaUI7SUFDakIsbUJBQW1CO0FBQ3ZCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9ldmVudC9wYXNzZXMvcGFzc2VzLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucGFnZS1oZWFkZXIge1xyXG4gICAgcGFkZGluZy10b3A6IDMwcHg7XHJcbiAgICBtYXJnaW46IDQycHggMCAyMXB4O1xyXG59Il19 */\"","import { EVENT_SERVICE } from './../../../providers/service.providers';\r\nimport { EventService } from '../../../services/event.service';\r\nimport { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { Pass } from '../../../models/Pass';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { EventQueryParameterNames } from '../event.component';\r\nimport { LocalizableError } from 'src/app/models/LocalizableError';\r\n\r\n@Component({\r\n selector: 'app-passes',\r\n templateUrl: './passes.component.html',\r\n styleUrls: ['./passes.component.css']\r\n})\r\nexport class PassesComponent implements OnInit {\r\n public isLoading: Boolean;\r\n public error: LocalizableError;\r\n public passes: Pass[];\r\n public selectedPass: Pass;\r\n\r\n private readableEventId: string;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n @Inject(EVENT_SERVICE) private eventService: EventService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.route.queryParamMap.subscribe(paramMap => {\r\n this.readableEventId = paramMap.get(\r\n EventQueryParameterNames.ReadableEventId\r\n );\r\n this.loadPasses();\r\n });\r\n }\r\n\r\n private loadPasses(): void {\r\n this.isLoading = true;\r\n this.eventService.getPasses(this.readableEventId).subscribe(\r\n passes => {\r\n this.passes = passes;\r\n\r\n if (this.passes.length > 0) {\r\n this.selectedPass = this.passes[0];\r\n }\r\n\r\n this.isLoading = false;\r\n },\r\n (error: LocalizableError) => this.handleErrorResponse(error)\r\n );\r\n }\r\n\r\n private handleErrorResponse(error: LocalizableError) {\r\n this.error = error;\r\n this.isLoading = false;\r\n }\r\n}\r\n","module.exports = \".session-cart-backdrop {\\r\\n z-index: 499;\\r\\n position: fixed;\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n left: 0;\\r\\n background: rgba(0, 0, 0, 0.7);\\r\\n}\\r\\n\\r\\n.session-cart {\\r\\n display: flex;\\r\\n background-color: white;\\r\\n position: fixed;\\r\\n z-index: 500;\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n left: auto;\\r\\n padding: 0;\\r\\n max-width: 500px;\\r\\n min-width: 0;\\r\\n width: 100%;\\r\\n flex-direction: column;\\r\\n flex-wrap: nowrap;\\r\\n overflow: hidden;\\r\\n\\r\\n .sessions-wrapper {\\r\\n flex: 1;\\r\\n display: flex;\\r\\n overflow-y: auto;\\r\\n }\\r\\n\\r\\n .footer {\\r\\n margin-top: auto;\\r\\n }\\r\\n}\\r\\n\\r\\n.modal-header {\\r\\n border-bottom: 0 none !important;\\r\\n}\\r\\n\\r\\n.session-cart-opener {\\r\\n position: fixed;\\r\\n top: 50%;\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n -webkit-transform: rotate(-90deg) translate(-100%);\\r\\n transform: rotate(-90deg) translate(-100%);\\r\\n\\r\\n .btn {\\r\\n height: 60px;\\r\\n }\\r\\n\\r\\n .btn-primary {\\r\\n background-color: #006ADB;\\r\\n }\\r\\n \\r\\n .btn-primary:hover {\\r\\n color: #fff;\\r\\n background-color: #005BBD;\\r\\n border-color: #0062cc;\\r\\n }\\r\\n \\r\\n .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-primary.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #0062cc;\\r\\n border-color: #005cbf;\\r\\n }\\r\\n \\r\\n .btn-primary:focus { \\r\\n outline: 1px dashed transparent; \\r\\n outline-offset: 2px; \\r\\n }\\r\\n \\r\\n .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-primary.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5);\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudC9zZXNzaW9uLWNhcnQvc2Vzc2lvbi1jYXJ0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxZQUFZO0lBQ1osZUFBZTtJQUNmLE1BQU07SUFDTixTQUFTO0lBQ1QsUUFBUTtJQUNSLE9BQU87SUFDUCw4QkFBOEI7QUFDbEM7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsdUJBQXVCO0lBQ3ZCLGVBQWU7SUFDZixZQUFZO0lBQ1osTUFBTTtJQUNOLFNBQVM7SUFDVCxRQUFRO0lBQ1IsVUFBVTtJQUNWLFVBQVU7SUFDVixnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLFdBQVc7SUFDWCxzQkFBc0I7SUFDdEIsaUJBQWlCO0lBQ2pCLGdCQUFnQjs7SUFFaEI7UUFDSSxPQUFPO1FBQ1AsYUFBYTtRQUNiLGdCQUFnQjtJQUNwQjs7SUFFQTtRQUNJLGdCQUFnQjtJQUNwQjtBQUNKOztBQUVBO0lBQ0ksZ0NBQWdDO0FBQ3BDOztBQUVBO0lBQ0ksZUFBZTtJQUNmLFFBQVE7SUFDUixTQUFTO0lBQ1QsUUFBUTtJQUNSLGtEQUEwQztZQUExQywwQ0FBMEM7O0lBRTFDO1FBQ0ksWUFBWTtJQUNoQjs7SUFFQTtRQUNJLHlCQUF5QjtJQUM3Qjs7SUFFQTtRQUNJLFdBQVc7UUFDWCx5QkFBeUI7UUFDekIscUJBQXFCO0lBQ3pCOztJQUVBOztRQUVJLFdBQVc7UUFDWCx5QkFBeUI7UUFDekIscUJBQXFCO0lBQ3pCOztJQUVBO1FBQ0ksK0JBQStCO1FBQy9CLG1CQUFtQjtJQUN2Qjs7SUFFQTs7UUFFSSxpREFBaUQ7SUFDckQ7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZXZlbnQvc2Vzc2lvbi1jYXJ0L3Nlc3Npb24tY2FydC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNlc3Npb24tY2FydC1iYWNrZHJvcCB7XHJcbiAgICB6LWluZGV4OiA0OTk7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XHJcbn1cclxuXHJcbi5zZXNzaW9uLWNhcnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgei1pbmRleDogNTAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBsZWZ0OiBhdXRvO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIG1heC13aWR0aDogNTAwcHg7XHJcbiAgICBtaW4td2lkdGg6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgLnNlc3Npb25zLXdyYXBwZXIge1xyXG4gICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb290ZXIge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IGF1dG87XHJcbiAgICB9XHJcbn1cclxuXHJcbi5tb2RhbC1oZWFkZXIge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMCBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5zZXNzaW9uLWNhcnQtb3BlbmVyIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpIHRyYW5zbGF0ZSgtMTAwJSk7XHJcblxyXG4gICAgLmJ0biB7XHJcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5idG4tcHJpbWFyeSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNkFEQjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmJ0bi1wcmltYXJ5OmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1QkJEO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogIzAwNjJjYztcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwgLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcclxuICAgICAgLnNob3cgPiAuYnRuLXByaW1hcnkuZHJvcGRvd24tdG9nZ2xlIHtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2MmNjO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogIzAwNWNiZjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmJ0bi1wcmltYXJ5OmZvY3VzIHsgXHJcbiAgICAgICAgb3V0bGluZTogMXB4IGRhc2hlZCB0cmFuc3BhcmVudDsgXHJcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5idG4tcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsIC5idG4tcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsXHJcbiAgICAuc2hvdyA+IC5idG4tcHJpbWFyeS5kcm9wZG93bi10b2dnbGU6Zm9jdXMge1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ== */\"","import { Component, OnInit, Input, Output, ViewChild, ElementRef } from \"@angular/core\";\r\nimport { SessionCartService } from \"./session-cart.service\";\r\nimport { Session } from \"src/app/models/Session\";\r\nimport { Event } from \"src/app/models/Event\";\r\nimport { ActiveEventService } from 'src/app/services/active-event.service';\r\nimport { LabelsService } from 'src/app/services/labels.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: \"app-session-cart\",\r\n templateUrl: \"./session-cart.component.html\",\r\n styleUrls: [\"./session-cart.component.css\"]\r\n})\r\nexport class SessionCartComponent implements OnInit {\r\n\r\n @Input()\r\n public readableEventId: string;\r\n\r\n public event: Event;\r\n\r\n public isSessionCartVisible: boolean;\r\n\r\n /**\r\n * All session IDs that are inside the session cart.\r\n */\r\n public sessionIdsInCart: Array;\r\n\r\n public sessionsCart: Array;\r\n\r\n @ViewChild('sessionCartButton', { static: false}) sessionCartButton: ElementRef;\r\n\r\n constructor(\r\n private sessionCartService: SessionCartService,\r\n private activeEventService: ActiveEventService,\r\n private labelsService: LabelsService) {}\r\n\r\n ngOnInit() {\r\n this.getSessionCart();\r\n\r\n this.subscribeToIsSessionCartOpen();\r\n \r\n this.activeEventService.getEvent(this.readableEventId).subscribe(event => {\r\n this.event = event;\r\n });\r\n }\r\n\r\n public collapse() {\r\n this.sessionCartService.isOpen = false;\r\n }\r\n\r\n public removeSessionFromCart(session: Session) {\r\n this.sessionCartService.removeSession(this.readableEventId, session.id);\r\n }\r\n\r\n public sessionCartCount(): number {\r\n return this.sessionIdsInCart.length;\r\n }\r\n\r\n private getSessionCart(): void {\r\n this.sessionIdsInCart = this.sessionCartService.getSessionCartForEvent(this.readableEventId);\r\n this.getSessionsWithId(this.sessionIdsInCart);\r\n\r\n this.sessionCartService.sessionCartChange.subscribe(sessionCart => {\r\n this.sessionIdsInCart = sessionCart;\r\n this.getSessionsWithId(this.sessionIdsInCart);\r\n });\r\n }\r\n\r\n private async getSessionsWithId(sessionIds: string[]) {\r\n this.sessionsCart = await this.activeEventService.getAndFilterSessions(this.readableEventId, true, sessionIds).toPromise();\r\n }\r\n\r\n private subscribeToIsSessionCartOpen(): void {\r\n this.sessionCartService.isOpenChange.subscribe(isOpen => {\r\n this.isSessionCartVisible = isOpen;\r\n if (this.isSessionCartVisible) {\r\n setTimeout(() => {\r\n this.sessionCartButton.nativeElement.focus();\r\n });\r\n }\r\n });\r\n }\r\n\r\n public translateLabel(translationKey: string, defaultValue: string): Observable {\r\n return this.labelsService.translateLabel(translationKey, defaultValue);\r\n }\r\n}\r\n","import { Injectable, Output, EventEmitter } from \"@angular/core\";\r\nimport { Event } from \"src/app/models/Event\";\r\n\r\n@Injectable()\r\nexport class SessionCartService {\r\n @Output() isOpenChange: EventEmitter = new EventEmitter();\r\n @Output() sessionCartChange: EventEmitter> = new EventEmitter();\r\n @Output() cntActiveAttendeeRegistrationsChange: EventEmitter = new EventEmitter();\r\n\r\n private _isOpen = false;\r\n private sessionCarts: Map> = new Map();\r\n\r\n private readonly SESSION_CART_KEY_PREFIX = \"session-cart-\";\r\n\r\n public get isOpen(): boolean {\r\n return this._isOpen;\r\n }\r\n\r\n public set isOpen(isOpen: boolean) {\r\n this._isOpen = isOpen;\r\n this.isOpenChange.emit(isOpen);\r\n }\r\n\r\n public isSessionCartEnabledForEvent(event: Event, isFreeEvent: boolean, hasSessions: boolean): boolean {\r\n if (event == null) {\r\n return false;\r\n }\r\n return event.allowCustomAgenda && isFreeEvent && hasSessions;\r\n }\r\n\r\n public getSessionCartForEvent(readableEventId: string): Array {\r\n this.loadCartFromLocalStorage(readableEventId);\r\n\r\n if (!this.sessionCarts.has(readableEventId)) {\r\n this.sessionCarts.set(readableEventId, new Array());\r\n }\r\n\r\n return this.sessionCarts.get(readableEventId);\r\n }\r\n\r\n public addSession(readableEventId: string, sessionId: string) {\r\n if (!this.sessionCarts.has(readableEventId)) {\r\n this.sessionCarts.set(readableEventId, new Array());\r\n }\r\n\r\n if (!this.isSessionInCart(readableEventId, sessionId)) {\r\n this.sessionCarts.get(readableEventId).push(sessionId);\r\n this.sessionCartChange.emit(Array.from(this.sessionCarts.get(readableEventId).values()));\r\n }\r\n\r\n this.saveCartToLocalStorage(readableEventId);\r\n }\r\n\r\n public removeSession(readableEventId: string, sessionId: string) {\r\n if (!this.sessionCarts.has(readableEventId)) {\r\n this.sessionCarts.set(readableEventId, new Array());\r\n }\r\n\r\n if (this.isSessionInCart(readableEventId, sessionId)) {\r\n const index = this.sessionCarts.get(readableEventId).findIndex(id => id === sessionId);\r\n this.sessionCarts.get(readableEventId).splice(index, 1);\r\n\r\n this.sessionCartChange.emit(Array.from(this.sessionCarts.get(readableEventId).values()));\r\n }\r\n\r\n this.saveCartToLocalStorage(readableEventId);\r\n }\r\n\r\n private isSessionInCart(readableEventId, sessionId: string) {\r\n if (this.sessionCarts.has(readableEventId)) {\r\n return this.sessionCarts.get(readableEventId).findIndex(id => id === sessionId) >= 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public flushCart(readableEventId: string) {\r\n this.sessionCarts.get(readableEventId).splice(0);\r\n this.sessionCartChange.emit(Array.from(this.sessionCarts.get(readableEventId).values()));\r\n localStorage.removeItem(this.getLocalStorageKeyForEvent(readableEventId));\r\n }\r\n\r\n private saveCartToLocalStorage(readableEventId: string) {\r\n if (this.sessionCarts.has(readableEventId)) {\r\n localStorage.setItem(\r\n this.getLocalStorageKeyForEvent(readableEventId),\r\n JSON.stringify(this.sessionCarts.get(readableEventId))\r\n );\r\n }\r\n }\r\n\r\n private loadCartFromLocalStorage(readableEventId: string) {\r\n const isCartForEventInStorage = localStorage.hasOwnProperty(this.getLocalStorageKeyForEvent(readableEventId));\r\n\r\n if (isCartForEventInStorage) {\r\n const storageCart = localStorage.getItem(this.getLocalStorageKeyForEvent(readableEventId));\r\n this.sessionCarts.set(readableEventId, JSON.parse(storageCart));\r\n\r\n this.sessionCartChange.emit(this.sessionCarts.get(readableEventId));\r\n }\r\n }\r\n\r\n private getLocalStorageKeyForEvent(readableEventId: string) {\r\n return this.SESSION_CART_KEY_PREFIX + readableEventId;\r\n }\r\n}\r\n","module.exports = \".session-schedule-grid {\\r\\n clear: both;\\r\\n margin-bottom: 5em;\\r\\n}\\r\\n\\r\\n.page-header {\\r\\n padding-top: 30px;\\r\\n margin: 42px 0 21px;\\r\\n}\\r\\n\\r\\n.timeline-header {\\r\\n height: 3em;\\r\\n background: black;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.timeline {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.flex {\\r\\n display: flex;\\r\\n flex-direction: row;\\r\\n}\\r\\n\\r\\n.session {\\r\\n position: absolute;\\r\\n height: 12em;\\r\\n border: 1px solid black;\\r\\n background: #0b80d0;\\r\\n color: white !important;\\r\\n cursor: pointer;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.timeline-header .hour {\\r\\n vertical-align: middle;\\r\\n text-align: center;\\r\\n border: 1px solid #888;\\r\\n background: #545454;\\r\\n height: 3em;\\r\\n}\\r\\n\\r\\n.flex > div {\\r\\n flex: 1 1 auto;\\r\\n width: 30px;\\r\\n transition: width 0.7s ease-out;\\r\\n}\\r\\n\\r\\n#sessionScheduleContainer {\\r\\n padding-top: 30px;\\r\\n}\\r\\n\\r\\n.interval {\\r\\n height: 12em;\\r\\n}\\r\\n\\r\\n.hour {\\r\\n height: 12em;\\r\\n border: 1px dashed #d1d1d1;\\r\\n}\\r\\n\\r\\n.session-title {\\r\\n margin-top: 1em;\\r\\n}\\r\\n\\r\\n.nav-link {\\r\\n background-color: inherit !important;\\r\\n cursor: pointer;\\r\\n color: black;\\r\\n}\\r\\n\\r\\n.nav-link:focus {\\r\\n outline: none;\\r\\n}\\r\\n\\r\\n.nav-link.active {\\r\\n border-bottom-color: #f8f9fa;\\r\\n}\\r\\n\\r\\n.filter-dropdowns {\\r\\n float: right;\\r\\n margin-right: 15px;\\r\\n}\\r\\n\\r\\n.active-row {\\r\\n background-color: rgba(0,0,0,.05);\\r\\n}\\r\\n\\r\\n.details-row {\\r\\n padding-left: 2rem;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudC9zZXNzaW9ucy9zZXNzaW9ucy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksV0FBVztJQUNYLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGlCQUFpQjtJQUNqQixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsaUJBQWlCO0lBQ2pCLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWix1QkFBdUI7SUFDdkIsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixlQUFlO0lBQ2Ysa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQixzQkFBc0I7SUFDdEIsbUJBQW1CO0lBQ25CLFdBQVc7QUFDZjs7QUFFQTtJQUNJLGNBQWM7SUFDZCxXQUFXO0lBQ1gsK0JBQStCO0FBQ25DOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksWUFBWTtBQUNoQjs7QUFFQTtJQUNJLFlBQVk7SUFDWiwwQkFBMEI7QUFDOUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksb0NBQW9DO0lBQ3BDLGVBQWU7SUFDZixZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksYUFBYTtBQUNqQjs7QUFFQTtJQUNJLDRCQUE0QjtBQUNoQzs7QUFFQTtJQUNJLFlBQVk7SUFDWixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxrQkFBa0I7QUFDdEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2V2ZW50L3Nlc3Npb25zL3Nlc3Npb25zLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2Vzc2lvbi1zY2hlZHVsZS1ncmlkIHtcclxuICAgIGNsZWFyOiBib3RoO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNWVtO1xyXG59XHJcblxyXG4ucGFnZS1oZWFkZXIge1xyXG4gICAgcGFkZGluZy10b3A6IDMwcHg7XHJcbiAgICBtYXJnaW46IDQycHggMCAyMXB4O1xyXG59XHJcblxyXG4udGltZWxpbmUtaGVhZGVyIHtcclxuICAgIGhlaWdodDogM2VtO1xyXG4gICAgYmFja2dyb3VuZDogYmxhY2s7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbi50aW1lbGluZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5mbGV4IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG59XHJcblxyXG4uc2Vzc2lvbiB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBoZWlnaHQ6IDEyZW07XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcclxuICAgIGJhY2tncm91bmQ6ICMwYjgwZDA7XHJcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLnRpbWVsaW5lLWhlYWRlciAuaG91ciB7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzg4ODtcclxuICAgIGJhY2tncm91bmQ6ICM1NDU0NTQ7XHJcbiAgICBoZWlnaHQ6IDNlbTtcclxufVxyXG5cclxuLmZsZXggPiBkaXYge1xyXG4gICAgZmxleDogMSAxIGF1dG87XHJcbiAgICB3aWR0aDogMzBweDtcclxuICAgIHRyYW5zaXRpb246IHdpZHRoIDAuN3MgZWFzZS1vdXQ7XHJcbn1cclxuXHJcbiNzZXNzaW9uU2NoZWR1bGVDb250YWluZXIge1xyXG4gICAgcGFkZGluZy10b3A6IDMwcHg7XHJcbn1cclxuXHJcbi5pbnRlcnZhbCB7XHJcbiAgICBoZWlnaHQ6IDEyZW07XHJcbn1cclxuXHJcbi5ob3VyIHtcclxuICAgIGhlaWdodDogMTJlbTtcclxuICAgIGJvcmRlcjogMXB4IGRhc2hlZCAjZDFkMWQxO1xyXG59XHJcblxyXG4uc2Vzc2lvbi10aXRsZSB7XHJcbiAgICBtYXJnaW4tdG9wOiAxZW07XHJcbn1cclxuXHJcbi5uYXYtbGluayB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbn1cclxuXHJcbi5uYXYtbGluazpmb2N1cyB7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG59XHJcblxyXG4ubmF2LWxpbmsuYWN0aXZlIHtcclxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNmOGY5ZmE7XHJcbn1cclxuXHJcbi5maWx0ZXItZHJvcGRvd25zIHtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIG1hcmdpbi1yaWdodDogMTVweDtcclxufVxyXG5cclxuLmFjdGl2ZS1yb3cge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuMDUpO1xyXG59XHJcblxyXG4uZGV0YWlscy1yb3cge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAycmVtO1xyXG59XHJcbiJdfQ== */\"","import {\r\n EVENT_SERVICE,\r\n} from \"./../../../providers/service.providers\";\r\nimport { EventService } from \"../../../services/event.service\";\r\nimport { Component, OnInit, Inject, OnDestroy } from \"@angular/core\";\r\nimport { Session } from \"../../../models/Session\";\r\nimport { LabelsService } from \"../../../services/labels.service\";\r\nimport { Observable, Subscription } from \"../../../../../node_modules/rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { EventQueryParameterNames } from \"../event.component\";\r\nimport { SessionCartService } from \"../session-cart/session-cart.service\";\r\nimport { ActiveEventService } from \"src/app/services/active-event.service\";\r\nimport { Event } from \"src/app/models/Event\";\r\nimport { LocalizableError } from 'src/app/models/LocalizableError';\r\n\r\n@Component({\r\n selector: 'app-sessions',\r\n templateUrl: './sessions.component.html',\r\n styleUrls: ['./sessions.component.css']\r\n})\r\nexport class SessionsComponent implements OnInit, OnDestroy {\r\n public error: LocalizableError;\r\n public allowSessionRegistrations: boolean;\r\n public sessionIdsInCart: Array;\r\n\r\n readableEventId: string;\r\n sessions: Session[];\r\n sessionsByDay: any;\r\n dateKeys: string[];\r\n selectedDateKey: string;\r\n\r\n daysOfWeek: string[] = [\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\r\n private subscriptions = new Array();\r\n private event: Event;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n @Inject(EVENT_SERVICE) private eventService: EventService,\r\n private activeEventService: ActiveEventService,\r\n private sessionCartService: SessionCartService,\r\n private labelsService: LabelsService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subscribeToEventChange();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n\r\n public addToCart(session: Session) {\r\n this.sessionCartService.addSession(this.readableEventId, session.id);\r\n }\r\n\r\n public removeFromCart(session: Session) {\r\n this.sessionCartService.removeSession(this.readableEventId, session.id);\r\n }\r\n\r\n /**\r\n * Registers the user to a session with the old session registration flow.\r\n * The old session registration flow is only available for paid events for logged-in users.\r\n */\r\n public registerToSession(session: Session): void {\r\n this.eventService\r\n .registerToSession(this.readableEventId, session.id)\r\n .subscribe(\r\n registrationCompleted => {\r\n if (registrationCompleted) {\r\n this.getSessions(false);\r\n }\r\n },\r\n error => (this.error.message = error.message)\r\n );\r\n }\r\n\r\n private subscribeToEventChange() {\r\n const queryParamSubscription = this.route.queryParamMap.subscribe(\r\n paramMap => {\r\n this.readableEventId = paramMap.get(EventQueryParameterNames.ReadableEventId);\r\n this.getEventData();\r\n }\r\n );\r\n\r\n this.subscriptions.push(queryParamSubscription);\r\n }\r\n\r\n private async getEventData(): Promise {\r\n this.event = await this.activeEventService.getEvent(this.readableEventId).toPromise();\r\n await this.getSessions(true);\r\n await this.setIsSessionCartAllowed().then(() => this.subscribeToSessionCartChange());\r\n }\r\n\r\n public canUserRegister() {\r\n if (this.event.setRegistrationEndDate) {\r\n return new Date(Date.now()) < new Date(this.event.stopRegistrationDate);\r\n }\r\n return true;\r\n }\r\n\r\n private async getSessions(isCachingAllowed: boolean = true): Promise {\r\n try {\r\n this.sessions = await this.activeEventService.getSessions(this.readableEventId, isCachingAllowed).toPromise();\r\n\r\n this.sessionsByDay = {};\r\n this.dateKeys = [];\r\n\r\n this.generateSessionByDay();\r\n\r\n if (this.dateKeys.length > 0) {\r\n this.selectedDateKey = this.dateKeys[0];\r\n }\r\n } catch (error) {\r\n return console.error(error);\r\n }\r\n }\r\n\r\n private async setIsSessionCartAllowed(): Promise {\r\n const isFreeEvent = await this.activeEventService.isFreeEvent(this.readableEventId);\r\n const hasSessions = await this.activeEventService.hasEventSessions(this.readableEventId);\r\n\r\n this.allowSessionRegistrations = this.sessionCartService.isSessionCartEnabledForEvent(\r\n this.event,\r\n isFreeEvent,\r\n hasSessions\r\n );\r\n }\r\n\r\n private subscribeToSessionCartChange() {\r\n this.sessionIdsInCart = this.sessionCartService.getSessionCartForEvent(this.readableEventId);\r\n this.sessionCartService.sessionCartChange.subscribe(sessionCart => this.sessionIdsInCart = sessionCart);\r\n }\r\n\r\n private handleErrorResponse(error: LocalizableError) {\r\n this.error = error;\r\n }\r\n\r\n private generateSessionByDay(): void {\r\n for (const session of this.sessions) {\r\n let startTime = new Date(session.startTime);\r\n const key = `${startTime.getMonth() +\r\n 1}/${startTime.getDate()}/${startTime.getFullYear()}`;\r\n\r\n if (!this.sessionsByDay[key]) {\r\n this.sessionsByDay[key] = [];\r\n this.dateKeys.push(key);\r\n }\r\n\r\n this.sessionsByDay[key].push(session);\r\n }\r\n }\r\n\r\n private dateText(dateKey: string): Observable {\r\n const date = new Date(dateKey);\r\n const day = this.daysOfWeek[date.getDay()];\r\n\r\n return this.labelsService.translateLabel(day).pipe(\r\n map(value => {\r\n return `${date.getMonth() + 1}/${date.getDate()}-${value}`;\r\n })\r\n );\r\n }\r\n\r\n\r\n}\r\n","module.exports = \".container {\\r\\n max-height: inherit;\\r\\n}\\r\\n\\r\\n.sessions-list {\\r\\n max-height: inherit;\\r\\n overflow-y: auto;\\r\\n\\r\\n .session-name {\\r\\n word-break: break-word;\\r\\n }\\r\\n}\\r\\n\\r\\n.speaker-image img {\\r\\n border-radius: 50%;\\r\\n}\\r\\n\\r\\n.speaker-image img {\\r\\n height: 30px;\\r\\n}\\r\\n\\r\\n.btn-primary {\\r\\n background-color: #006ADB;\\r\\n}\\r\\n\\r\\n.btn-primary:hover {\\r\\n color: #fff;\\r\\n background-color: #005BBD;\\r\\n border-color: #0062cc;\\r\\n}\\r\\n\\r\\n.btn-primary:focus { \\r\\n outline: 1px dashed transparent; \\r\\n outline-offset: 2px; \\r\\n}\\r\\n\\r\\n.btn-link:focus {\\r\\n outline: -webkit-focus-ring-color auto 5px;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudC9zZXNzaW9uc2xpc3R2aWV3L3Nlc3Npb25zbGlzdHZpZXcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLG1CQUFtQjtJQUNuQixnQkFBZ0I7O0lBRWhCO1FBQ0ksc0JBQXNCO0lBQzFCO0FBQ0o7O0FBRUE7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxZQUFZO0FBQ2hCOztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksV0FBVztJQUNYLHlCQUF5QjtJQUN6QixxQkFBcUI7QUFDekI7O0FBRUE7SUFDSSwrQkFBK0I7SUFDL0IsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksMENBQTBDO0FBQzlDIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9ldmVudC9zZXNzaW9uc2xpc3R2aWV3L3Nlc3Npb25zbGlzdHZpZXcuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250YWluZXIge1xyXG4gICAgbWF4LWhlaWdodDogaW5oZXJpdDtcclxufVxyXG5cclxuLnNlc3Npb25zLWxpc3Qge1xyXG4gICAgbWF4LWhlaWdodDogaW5oZXJpdDtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcblxyXG4gICAgLnNlc3Npb24tbmFtZSB7XHJcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAgIH1cclxufVxyXG5cclxuLnNwZWFrZXItaW1hZ2UgaW1nIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxufVxyXG5cclxuLnNwZWFrZXItaW1hZ2UgaW1nIHtcclxuICAgIGhlaWdodDogMzBweDtcclxufVxyXG5cclxuLmJ0bi1wcmltYXJ5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDZBREI7XHJcbn1cclxuXHJcbi5idG4tcHJpbWFyeTpob3ZlciB7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDVCQkQ7XHJcbiAgICBib3JkZXItY29sb3I6ICMwMDYyY2M7XHJcbn1cclxuXHJcbi5idG4tcHJpbWFyeTpmb2N1cyB7IFxyXG4gICAgb3V0bGluZTogMXB4IGRhc2hlZCB0cmFuc3BhcmVudDsgXHJcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4OyBcclxufVxyXG5cclxuLmJ0bi1saW5rOmZvY3VzIHtcclxuICAgIG91dGxpbmU6IC13ZWJraXQtZm9jdXMtcmluZy1jb2xvciBhdXRvIDVweDtcclxufSJdfQ== */\"","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { Session } from \"../../../models/Session\";\r\nimport { ImageHelper } from \"src/app/helpers/ImageHelper\";\r\nimport { EventDetailSections } from '../event.component';\r\nimport { LabelsService } from 'src/app/services/labels.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: \"app-sessions-list-view\",\r\n templateUrl: \"./sessionslistview.component.html\",\r\n styleUrls: [\"./sessionslistview.component.css\"]\r\n})\r\nexport class SessionsListViewComponent implements OnInit {\r\n @Input()\r\n readableEventId: string;\r\n\r\n @Input()\r\n sessions: Session[];\r\n\r\n /**\r\n * The IDs of the sessions that are in the cart.\r\n */\r\n @Input()\r\n sessionIdsInCart: string[];\r\n\r\n @Input()\r\n isEventWaitlisted = false;\r\n\r\n @Input()\r\n canUserRegister = true;\r\n\r\n @Input()\r\n cntActiveAttendeeRegistrations = 0;\r\n\r\n /**\r\n * This event is fired when the user clicks register.\r\n * If no observers are available, the register button won't be displayed.\r\n */\r\n @Output()\r\n registerClicked = new EventEmitter();\r\n\r\n /**\r\n * This event is fired when the user clicks add to cart.\r\n * If no observers are available, the add to cart button won't be displayed.\r\n */\r\n @Output()\r\n addToCartClicked = new EventEmitter();\r\n\r\n\r\n /**\r\n * This event is fired when the user clicks remove from cart.\r\n * If no observers are available, the remove from cart button won't be displayed.\r\n */\r\n @Output()\r\n removeFromCartClicked = new EventEmitter();\r\n\r\n EventDetailSections = EventDetailSections;\r\n expandedSessions: String[];\r\n defaultImageUrl = \"default_contact_image.png\";\r\n\r\n constructor(private imageHelper: ImageHelper, private labelsService: LabelsService) {\r\n this.expandedSessions = [];\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public expandSession(session: Session) {\r\n const index = this.expandedSessions.findIndex(sessionId => sessionId === session.id);\r\n if (index !== -1) {\r\n this.expandedSessions.splice(index, 1);\r\n } else {\r\n this.expandedSessions.push(session.id);\r\n }\r\n }\r\n\r\n public isSessionExpanded(session: Session) {\r\n return (\r\n this.expandedSessions.find(sessionId => sessionId === session.id) !=\r\n null\r\n );\r\n }\r\n\r\n public isRegisterAllowed(session: Session): boolean {\r\n return session.userEligibleToRegister && this.registerClicked.observers.length > 0;\r\n }\r\n\r\n public register(session: Session) {\r\n this.registerClicked.emit(session);\r\n }\r\n\r\n public isAddToCartAllowed(): boolean {\r\n return this.addToCartClicked.observers.length > 0;\r\n }\r\n\r\n public addToCart(session: Session) {\r\n this.addToCartClicked.emit(session);\r\n }\r\n\r\n public isRemoveFromCartAllowed(session: Session): boolean {\r\n return this.removeFromCartClicked.observers.length > 0;\r\n }\r\n\r\n public translateLabel(translationKey: string, defaultValue: string): Observable {\r\n return this.labelsService.translateLabel(translationKey, defaultValue);\r\n }\r\n\r\n public removeFromCart(session: Session) {\r\n this.removeFromCartClicked.emit(session);\r\n }\r\n\r\n public isSessionRegistered(session: Session) {\r\n return this.sessionIdsInCart.find(id => id === session.id);\r\n }\r\n\r\n public showWaitlistBadge(session: Session): boolean {\r\n if (!this.isEventWaitlisted) {\r\n return false;\r\n }\r\n\r\n if (!session.isCapacityRestricted) {\r\n return false;\r\n }\r\n\r\n return session.registrationCount + this.cntActiveAttendeeRegistrations >= session.maxCapacity;\r\n }\r\n\r\n public showFullBadge(session: Session): boolean {\r\n if (this.isEventWaitlisted) {\r\n return false;\r\n }\r\n\r\n if (!session.isCapacityRestricted) {\r\n return false;\r\n }\r\n\r\n return session.registrationCount >= session.maxCapacity;\r\n }\r\n}\r\n","module.exports = \".page-header {\\r\\n padding-top: 30px;\\r\\n margin: 42px 0 21px;\\r\\n}\\r\\n\\r\\n.btn-link {\\r\\n font-weight: 400;\\r\\n background-color: transparent;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudC9zZXNzaW9udHJhY2tzL3Nlc3Npb250cmFja3MuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlCQUFpQjtJQUNqQixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsNkJBQTZCO0FBQ2pDIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9ldmVudC9zZXNzaW9udHJhY2tzL3Nlc3Npb250cmFja3MuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5wYWdlLWhlYWRlciB7XHJcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcclxuICAgIG1hcmdpbjogNDJweCAwIDIxcHg7XHJcbn1cclxuXHJcbi5idG4tbGluayB7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn0iXX0= */\"","import { EventService } from \"./../../../services/event.service\";\r\nimport {\r\n EVENT_SERVICE,\r\n TRACKS_SERVICE\r\n} from \"./../../../providers/service.providers\";\r\nimport { Component, OnInit, Input, Inject } from \"@angular/core\";\r\nimport { SessionTrack } from \"../../../models/SessionTrack\";\r\nimport { Session } from \"../../../models/Session\";\r\nimport { TracksService } from \"src/app/services/tracks.service\";\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { EventQueryParameterNames } from '../event.component';\r\nimport { LocalizableError } from 'src/app/models/LocalizableError';\r\n\r\n@Component({\r\n selector: \"app-sessiontracks\",\r\n templateUrl: \"./sessiontracks.component.html\",\r\n styleUrls: [\"./sessiontracks.component.css\"]\r\n})\r\nexport class SessiontracksComponent implements OnInit {\r\n public cntActiveDataRetrievals = 0;\r\n public error: LocalizableError;\r\n\r\n readableEventId: string;\r\n sessionTracks: SessionTrack[];\r\n selectedSessionTrackId: string;\r\n sessionsInSelectedTrack: Session[];\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n @Inject(EVENT_SERVICE) private eventService: EventService,\r\n @Inject(TRACKS_SERVICE) private tracksService: TracksService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.route.queryParamMap.subscribe(paramMap => {\r\n this.readableEventId = paramMap.get(EventQueryParameterNames.ReadableEventId);\r\n this.loadSessionTracks();\r\n });\r\n }\r\n\r\n private loadSessionTracks(): void {\r\n this.cntActiveDataRetrievals += 1;\r\n this.eventService.getSessionTracks(this.readableEventId).subscribe(\r\n tracks => {\r\n this.sessionTracks = tracks;\r\n \r\n if (tracks.length > 0) {\r\n this.selectedSessionTrackId = tracks[0].id;\r\n this.loadSessionsInTrack(this.selectedSessionTrackId);\r\n }\r\n\r\n this.cntActiveDataRetrievals -= 1;\r\n },\r\n (error: LocalizableError) => this.handleErrorResponse(error)\r\n );\r\n }\r\n\r\n private loadSessionsInTrack(trackId: string): void {\r\n this.cntActiveDataRetrievals += 1;\r\n this.tracksService.getSessions(trackId).subscribe(\r\n sessions => {\r\n this.sessionsInSelectedTrack = sessions;\r\n this.cntActiveDataRetrievals -= 1;\r\n },\r\n (error: LocalizableError) => this.handleErrorResponse(error)\r\n );\r\n }\r\n\r\n private handleErrorResponse(error: LocalizableError) {\r\n this.cntActiveDataRetrievals -= 1;\r\n this.error = error;\r\n }\r\n}\r\n","module.exports = \".speaker-image {\\r\\n height: 150px;\\r\\n width: 150px;\\r\\n margin-left: auto;\\r\\n margin-right: auto;\\r\\n}\\r\\n\\r\\n.page-header {\\r\\n padding-top: 30px;\\r\\n margin: 42px 0 21px;\\r\\n}\\r\\n\\r\\n.speaker-container {\\r\\n padding-top: 3em;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.speaker-links-container{\\r\\n font-size:20px;\\r\\n}\\r\\n\\r\\n.speaker-static-image {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.speaker-static-image img {\\r\\n border-radius: 50%;\\r\\n}\\r\\n\\r\\n.speaker-image img {\\r\\n border-radius: 50%;\\r\\n}\\r\\n\\r\\n.speaker-image:hover {\\r\\n border: 6px solid #2196f3;\\r\\n border-radius: 50%;\\r\\n}\\r\\n\\r\\n.speaker-image img {\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n.speaker-name {\\r\\n margin-top: .6em;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.event-speakers-container {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.event-speakers-container h3 {\\r\\n padding-bottom: 30px;\\r\\n}\\r\\n\\r\\n.fa {\\r\\n margin-right: 15px;\\r\\n}\\r\\n\\r\\n.speaker-contact-information a {\\r\\n color: #303030;\\r\\n\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudC9zcGVha2Vycy9zcGVha2Vycy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksYUFBYTtJQUNiLFlBQVk7SUFDWixpQkFBaUI7SUFDakIsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksaUJBQWlCO0lBQ2pCLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLG9CQUFvQjtBQUN4Qjs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGNBQWM7O0FBRWxCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9ldmVudC9zcGVha2Vycy9zcGVha2Vycy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNwZWFrZXItaW1hZ2Uge1xyXG4gICAgaGVpZ2h0OiAxNTBweDtcclxuICAgIHdpZHRoOiAxNTBweDtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG4ucGFnZS1oZWFkZXIge1xyXG4gICAgcGFkZGluZy10b3A6IDMwcHg7XHJcbiAgICBtYXJnaW46IDQycHggMCAyMXB4O1xyXG59XHJcblxyXG4uc3BlYWtlci1jb250YWluZXIge1xyXG4gICAgcGFkZGluZy10b3A6IDNlbTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLnNwZWFrZXItbGlua3MtY29udGFpbmVye1xyXG4gICAgZm9udC1zaXplOjIwcHg7XHJcbn1cclxuXHJcbi5zcGVha2VyLXN0YXRpYy1pbWFnZSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5zcGVha2VyLXN0YXRpYy1pbWFnZSBpbWcge1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG59XHJcblxyXG4uc3BlYWtlci1pbWFnZSBpbWcge1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG59XHJcblxyXG4uc3BlYWtlci1pbWFnZTpob3ZlciB7XHJcbiAgICBib3JkZXI6IDZweCBzb2xpZCAjMjE5NmYzO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG59XHJcblxyXG4uc3BlYWtlci1pbWFnZSBpbWcge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4uc3BlYWtlci1uYW1lIHtcclxuICAgIG1hcmdpbi10b3A6IC42ZW07XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5ldmVudC1zcGVha2Vycy1jb250YWluZXIge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uZXZlbnQtc3BlYWtlcnMtY29udGFpbmVyIGgzIHtcclxuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xyXG59XHJcblxyXG4uZmEge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xyXG59XHJcblxyXG4uc3BlYWtlci1jb250YWN0LWluZm9ybWF0aW9uIGEge1xyXG4gICAgY29sb3I6ICMzMDMwMzA7XHJcblxyXG59XHJcbiJdfQ== */\"","import { EVENT_SERVICE } from \"./../../../providers/service.providers\";\r\nimport { EventService } from \"../../../services/event.service\";\r\nimport {\r\n Component,\r\n OnInit,\r\n Input,\r\n ViewChild,\r\n Inject,\r\n ElementRef\r\n} from \"@angular/core\";\r\nimport { Speaker } from \"../../../models/Speaker\";\r\nimport { ImageHelper } from \"../../../helpers/ImageHelper\";\r\nimport { ScrollHelper } from \"src/app/helpers/ScrollHelper\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { EventQueryParameterNames } from '../event.component';\r\nimport { LocalizableError } from 'src/app/models/LocalizableError';\r\n\r\n@Component({\r\n selector: \"app-speakers\",\r\n templateUrl: \"./speakers.component.html\",\r\n styleUrls: [\"./speakers.component.css\"]\r\n})\r\nexport class SpeakersComponent implements OnInit {\r\n @Input()\r\n readableEventId: string;\r\n\r\n @ViewChild(\"speakerDetails\", { static: true})\r\n speakerDetailsContainer: ElementRef;\r\n\r\n public speakers: Speaker[];\r\n public speaker: Speaker;\r\n public isLoading = false;\r\n public error: LocalizableError;\r\n\r\n defaultImageUrl = \"default_contact_image.png\";\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private imageHelper: ImageHelper,\r\n @Inject(EVENT_SERVICE) private eventService: EventService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.route.queryParamMap.subscribe(paramMap => {\r\n this.readableEventId = paramMap.get(EventQueryParameterNames.ReadableEventId);\r\n this.loadSpeakers();\r\n });\r\n }\r\n\r\n public selectSpeaker(speaker: Speaker): void {\r\n this.speaker = speaker;\r\n\r\n ScrollHelper.scrollToElement(\r\n this.speakerDetailsContainer.nativeElement\r\n );\r\n }\r\n\r\n public selectSpeakerById(speakerId: string) {\r\n if (speakerId && this.speakers) {\r\n const speakerToSelect = this.speakers.find(\r\n speaker => speaker.id === speakerId\r\n );\r\n\r\n if (speakerToSelect != null) {\r\n this.selectSpeaker(speakerToSelect);\r\n }\r\n }\r\n }\r\n\r\n private loadSpeakers() {\r\n this.isLoading = true;\r\n this.eventService.getSpeakers(this.readableEventId).subscribe(\r\n speakers => {\r\n this.speakers = speakers;\r\n\r\n this.route.queryParamMap.subscribe(paramMap => {\r\n const selectedSpeakerId = paramMap.get(EventQueryParameterNames.SpeakerId);\r\n this.selectSpeakerById(selectedSpeakerId);\r\n });\r\n\r\n this.isLoading = false;\r\n },\r\n (error: LocalizableError) => this.handleErrorResponse(error)\r\n );\r\n }\r\n\r\n private handleErrorResponse(error: LocalizableError) {\r\n this.isLoading = false;\r\n this.error = error;\r\n }\r\n}\r\n","module.exports = \".event-sponsors-container {\\r\\n background: #ccc;\\r\\n padding-bottom: 60px;\\r\\n color: black;\\r\\n width: 100%;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.event-sponsors-container h3 {\\r\\n padding-bottom: 30px;\\r\\n}\\r\\n\\r\\n.page-header {\\r\\n padding-top: 30px;\\r\\n font-size: 180%;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.sponsor-image {\\r\\n height: 100px;\\r\\n width: 100px;\\r\\n margin: auto;\\r\\n}\\r\\n\\r\\n.sponsor-image-container {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.sponsor-image-container .sponsor-image img {\\r\\n border-radius: 50%;\\r\\n}\\r\\n\\r\\n.sponsor-image img {\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n.sponsor-name {\\r\\n margin-top: .6em;\\r\\n}\\r\\n\\r\\n.sponsor-title {\\r\\n margin-bottom: 1em;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudC9zcG9uc29ycy9zcG9uc29ycy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksZ0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQixZQUFZO0lBQ1osV0FBVztJQUNYLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLG9CQUFvQjtBQUN4Qjs7QUFFQTtJQUNJLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2Ysa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLFlBQVk7SUFDWixZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksWUFBWTtBQUNoQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZXZlbnQvc3BvbnNvcnMvc3BvbnNvcnMuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5ldmVudC1zcG9uc29ycy1jb250YWluZXIge1xyXG4gICAgYmFja2dyb3VuZDogI2NjYztcclxuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5ldmVudC1zcG9uc29ycy1jb250YWluZXIgaDMge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XHJcbn1cclxuXHJcbi5wYWdlLWhlYWRlciB7XHJcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcclxuICAgIGZvbnQtc2l6ZTogMTgwJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLnNwb25zb3ItaW1hZ2Uge1xyXG4gICAgaGVpZ2h0OiAxMDBweDtcclxuICAgIHdpZHRoOiAxMDBweDtcclxuICAgIG1hcmdpbjogYXV0bztcclxufVxyXG5cclxuLnNwb25zb3ItaW1hZ2UtY29udGFpbmVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLnNwb25zb3ItaW1hZ2UtY29udGFpbmVyIC5zcG9uc29yLWltYWdlIGltZyB7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbn1cclxuXHJcbi5zcG9uc29yLWltYWdlIGltZyB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5zcG9uc29yLW5hbWUge1xyXG4gICAgbWFyZ2luLXRvcDogLjZlbTtcclxufVxyXG5cclxuLnNwb25zb3ItdGl0bGUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG59XHJcbiJdfQ== */\"","import {\r\n EVENT_SERVICE,\r\n SPONSORSHIPS_SERVICE\r\n} from './../../../providers/service.providers';\r\nimport { EventService } from '../../../services/event.service';\r\nimport { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { Sponsorship } from '../../../models/Sponsorship';\r\nimport { LocalizableError } from 'src/app/models/LocalizableError';\r\nimport { SponsorshipsService } from 'src/app/services/sponsorships.service';\r\nimport { ImageHelper } from \"src/app/helpers/ImageHelper\";\r\n\r\n@Component({\r\n selector: 'app-sponsors',\r\n templateUrl: './sponsors.component.html',\r\n styleUrls: ['./sponsors.component.css']\r\n})\r\nexport class SponsorsComponent implements OnInit {\r\n @Input() readableEventId: string;\r\n @Input() renderOnZeroSponsorships = true;\r\n public sponsorships: Sponsorship[];\r\n public isLoading = false;\r\n public error: LocalizableError;\r\n\r\n public defaultImageUrl = 'default-sponsor-logo.png';\r\n constructor(\r\n private imageHelper: ImageHelper,\r\n @Inject(EVENT_SERVICE) private eventService: EventService,\r\n @Inject(SPONSORSHIPS_SERVICE) private sponsorsService: SponsorshipsService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.loadSponsors();\r\n }\r\n\r\n private loadSponsors() {\r\n this.isLoading = true;\r\n this.eventService.getSponsors(this.readableEventId).subscribe(\r\n sponsorships => {\r\n this.sponsorships = sponsorships;\r\n this.setSponsorLogosSrc();\r\n\r\n this.isLoading = false;\r\n },\r\n (error: LocalizableError) => this.handleErrorResponse(error)\r\n );\r\n }\r\n\r\n private setSponsorLogosSrc() {\r\n this.sponsorships.forEach(sponsor => {\r\n sponsor.logoSrc = this.sponsorsService.getLogoSrc(sponsor);\r\n });\r\n }\r\n\r\n private handleErrorResponse(error: LocalizableError) {\r\n this.isLoading = false;\r\n this.error = error;\r\n }\r\n}\r\n","module.exports = \".custom-control-input:checked ~ .custom-control-label::before {\\r\\n color: #fff;\\r\\n border-color: #4396D3;\\r\\n background-color: #4396D3;\\r\\n}\\r\\n\\r\\n.control-btn {\\r\\n background: none;\\r\\n border: none;\\r\\n padding: 0;\\r\\n color: #008CBA;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.control-btn:disabled {\\r\\n color: #555555;\\r\\n cursor: not-allowed;\\r\\n}\\r\\n\\r\\ninput.ng-invalid.ng-touched {\\r\\n border-color: red;\\r\\n}\\r\\n\\r\\nselect.ng-invalid.ng-touched {\\r\\n border-color: red;\\r\\n}\\r\\n\\r\\ninput:checked + .slider {\\r\\n background-color: #2196F3;\\r\\n}\\r\\n\\r\\n.disabled-switch input:checked + .slider {\\r\\n background-color: #9dc9ec;\\r\\n}\\r\\n\\r\\ninput:focus + .slider {\\r\\n box-shadow: 0 0 1px #2196F3;\\r\\n}\\r\\n\\r\\ninput:checked + .slider:before {\\r\\n -webkit-transform: translateX(26px);\\r\\n transform: translateX(26px);\\r\\n}\\r\\n\\r\\n.icon-padding {\\r\\n padding-left: 10px;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n.selected-sessions {\\r\\n max-height: 320px;\\r\\n}\\r\\n\\r\\n.custom-control-label-input {\\r\\n padding: 4px;\\r\\n}\\r\\n\\r\\n.input-label {\\r\\n font-weight: 500;\\r\\n}\\r\\n\\r\\n.btn-primary:focus { \\r\\n outline: 1px dashed transparent; \\r\\n outline-offset: 2px; \\r\\n}\\r\\n\\r\\n.btn-outline-secondary:focus {\\r\\n outline: 1px dashed transparent; \\r\\n outline-offset: 2px; \\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudHJlZ2lzdHJhdGlvbi9hdHRlbmRlZS9hdHRlbmRlZS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksV0FBVztJQUNYLHFCQUFxQjtJQUNyQix5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLFVBQVU7SUFDVixjQUFjO0lBQ2QsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGNBQWM7SUFDZCxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSwyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSxtQ0FBbUM7SUFFbkMsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSwrQkFBK0I7SUFDL0IsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksK0JBQStCO0lBQy9CLG1CQUFtQjtBQUN2QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZXZlbnRyZWdpc3RyYXRpb24vYXR0ZW5kZWUvYXR0ZW5kZWUuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBib3JkZXItY29sb3I6ICM0Mzk2RDM7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDM5NkQzO1xyXG59XHJcblxyXG4uY29udHJvbC1idG4ge1xyXG4gICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBjb2xvcjogIzAwOENCQTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLmNvbnRyb2wtYnRuOmRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNTU1NTU1O1xyXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxufVxyXG5cclxuaW5wdXQubmctaW52YWxpZC5uZy10b3VjaGVkIHtcclxuICAgIGJvcmRlci1jb2xvcjogcmVkO1xyXG59XHJcblxyXG5zZWxlY3QubmctaW52YWxpZC5uZy10b3VjaGVkIHtcclxuICAgIGJvcmRlci1jb2xvcjogcmVkO1xyXG59XHJcblxyXG5pbnB1dDpjaGVja2VkICsgLnNsaWRlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzO1xyXG59XHJcblxyXG4uZGlzYWJsZWQtc3dpdGNoIGlucHV0OmNoZWNrZWQgKyAuc2xpZGVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM5ZGM5ZWM7XHJcbn1cclxuXHJcbmlucHV0OmZvY3VzICsgLnNsaWRlciB7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMXB4ICMyMTk2RjM7XHJcbn1cclxuXHJcbmlucHV0OmNoZWNrZWQgKyAuc2xpZGVyOmJlZm9yZSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNnB4KTtcclxuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XHJcbn1cclxuXHJcbi5pY29uLXBhZGRpbmcge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuLnNlbGVjdGVkLXNlc3Npb25zIHtcclxuICAgIG1heC1oZWlnaHQ6IDMyMHB4O1xyXG59XHJcblxyXG4uY3VzdG9tLWNvbnRyb2wtbGFiZWwtaW5wdXQge1xyXG4gICAgcGFkZGluZzogNHB4O1xyXG59XHJcblxyXG4uaW5wdXQtbGFiZWwge1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxufVxyXG5cclxuLmJ0bi1wcmltYXJ5OmZvY3VzIHsgXHJcbiAgICBvdXRsaW5lOiAxcHggZGFzaGVkIHRyYW5zcGFyZW50OyBcclxuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7IFxyXG59XHJcblxyXG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmZvY3VzIHtcclxuICAgIG91dGxpbmU6IDFweCBkYXNoZWQgdHJhbnNwYXJlbnQ7IFxyXG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDsgXHJcbn0iXX0= */\"","import { Component, OnInit, AfterViewInit, Input, Output, EventEmitter, ViewChild, ElementRef, Inject, NgModuleRef } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Attendee } from 'src/app/models/Attendee';\r\nimport { Pass } from '../../../models/Pass';\r\nimport { LabelsService } from '../../../services/labels.service';\r\nimport * as CustomRegistrationFieldModel from '../../../models/CustomRegistrationField';\r\nimport { CustomRegistrationFieldsComponent } from './custom-registration-fields/custom-registration-fields.component';\r\nimport { Observable } from 'rxjs';\r\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgbdModalContent } from '../modal/modal.component';\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: '[event-attendee]',\r\n templateUrl: './attendee.component.html',\r\n styleUrls: ['./attendee.component.css']\r\n})\r\nexport class AttendeeComponent implements OnInit, AfterViewInit {\r\n @Input() public readableEventId: string;\r\n @Input() attendee: Attendee; /* the attendee */\r\n @Input() passes: Pass[]; /* the event passes */\r\n\r\n /**\r\n * whether the component is in editing mode or read only mode\r\n */\r\n @Input()\r\n set editing(isEditing: boolean) {\r\n this._isEditing = isEditing;\r\n this.editingChange.emit(this._isEditing);\r\n }\r\n\r\n get editing(): boolean {\r\n return this._isEditing;\r\n }\r\n\r\n @Input() deleting: boolean; /* whether the component is in deleting mode or read only mode */\r\n /* whether the component is a placeholder, meaning it is in editing mode and it does not already represent an entry in the table */\r\n @Input() placeholder: boolean;\r\n @Input() waitlisted: boolean; /* whether this is an attendee in the waitlist */\r\n @Input() isJapanese: boolean; /* whether the language is japanese */\r\n @Input() autoregisterWaitlistItems: boolean; /* whether automatic registration for waitlisted items is enabled by default */\r\n @Input() enableAutoRegistrationSelection: boolean; /* whether the checkbox for automatic registration is enabled */\r\n @Input() customRegistrationFields: CustomRegistrationFieldModel.CustomRegistrationField[];\r\n @Input() canceledEditing: Function;\r\n @Input() showAddAnotherAttendee: boolean;\r\n @Input() hasWaitlistedSessions: boolean;\r\n\r\n @Output() editingChange = new EventEmitter(); /* event emitted when the attendee data is updated */\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onSaved = new EventEmitter(); /* event emitted when the attendee data is updated */\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onDeleted = new EventEmitter(); /* event fired when the attendee is deleted */\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onAdded = new EventEmitter(); /* event fired when the attendee is added */\r\n /**\r\n * This event is triggered whenever the new attendee form is validated.\r\n */\r\n @Output() onValidationStatusChanged = new EventEmitter();\r\n\r\n @ViewChild('firstName', { static: false}) firstName: ElementRef;\r\n @ViewChild('lastName', { static: false}) lastName: ElementRef;\r\n @ViewChild('attendeeForm', { static: false}) attendeeForm: NgForm;\r\n @ViewChild('removeAttendeeButton', { static: false}) removeAttendeeButton: ElementRef;\r\n @ViewChild('customRegistrationFieldsComponent', { static: false}) customRegistrationFieldsComponent: CustomRegistrationFieldsComponent;\r\n\r\n private _isEditing: boolean;\r\n private modalRef: NgbModalRef;\r\n\r\n public customRegistrationFieldsCopy: CustomRegistrationFieldModel.CustomRegistrationField[];\r\n private dummyAttendee: Attendee = {\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n passId: '',\r\n waitlisted: this.waitlisted,\r\n autoRegister: false,\r\n responses: [],\r\n attendeeSessions: []\r\n };\r\n\r\n constructor(private labelsService: LabelsService, private modalService: NgbModal) {\r\n }\r\n\r\n open() { \r\n this.modalRef = this.modalService.open(NgbdModalContent); \r\n this.sendInputFieldsToModal();\r\n this.modalRef.result.then(result => {\r\n if (result === 'Close click' || result === 'Cross click') {\r\n this.removeAttendeeButton.nativeElement.focus();\r\n } else if (result === 'Action executed') {\r\n this.removeAttendee();\r\n return (this.isJapanese) ? document.getElementById('attendeesLastName').focus() : document.getElementById('attendeesFirstName').focus(); \r\n }\r\n });\r\n }\r\n\r\n sendInputFieldsToModal() {\r\n const modalsInput = this.modalRef.componentInstance;\r\n modalsInput.message = 'Are you sure you want to remove {0} {1}?';\r\n modalsInput.extraParams = this.formatName();\r\n modalsInput.messageTranslate = 'RemoveMessage';\r\n modalsInput.primaryButton = 'Remove';\r\n modalsInput.primaryButtonTranslate = 'Remove';\r\n modalsInput.secondaryButton = 'Cancel';\r\n modalsInput.secondaryButtonTranslate = 'Cancel';\r\n modalsInput.title = 'Remove attendee';\r\n modalsInput.titleTranslate = 'RemoveAttendee'; \r\n }\r\n\r\n formatName() {\r\n let completeName: string[] = [];\r\n completeName.push(this.attendee.firstName);\r\n (this.isJapanese) ? completeName.unshift(this.attendee.lastName) : completeName.push(this.attendee.lastName);\r\n return completeName;\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.attendee) {\r\n this.setDummyAttendee();\r\n }\r\n \r\n this.customRegistrationFieldsCopy = this.createDeepCopyOfCustomRegistrationFields();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.subscribeToAttendeeFormChanges();\r\n }\r\n\r\n public confirmEdit(): void {\r\n const attendeeBefore = this.deepCloneAttendee(this.attendee);\r\n\r\n this.attendee = {\r\n firstName: this.attendeeForm.value.firstName,\r\n lastName: this.attendeeForm.value.lastName,\r\n email: this.attendeeForm.value.email,\r\n passId: this.attendeeForm.value.passId || '',\r\n waitlisted: this.waitlisted,\r\n autoRegister: this.attendeeForm.value.isAutoRegisterEnabled || false,\r\n responses: this.customRegistrationFieldsComponent.getCustomRegistrationFieldsResponses(),\r\n attendeeSessions: []\r\n };\r\n\r\n if (!this.placeholder && this.editing) {\r\n // existing attendee was updated\r\n this.editing = false;\r\n if (attendeeBefore.passId !== this.attendee.passId) {\r\n this.incrementPassesUsed(this.attendee.passId);\r\n this.decrementPassesUsed(attendeeBefore.passId);\r\n }\r\n this.onSaved.emit([attendeeBefore, this.attendee]);\r\n\r\n\r\n } else if (!this.placeholder && this.deleting) {\r\n // existing attendee was deleted\r\n this.deleting = false;\r\n } else {\r\n // attendee added\r\n if (this.attendee.passId) {\r\n this.incrementPassesUsed(this.attendee.passId);\r\n }\r\n\r\n this.onAdded.emit(this.attendee);\r\n\r\n this.resetNewAttendeeForms();\r\n }\r\n }\r\n\r\n /**\r\n * Checks if all forms (attendee form + custom registrations form) are valid.\r\n */\r\n public areFormsValid() {\r\n const attendeeFormValid = this.attendeeForm && this.attendeeForm.valid;\r\n const customRegistrationFieldsFormValid = this.customRegistrationFieldsComponent &&\r\n this.customRegistrationFieldsComponent.areRegistrationFieldsValid();\r\n\r\n if (this.customRegistrationFields == null || this.customRegistrationFields.length === 0) {\r\n return attendeeFormValid;\r\n } else {\r\n return attendeeFormValid && customRegistrationFieldsFormValid;\r\n }\r\n }\r\n\r\n public translateLabel(translationKey: string, defaultValue: string): Observable {\r\n return this.labelsService.translateLabel(translationKey, defaultValue);\r\n }\r\n\r\n public getCntOfWaitlistedSessionsForAttendee(): number {\r\n if (this.attendee == null || this.attendee.attendeeSessions == null || this.attendee.attendeeSessions.length === 0) {\r\n return 0;\r\n }\r\n\r\n return this.attendee.attendeeSessions.filter(as => as.waitlisted === true).length;\r\n }\r\n\r\n private resetNewAttendeeForms() {\r\n this.setDummyAttendee();\r\n\r\n this.attendeeForm.reset();\r\n this.customRegistrationFieldsComponent.resetForm();\r\n\r\n // angular sets the values to null on reset. we we need to manually select the placeholder value for the pass dropdown\r\n if (this.attendeeForm.controls.passId) {\r\n this.attendeeForm.controls.passId.setValue('');\r\n }\r\n }\r\n\r\n private subscribeToAttendeeFormChanges() {\r\n if (this.attendeeForm) {\r\n this.attendeeForm.statusChanges.subscribe(result => {\r\n this.onValidationStatusChanged.emit(result);\r\n });\r\n }\r\n }\r\n\r\n private cancelEdit(): void {\r\n this.editing = false;\r\n this.canceledEditing();\r\n }\r\n\r\n public switchToEdit(attendee: Attendee): void {\r\n this.editing = true;\r\n }\r\n\r\n private removeAttendee(): void {\r\n this.deleting = true;\r\n if (this.attendee.passId) {\r\n this.decrementPassesUsed(this.attendee.passId);\r\n }\r\n this.onDeleted.emit(this.attendee);\r\n }\r\n\r\n private setDummyAttendee() {\r\n this.attendee = this.deepCloneAttendee(this.dummyAttendee);\r\n }\r\n\r\n private passDisplayString(passId: string): string {\r\n const pass = this.pass(passId);\r\n return `${pass.passName} (${pass.currencySymbol}${pass.price})`;\r\n }\r\n\r\n private pass(passId: string): Pass {\r\n const idx = this.passes.findIndex(p => p.passId === passId);\r\n return this.passes[idx];\r\n }\r\n\r\n private incrementPassesUsed(passId: string): void {\r\n this.pass(passId).passesUsed++;\r\n }\r\n\r\n private decrementPassesUsed(passId: string): void {\r\n this.pass(passId).passesUsed--;\r\n }\r\n\r\n private deepCloneAttendee(obj: Attendee): Attendee {\r\n return JSON.parse(JSON.stringify(obj)) as Attendee;\r\n }\r\n\r\n private createDeepCopyOfCustomRegistrationFields(): CustomRegistrationFieldModel.CustomRegistrationField[] {\r\n const customFieldsCopy: CustomRegistrationFieldModel.CustomRegistrationField[] = [];\r\n\r\n if (this.customRegistrationFields == null) {\r\n return [];\r\n }\r\n\r\n for (const customRegistrationField of this.customRegistrationFields) {\r\n customFieldsCopy.push(\r\n customRegistrationField.createDeepCopy()\r\n );\r\n }\r\n\r\n return customFieldsCopy;\r\n }\r\n\r\n private changeFocus() {\r\n if (this.isJapanese) {\r\n this.lastName.nativeElement.focus();\r\n } else {\r\n this.firstName.nativeElement.focus();\r\n }\r\n }\r\n}\r\n","module.exports = \".required::after {\\r\\n content: ' *';\\r\\n color: red;\\r\\n}\\r\\n\\r\\n.form-check label {\\r\\n margin-left: 0.5rem;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudHJlZ2lzdHJhdGlvbi9hdHRlbmRlZS9jdXN0b20tcmVnaXN0cmF0aW9uLWZpZWxkcy9jdXN0b20tcmVnaXN0cmF0aW9uLWZpZWxkcy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksYUFBYTtJQUNiLFVBQVU7QUFDZDs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZXZlbnRyZWdpc3RyYXRpb24vYXR0ZW5kZWUvY3VzdG9tLXJlZ2lzdHJhdGlvbi1maWVsZHMvY3VzdG9tLXJlZ2lzdHJhdGlvbi1maWVsZHMuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yZXF1aXJlZDo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyAqJztcclxuICAgIGNvbG9yOiByZWQ7XHJcbn1cclxuXHJcbi5mb3JtLWNoZWNrIGxhYmVsIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XHJcbn1cclxuIl19 */\"","import { Component, OnInit, Input, Output, ViewChild, EventEmitter } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport * as CustomRegistrationFieldModel from '../../../../models/CustomRegistrationField';\r\nimport { CustomRegistrationFieldResponse } from \"../../../../models/CustomRegistrationFieldResponse\";\r\n\r\n@Component({\r\n selector: 'app-custom-registration-fields',\r\n templateUrl: './custom-registration-fields.component.html',\r\n styleUrls: ['./custom-registration-fields.component.css']\r\n})\r\nexport class CustomRegistrationFieldsComponent implements OnInit {\r\n\r\n @Input()\r\n customRegistrationFields: CustomRegistrationFieldModel.CustomRegistrationField[];\r\n\r\n @Input()\r\n existingResponses: CustomRegistrationFieldResponse[];\r\n\r\n @ViewChild('customRegistrationFieldsForm', { static: false})\r\n\r\n customRegistrationFieldsForm: NgForm;\r\n\r\n private CustomRegistrationFieldTypes = CustomRegistrationFieldModel.Types;\r\n\r\n ngOnInit() {\r\n this.processExistingResponses();\r\n }\r\n\r\n /**\r\n * Checks if the custom registration fields are valid (and all required fields are filled).\r\n */\r\n public areRegistrationFieldsValid(): boolean {\r\n return this.customRegistrationFieldsForm == null || (this.customRegistrationFieldsForm != null && this.customRegistrationFieldsForm.valid);\r\n }\r\n\r\n /**\r\n * Resets the custom registration fields.\r\n */\r\n public resetForm() {\r\n this.customRegistrationFieldsForm.reset();\r\n }\r\n\r\n /**\r\n * Returns the valid, non-empty responses of the custom registration fields.\r\n * The value of the responses is represented as string.\r\n */\r\n public getCustomRegistrationFieldsResponses(): CustomRegistrationFieldResponse[] {\r\n let responses: CustomRegistrationFieldResponse[] = [];\r\n\r\n for (let customField of this.customRegistrationFields) {\r\n let response = customField.createResponse();\r\n\r\n if (response) {\r\n responses.push(response);\r\n }\r\n }\r\n\r\n return responses;\r\n }\r\n\r\n private processExistingResponses() {\r\n for (let response of this.existingResponses) {\r\n let relatedCustomField = this.customRegistrationFields.find(\r\n customRegistrationField => customRegistrationField.customRegistrationFieldId === response.id\r\n );\r\n\r\n relatedCustomField.valueAsString = response.value;\r\n }\r\n }\r\n\r\n private splitResponses(str: string): string[] {\r\n return str.split(', ');\r\n }\r\n}\r\n","module.exports = \"div.captcha {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.captcha input {\\r\\n margin-left: 2rem;\\r\\n}\\r\\n\\r\\n#ms_captcha_holder {\\r\\n padding-top: 2em;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudHJlZ2lzdHJhdGlvbi9jYXB0Y2hhL2NhcHRjaGEuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZXZlbnRyZWdpc3RyYXRpb24vY2FwdGNoYS9jYXB0Y2hhLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJkaXYuY2FwdGNoYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5jYXB0Y2hhIGlucHV0IHtcclxuICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xyXG59XHJcblxyXG4jbXNfY2FwdGNoYV9ob2xkZXIge1xyXG4gICAgcGFkZGluZy10b3A6IDJlbTtcclxufSJdfQ== */\"","import { EVENT_SERVICE } from './../../../providers/service.providers';\r\nimport { CaptchaService } from './../../../services/captcha.service';\r\nimport { EventService } from 'src/app/services/event.service';\r\nimport { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { Captcha } from '../../../models/Captcha';\r\n\r\n@Component({\r\n selector: 'app-captcha',\r\n templateUrl: './captcha.component.html',\r\n styleUrls: ['./captcha.component.css']\r\n})\r\nexport class CaptchaComponent implements OnInit {\r\n captcha: Captcha;\r\n @Input() readableEventId: string;\r\n\r\n constructor(@Inject(EVENT_SERVICE) private eventService: EventService) { }\r\n\r\n ngOnInit() {\r\n (window.top).WLSPHIP0 = {\r\n error: 0,\r\n left: '0',\r\n\r\n showInstruction: false,\r\n getInstruction: function () { },\r\n showMenu: true,\r\n getMenu: function () { },\r\n showError: true,\r\n errorMessage: '',\r\n instructionsInside: true,\r\n getError: function () { },\r\n inputWidth: 245,\r\n done: false,\r\n holder: 'ms_captcha_holder',\r\n scriptHolder: 'ms_captcha_scriptholder',\r\n count: 0,\r\n type: 'visual',\r\n market: 'en-us',\r\n getSolution: function () { },\r\n reloadHIP: function () { },\r\n switchHIP: function () { },\r\n clientValidation: function () { },\r\n setError: function () { },\r\n setFocus: function () { },\r\n postLoad: function () { },\r\n verify: function (theCallback: any, param: any) { },\r\n verifyCallback: function (solution: any, token: any, param: any) {\r\n (window.top).WLSPHIP0.clientValidation();\r\n if ((window.top).WLSPHIP0.error !== 0) {\r\n return;\r\n } else {\r\n (window.top).HipObject['Solution'] = solution;\r\n (window.top).HipObject['Token'] = token;\r\n (window.top).HipObject['Type'] = (window.top).WLSPHIP0.type;\r\n (window.top).HipObject['FlowId'] = (window.top).flowid;\r\n return;\r\n }\r\n }\r\n };\r\n\r\n (window.top).HipObject = { };\r\n\r\n this.loadCaptcha();\r\n }\r\n\r\n private loadCaptcha(): void {\r\n this.eventService.getCaptcha(this.readableEventId).subscribe(captcha => {\r\n this.captcha = captcha;\r\n\r\n const script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.src = this.captcha.HipUrl;\r\n\r\n const element = document.getElementById('ms_captcha_scriptholder');\r\n if (element) {\r\n element.appendChild(script);\r\n }\r\n\r\n (window.top).flowid = this.captcha.FlowId;\r\n }, error => console.error(error));\r\n }\r\n\r\n public reloadCaptcha(): void {\r\n this.loadCaptcha();\r\n }\r\n\r\n}\r\n","module.exports = \".page-header {\\r\\n padding-top: 30px;\\r\\n margin: 42px 0 21px;\\r\\n}\\r\\n\\r\\n.checkout .card .card-header,\\r\\n.checkout .card .card-footer {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudHJlZ2lzdHJhdGlvbi9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQkFBaUI7SUFDakIsbUJBQW1CO0FBQ3ZCOztBQUVBOztJQUVJLFdBQVc7QUFDZiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZXZlbnRyZWdpc3RyYXRpb24vY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnBhZ2UtaGVhZGVyIHtcclxuICAgIHBhZGRpbmctdG9wOiAzMHB4O1xyXG4gICAgbWFyZ2luOiA0MnB4IDAgMjFweDtcclxufVxyXG5cclxuLmNoZWNrb3V0IC5jYXJkIC5jYXJkLWhlYWRlcixcclxuLmNoZWNrb3V0IC5jYXJkIC5jYXJkLWZvb3RlciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { SessionCartService } from '../../event/session-cart/session-cart.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { RegistrationServiceFactory } from '../registration-service.factory';\r\nimport { LabelsService } from '../../../services/labels.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-confirmation',\r\n templateUrl: './confirmation.component.html',\r\n styleUrls: ['./confirmation.component.css']\r\n})\r\nexport class ConfirmationComponent implements OnInit {\r\n private readableEventId: string;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private cartService: SessionCartService,\r\n private labelsService: LabelsService,\r\n private registrationServiceFactory: RegistrationServiceFactory\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.readableEventId = this.route.snapshot.queryParams['id'];\r\n\r\n this.cartService.flushCart(this.readableEventId);\r\n this.registrationServiceFactory.dispose(this.readableEventId);\r\n }\r\n\r\n public translateLabel(translationKey: string, defaultValue: string): Observable {\r\n return this.labelsService.translateLabel(translationKey, defaultValue);\r\n }\r\n}\r\n","module.exports = \".sessions-spacer {\\r\\n height: 100%;\\r\\n width:100%;\\r\\n}\\r\\n\\r\\n.registration-form-sessions-wrapper {\\r\\n position: relative;\\r\\n min-height: 90%;\\r\\n max-height: 90%;\\r\\n overflow: auto;\\r\\n padding-right: 0px;\\r\\n}\\r\\n\\r\\n.form-registration-wrapper {\\r\\n padding-left: 0px;\\r\\n padding-right: 0px;\\r\\n}\\r\\n\\r\\n.registration-form {\\r\\n margin:auto;\\r\\n width:100%;\\r\\n}\\r\\n\\r\\n.form-waitlist-alert {\\r\\n flex: auto;\\r\\n}\\r\\n\\r\\n.marketing-form-container {\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n.centered {\\r\\n margin: auto;\\r\\n}\\r\\n\\r\\n.waitlist-checkbox-wrapper {\\r\\n margin: auto;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n.checkout-container {\\r\\n padding-top: 2em;\\r\\n float: right;\\r\\n}\\r\\n\\r\\n.page-header {\\r\\n padding-top: 30px;\\r\\n margin: 42px 0 21px;\\r\\n}\\r\\n\\r\\n.waitlist-radio {\\r\\n display: flex;\\r\\n}\\r\\n\\r\\nh4 {\\r\\n margin-top: 50px;\\r\\n}\\r\\n\\r\\n.alternate-row {\\r\\n margin-right: 0;\\r\\n margin-left: 0;\\r\\n}\\r\\n\\r\\n.spinner-container {\\r\\n min-height: 1000px;\\r\\n padding-top: 450px;\\r\\n}\\r\\n\\r\\n.full-size-spinner-container {\\r\\n position: absolute;\\r\\n top: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.field-container {\\r\\n padding: 1em 0;\\r\\n}\\r\\n\\r\\n.field-container p {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.checkboxes-container {\\r\\n padding-left: 1em;\\r\\n}\\r\\n\\r\\n.required::after {\\r\\n content: ' *';\\r\\n color: red;\\r\\n}\\r\\n\\r\\n.notVisible {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.checkout .card .card-title {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.checkout .card .card-body {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.checkout .card .card-header,\\r\\n.checkout .card .card-footer {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.waitlist .row,\\r\\n.custom-registration-fields .row {\\r\\n margin-left: 0;\\r\\n margin-right: 0;\\r\\n}\\r\\n\\r\\n.waitlist .auto-register-header {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.btn-primary {\\r\\n background-color: #006ADB;\\r\\n}\\r\\n\\r\\n.btn-primary:hover {\\r\\n color: #fff;\\r\\n background-color: #005BBD;\\r\\n border-color: #0062cc;\\r\\n}\\r\\n\\r\\n.btn-primary:focus { \\r\\n outline: 1px dashed transparent; \\r\\n outline-offset: 2px; \\r\\n}\\r\\n\\r\\n.btn-primary.disabled, .btn-primary:disabled {\\r\\n background-color: #0056B3;\\r\\n }\\r\\n\\r\\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-primary.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #0062cc;\\r\\n border-color: #005cbf;\\r\\n}\\r\\n\\r\\n@media (min-width: 401px) {\\r\\n .checkout .registered-attendee-list {\\r\\n min-width: 400px;\\r\\n }\\r\\n}\\r\\n\\r\\n@media (min-width: 576px) {\\r\\n .registration-form-sessions-wrapper {\\r\\n position: absolute;\\r\\n left: 0px;\\r\\n min-height: 90%;\\r\\n max-height: 90%;\\r\\n overflow: auto;\\r\\n border-right: 1px solid rgba(0,0,0,.125);\\r\\n padding-right: 0px;\\r\\n }\\r\\n\\r\\n .marketing-form-container {\\r\\n display: flex;\\r\\n padding-top: 20px;\\r\\n padding-bottom: 20px;\\r\\n flex-direction: row;\\r\\n }\\r\\n\\r\\n .registration-form {\\r\\n padding-left: 40px;\\r\\n }\\r\\n \\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudHJlZ2lzdHJhdGlvbi9ldmVudHJlZ2lzdHJhdGlvbi5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksWUFBWTtJQUNaLFVBQVU7QUFDZDs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsZUFBZTtJQUNmLGNBQWM7SUFDZCxrQkFBa0I7QUFDdEI7O0FBR0E7SUFDSSxpQkFBaUI7SUFDakIsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksV0FBVztJQUNYLFVBQVU7QUFDZDs7QUFFQTtJQUNJLFVBQVU7QUFDZDs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxZQUFZO0lBQ1osYUFBYTtJQUNiLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksaUJBQWlCO0lBQ2pCLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGFBQWE7QUFDakI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsTUFBTTtJQUNOLE9BQU87SUFDUCxRQUFRO0lBQ1IsU0FBUztJQUNULGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsVUFBVTtBQUNkOztBQUVBO0lBQ0ksYUFBYTtBQUNqQjs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTs7SUFFSSxXQUFXO0FBQ2Y7O0FBRUE7O0lBRUksY0FBYztJQUNkLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSxXQUFXO0lBQ1gseUJBQXlCO0lBQ3pCLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLCtCQUErQjtJQUMvQixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSx5QkFBeUI7RUFDM0I7O0FBRUY7O0lBRUksV0FBVztJQUNYLHlCQUF5QjtJQUN6QixxQkFBcUI7QUFDekI7O0FBRUE7SUFDSTtRQUNJLGdCQUFnQjtJQUNwQjtBQUNKOztBQUdBO0lBQ0k7UUFDSSxrQkFBa0I7UUFDbEIsU0FBUztRQUNULGVBQWU7UUFDZixlQUFlO1FBQ2YsY0FBYztRQUNkLHdDQUF3QztRQUN4QyxrQkFBa0I7SUFDdEI7O0lBRUE7UUFDSSxhQUFhO1FBQ2IsaUJBQWlCO1FBQ2pCLG9CQUFvQjtRQUNwQixtQkFBbUI7SUFDdkI7O0lBRUE7UUFDSSxrQkFBa0I7SUFDdEI7O0FBRUoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2V2ZW50cmVnaXN0cmF0aW9uL2V2ZW50cmVnaXN0cmF0aW9uLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2Vzc2lvbnMtc3BhY2VyIHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHdpZHRoOjEwMCU7XHJcbn1cclxuXHJcbi5yZWdpc3RyYXRpb24tZm9ybS1zZXNzaW9ucy13cmFwcGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG1pbi1oZWlnaHQ6IDkwJTtcclxuICAgIG1heC1oZWlnaHQ6IDkwJTtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gICAgcGFkZGluZy1yaWdodDogMHB4O1xyXG59XHJcblxyXG5cclxuLmZvcm0tcmVnaXN0cmF0aW9uLXdyYXBwZXIge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XHJcbn1cclxuXHJcbi5yZWdpc3RyYXRpb24tZm9ybSB7XHJcbiAgICBtYXJnaW46YXV0bztcclxuICAgIHdpZHRoOjEwMCU7XHJcbn1cclxuXHJcbi5mb3JtLXdhaXRsaXN0LWFsZXJ0IHtcclxuICAgIGZsZXg6IGF1dG87XHJcbn1cclxuXHJcbi5tYXJrZXRpbmctZm9ybS1jb250YWluZXIge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG5cclxuLmNlbnRlcmVkIHtcclxuICAgIG1hcmdpbjogYXV0bztcclxufVxyXG5cclxuLndhaXRsaXN0LWNoZWNrYm94LXdyYXBwZXIge1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5jaGVja291dC1jb250YWluZXIge1xyXG4gICAgcGFkZGluZy10b3A6IDJlbTtcclxuICAgIGZsb2F0OiByaWdodDtcclxufVxyXG5cclxuLnBhZ2UtaGVhZGVyIHtcclxuICAgIHBhZGRpbmctdG9wOiAzMHB4O1xyXG4gICAgbWFyZ2luOiA0MnB4IDAgMjFweDtcclxufVxyXG5cclxuLndhaXRsaXN0LXJhZGlvIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuXHJcbmg0IHtcclxuICAgIG1hcmdpbi10b3A6IDUwcHg7XHJcbn1cclxuXHJcbi5hbHRlcm5hdGUtcm93IHtcclxuICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG59XHJcblxyXG4uc3Bpbm5lci1jb250YWluZXIge1xyXG4gICAgbWluLWhlaWdodDogMTAwMHB4O1xyXG4gICAgcGFkZGluZy10b3A6IDQ1MHB4O1xyXG59XHJcblxyXG4uZnVsbC1zaXplLXNwaW5uZXItY29udGFpbmVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG59XHJcblxyXG4uZmllbGQtY29udGFpbmVyIHtcclxuICAgIHBhZGRpbmc6IDFlbSAwO1xyXG59XHJcblxyXG4uZmllbGQtY29udGFpbmVyIHAge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmNoZWNrYm94ZXMtY29udGFpbmVyIHtcclxuICAgIHBhZGRpbmctbGVmdDogMWVtO1xyXG59XHJcblxyXG4ucmVxdWlyZWQ6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcgKic7XHJcbiAgICBjb2xvcjogcmVkO1xyXG59XHJcblxyXG4ubm90VmlzaWJsZSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uY2hlY2tvdXQgLmNhcmQgLmNhcmQtdGl0bGUge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uY2hlY2tvdXQgLmNhcmQgLmNhcmQtYm9keSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jaGVja291dCAuY2FyZCAuY2FyZC1oZWFkZXIsXHJcbi5jaGVja291dCAuY2FyZCAuY2FyZC1mb290ZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi53YWl0bGlzdCAucm93LFxyXG4uY3VzdG9tLXJlZ2lzdHJhdGlvbi1maWVsZHMgLnJvdyB7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIG1hcmdpbi1yaWdodDogMDtcclxufVxyXG5cclxuLndhaXRsaXN0IC5hdXRvLXJlZ2lzdGVyLWhlYWRlciB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5idG4tcHJpbWFyeSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2QURCO1xyXG59XHJcblxyXG4uYnRuLXByaW1hcnk6aG92ZXIge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1QkJEO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjMDA2MmNjO1xyXG59XHJcblxyXG4uYnRuLXByaW1hcnk6Zm9jdXMgeyBcclxuICAgIG91dGxpbmU6IDFweCBkYXNoZWQgdHJhbnNwYXJlbnQ7IFxyXG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDsgXHJcbn1cclxuXHJcbi5idG4tcHJpbWFyeS5kaXNhYmxlZCwgLmJ0bi1wcmltYXJ5OmRpc2FibGVkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU2QjM7XHJcbiAgfVxyXG5cclxuLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwgLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcclxuICAuc2hvdyA+IC5idG4tcHJpbWFyeS5kcm9wZG93bi10b2dnbGUge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2MmNjO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjMDA1Y2JmO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogNDAxcHgpIHtcclxuICAgIC5jaGVja291dCAucmVnaXN0ZXJlZC1hdHRlbmRlZS1saXN0IHtcclxuICAgICAgICBtaW4td2lkdGg6IDQwMHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XHJcbiAgICAucmVnaXN0cmF0aW9uLWZvcm0tc2Vzc2lvbnMtd3JhcHBlciB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDBweDtcclxuICAgICAgICBtaW4taGVpZ2h0OiA5MCU7XHJcbiAgICAgICAgbWF4LWhlaWdodDogOTAlO1xyXG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEyNSk7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5tYXJrZXRpbmctZm9ybS1jb250YWluZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIH1cclxuXHJcbiAgICAucmVnaXN0cmF0aW9uLWZvcm0ge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcclxuICAgIH1cclxuICAgICAgICAgIFxyXG59XHJcbiJdfQ== */\"","import { Component, OnInit, Inject, ViewChild, ChangeDetectorRef, NgZone } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport {\r\n EVENT_SERVICE,\r\n USER_SERVICE\r\n} from './../../providers/service.providers';\r\nimport { CaptchaService } from './../../services/captcha.service';\r\nimport { Attendee } from '../../models/Attendee';\r\nimport { AttendeeSessions } from 'src/app/models/AttendeeSessions';\r\nimport { Event } from '../../models/Event';\r\nimport { Pass } from '../../models/Pass';\r\nimport { RegistrationData } from '../../models/RegistrationData';\r\nimport { HipObject } from '../../models/HipObject';\r\nimport * as CustomRegistrationFieldModel from '../../models/CustomRegistrationField';\r\nimport { EventService } from '../../services/event.service';\r\nimport { LabelsService } from '../../services/labels.service';\r\nimport { BrowserSessionService } from '../../services/browser-session.service';\r\nimport { AttendeeComponent } from './attendee/attendee.component';\r\nimport { UserService } from 'src/app/services/user.service';\r\nimport { ExternalLoginUrlResolver } from 'src/app/resolvers/external.login.url.resolver';\r\nimport { ActiveEventService } from 'src/app/services/active-event.service';\r\nimport { TranslationKeys } from 'src/app/constants/TranslationKeys';\r\nimport { LocalizableError } from 'src/app/models/LocalizableError';\r\nimport { CaptchaComponent } from 'src/app/components/eventregistration/captcha/captcha.component';\r\nimport { Session } from 'src/app/models/Session';\r\nimport { RegistrationService } from './registration.service';\r\nimport { RegistrationServiceFactory } from './registration-service.factory';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\nexport interface IFormHandler{\r\n onSubmitSuccessfull(event: any): void;\r\n onFormRegistrationLoad(event: any) : void;\r\n afterFormRegistrationLoaded(event: any): void;\r\n onSubmitEvent(event: any): void;\r\n}\r\n\r\n@Component({\r\n selector: 'app-eventregistration',\r\n templateUrl: './eventregistration.component.html',\r\n styleUrls: ['./eventregistration.component.css']\r\n})\r\nexport class EventRegistrationComponent implements OnInit, IFormHandler {\r\n @ViewChild(AttendeeComponent, { static: false}) attendeeComponent: AttendeeComponent;\r\n @ViewChild(CaptchaComponent, { static: false}) captchaComponent: CaptchaComponent;\r\n\r\n public cntActiveDataRetrievals : number = 0;\r\n public error: LocalizableError;\r\n public get canUserChooseAutoRegisterFunctionality$(): Observable {\r\n return this.registrationService.canUserChooseAutoRegisterFunctionality$;\r\n }\r\n\r\n waitlisted: boolean;\r\n autoRegister: boolean;\r\n attendees: Attendee[];\r\n attendeeEditingCount: number;\r\n waitlistedAttendees: Attendee[];\r\n event: Event;\r\n sessions: Session[];\r\n passes: Pass[];\r\n registrationCount: number;\r\n readableEventId: string;\r\n registrationInProgress: boolean;\r\n customRegistrationFields: CustomRegistrationFieldModel.CustomRegistrationField[];\r\n isJapanese: boolean;\r\n\r\n private registrationService: RegistrationService;\r\n private readonly formValidStateString = 'VALID';\r\n private total = 0.0;\r\n private currencySymbol = '$';\r\n private formValidationStatus: string;\r\n private isUserLoggedIn: boolean;\r\n private formRegistrationLoaded: boolean;\r\n\r\n constructor(\r\n private activeEventService: ActiveEventService,\r\n @Inject(EVENT_SERVICE) private eventService: EventService,\r\n private captchaService: CaptchaService,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private labelsService: LabelsService,\r\n private browserSessionService: BrowserSessionService,\r\n @Inject(USER_SERVICE) private userService: UserService,\r\n private registrationServiceFactory: RegistrationServiceFactory,\r\n private changeDetectionRef: ChangeDetectorRef,\r\n private ngZone: NgZone\r\n ) {\r\n this.attendees = [];\r\n this.waitlistedAttendees = [];\r\n this.attendeeEditingCount = 0;\r\n this.formRegistrationLoaded = false;\r\n }\r\n\r\n async ngOnInit() {\r\n this.readableEventId = this.route.snapshot.queryParams['id'];\r\n\r\n this.registrationService = await this.registrationServiceFactory.create(this.readableEventId);\r\n\r\n this.loadData();\r\n\r\n this.labelsService.getLabelsModel().subscribe(labelsModel => {\r\n this.isJapanese = labelsModel.isJapanese;\r\n });\r\n\r\n this.userService.isLoggedIn().subscribe(isUserLoggedIn => {\r\n this.isUserLoggedIn = isUserLoggedIn;\r\n });\r\n\r\n this.subscribeToAttendees();\r\n this.waitlisted = this.showWaitlist();\r\n }\r\n\r\n public isLoginProcessActive() {\r\n return ExternalLoginUrlResolver.isResolverActive();\r\n }\r\n\r\n public mustUserSignIn() {\r\n return !(this.event.allowAnonymousRegistrations || this.isUserLoggedIn);\r\n }\r\n\r\n public clearForms(): void {\r\n let selectorResults = document.querySelectorAll('.event-customregistrationsfields-container input');\r\n let selectorResult: any;\r\n let i: number;\r\n for (i = 0; i < selectorResults.length; i++) {\r\n selectorResult = selectorResults[i];\r\n selectorResult.value = '';\r\n selectorResult.dispatchEvent(new Event('input'));\r\n }\r\n\r\n selectorResults = document.querySelectorAll('.event-customregistrationsfields-container input:checked');\r\n for (i = 0; i < selectorResults.length; i++) {\r\n selectorResult = selectorResults[i];\r\n selectorResult.checked = false;\r\n }\r\n\r\n selectorResults = document.querySelectorAll('.event-customregistrationsfields-container select');\r\n for (i = 0; i < selectorResults.length; i++) {\r\n selectorResult = selectorResults[i];\r\n selectorResult.selectedIndex = 0;\r\n }\r\n }\r\n\r\n /**\r\n * Checks if the validation status of the attendee form (child view) is valid.\r\n */\r\n public isAttendeeFormValid(): boolean {\r\n return this.formValidationStatus === this.formValidStateString && this.attendeeComponent.areFormsValid();\r\n }\r\n\r\n public isFormRegistrationLoaded(): boolean {\r\n return true;\r\n }\r\n\r\n /**\r\n * Checks if the checkout button should be disabled.\r\n */\r\n public isCheckoutButtonDisabled(): boolean {\r\n // NOTE: order of if statements is very important for logic.\r\n if (this.registrationInProgress) {\r\n return true;\r\n }\r\n\r\n if (this.isAttendeeCountExceedingEventCapacity()) {\r\n return true;\r\n }\r\n\r\n if (this.isAttendeeFormValid() && this.event.showWaitlist && this.hasAttendeeCountReachedEventCapacity()) {\r\n // Case: Event Full, 0 Event Attendees, 1 Waitlist attendee (did not press 'add another attendee')\r\n return false;\r\n }\r\n\r\n if (this.isAttendeeFormValid() && !this.hasAttendeeCountReachedEventCapacity()) {\r\n return false;\r\n }\r\n\r\n if (this.attendees.length === 0 && this.waitlistedAttendees.length === 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private async loadData() {\r\n await this.loadEvent();\r\n\r\n if (this.event) {\r\n if (this.event.allowCustomAgenda) {\r\n this.loadSessions();\r\n }\r\n \r\n this.loadEventRegistrationCount();\r\n\r\n if (this.event.registrationForm) {\r\n if (this.showRegistrationForm()) {\r\n this.cntActiveDataRetrievals += 1;\r\n }\r\n return;\r\n }\r\n\r\n this.loadEventPasses();\r\n }\r\n\r\n this.loadCustomRegistrationFields();\r\n }\r\n\r\n private async loadEvent() {\r\n this.cntActiveDataRetrievals += 1;\r\n this.activeEventService.getEvent(this.readableEventId).subscribe(\r\n event => {\r\n this.event = event;\r\n\r\n this.cntActiveDataRetrievals -= 1;\r\n },\r\n (error: LocalizableError) => this.handleDataRetrievalError(error)\r\n );\r\n }\r\n\r\n private loadSessions(): void {\r\n this.cntActiveDataRetrievals += 1;\r\n\r\n this.activeEventService.getSessions(this.readableEventId, false).subscribe(\r\n sessions => {\r\n this.sessions = sessions;\r\n this.cntActiveDataRetrievals -= 1;\r\n },\r\n (error: LocalizableError) => this.handleDataRetrievalError(error)\r\n );\r\n }\r\n\r\n private loadCustomRegistrationFields() {\r\n this.cntActiveDataRetrievals += 1;\r\n\r\n this.eventService.getCustomRegistrationFields(this.readableEventId).subscribe(\r\n customRegistrationFields => {\r\n this.customRegistrationFields = [];\r\n for (const customRegistrationField of customRegistrationFields) {\r\n this.customRegistrationFields.push(\r\n Object.assign(\r\n new CustomRegistrationFieldModel.CustomRegistrationField(),\r\n customRegistrationField\r\n )\r\n );\r\n }\r\n this.cntActiveDataRetrievals -= 1;\r\n },\r\n (error: LocalizableError) => this.handleDataRetrievalError(error)\r\n );\r\n }\r\n\r\n private loadEventPasses(): void {\r\n this.activeEventService.getPasses(this.readableEventId).subscribe(\r\n passes => {\r\n this.passes = passes;\r\n for (const pass of this.passes) {\r\n pass.passesUsed = 0;\r\n }\r\n },\r\n (error: LocalizableError) => this.handleDataRetrievalError(error));\r\n }\r\n\r\n private loadEventRegistrationCount(): void {\r\n this.cntActiveDataRetrievals += 1;\r\n\r\n this.eventService.getEventRegistrationCount(this.readableEventId).subscribe(\r\n registrationCount => {\r\n this.registrationCount = registrationCount;\r\n\r\n if (this.hasAttendeeCountReachedEventCapacity() && !this.event.showWaitlist) {\r\n this.showEventCapacityReachedErrorMessage();\r\n }\r\n\r\n if (this.isAttendeeCountExceedingEventCapacity()) {\r\n this.showEventCapacityExceedingErrorMessage();\r\n }\r\n\r\n this.cntActiveDataRetrievals -= 1;\r\n },\r\n (error: LocalizableError) => this.handleDataRetrievalError(error)\r\n );\r\n }\r\n\r\n public showRegistrationForm = () => {\r\n return !((this.hasAttendeeCountReachedEventCapacity() && !this.event.showWaitlist) || this.isAttendeeCountExceedingEventCapacity());\r\n }\r\n\r\n private handleDataRetrievalError(error: LocalizableError) {\r\n if (this.cntActiveDataRetrievals > 0) {\r\n this.cntActiveDataRetrievals -= 1;\r\n }\r\n\r\n this.handleErrorResponse(error);\r\n }\r\n\r\n private handleErrorResponse(error: LocalizableError) {\r\n this.error = error;\r\n }\r\n\r\n public showWaitlist(): boolean {\r\n if (!this.registrationService.isPaidEvent()) {\r\n return (\r\n this.event.showWaitlist &&\r\n this.event.isCapacityRestricted &&\r\n (this.hasAttendeeCountReachedEventCapacity() ||\r\n this.waitlistedAttendees.length > 0)\r\n );\r\n }\r\n\r\n return this.event.showWaitlist && (this.allPassesSoldOut() || this.hasAttendeeCountReachedEventCapacity());\r\n }\r\n\r\n public isAllowedToCreateNewAttendee(): boolean {\r\n return !this.event.enableMultiAttendeeRegistration && this.attendees.length === 1;\r\n }\r\n\r\n public isAttendeeCountExceedingEventCapacity(): boolean {\r\n return this.registrationService.getAvailableEventCapacity() < 0;\r\n }\r\n\r\n public hasAttendeeCountReachedEventCapacity(): boolean {\r\n return this.registrationService.getAvailableEventCapacity() === 0;\r\n }\r\n\r\n private allPassesSoldOut(): boolean {\r\n for (const pass of this.passes) {\r\n if (pass.numberOfPassesLeft > pass.passesUsed) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n /**\r\n * Catch form notifications and localized errors\r\n */\r\n public catchNotificationFormError = (notification: any) => {\r\n if(notification !== null && notification.IsError === true){\r\n this.error = new LocalizableError(notification.Message, null);\r\n this.hideLoader();\r\n }\r\n }\r\n \r\n /**\r\n * Hides page loader and manually triggers angular change detection\r\n */\r\n public hideLoader(){\r\n this.cntActiveDataRetrievals = 0;\r\n this.changeDetectionRef.detectChanges();\r\n }\r\n\r\n /**\r\n * Method triggered on \"formSubmit\" event of marketing forms\r\n * Sets extra values for marketing forms such as candidate waitlisting, autoregister\r\n * and attendee session \r\n */\r\n public onSubmitEvent(event: any) {\r\n event.setExtraValue(\"d365mktEvent_waitlisted\", this.waitlisted);\r\n event.setExtraValue(\"d365mktEvent_autoRegister\", this.autoRegister);\r\n \r\n var sessions = this.getSessionsInCart();\r\n event.setExtraValue(\"d365mktEvent_attendeeSessions\", JSON.stringify(sessions));\r\n\r\n // if we have any active errors, clear them on submit and trigger change detection\r\n if(this.error) {\r\n this.error = null;\r\n }\r\n \r\n // NOTE : Uncommenting this line will result in creating a better user experience by starting\r\n // the loader whenever the submit button is executed. Keep commented until browser isssue is resolved\r\n this.cntActiveDataRetrievals += 1;\r\n this.changeDetectionRef.detectChanges();\r\n }\r\n\r\n /**\r\n * Method triggered on \"onFormLoad\" event of marketing forms\r\n * Registers form notification on error and prevents form loader to execute\r\n */\r\n public onFormRegistrationLoad(event: any) {\r\n event.setFormNotification(this.catchNotificationFormError);\r\n event.preventFormLoadingProgressBar();\r\n }\r\n\r\n /**\r\n * Method triggered on \"afterFormLoad\" event of marketing forms\r\n * After form has loaded, the loader becomes hidden \r\n */\r\n public afterFormRegistrationLoaded(event: any) {\r\n this.hideLoader();\r\n }\r\n\r\n /**\r\n * Method triggered on \"afterFormSubmit\" event of marketing forms\r\n * This is triggered only on a successfull submission \r\n */\r\n public onSubmitSuccessfull(event: any) {\r\n this.hideLoader();\r\n const _this = this;\r\n this.ngZone.run(() => {\r\n this.router.navigate(['../confirmation'], {\r\n relativeTo: _this.route,\r\n queryParams: {\r\n id: _this.event.readableEventId\r\n }\r\n });\r\n })\r\n }\r\n\r\n public addAttendee(attendee: Attendee, waitlisted: boolean): void {\r\n if (this.isAttendeeCountExceedingEventCapacity()) {\r\n this.showEventCapacityExceedingErrorMessage();\r\n return;\r\n }\r\n\r\n if (waitlisted) {\r\n this.waitlistedAttendees.push(attendee);\r\n } else {\r\n this.registrationService.addAttendee(attendee);\r\n this.clearForms();\r\n }\r\n\r\n if (this.isAttendeeCountExceedingEventCapacity()) {\r\n this.showEventCapacityExceedingErrorMessage();\r\n }\r\n\r\n if (this.hasAttendeeCountReachedEventCapacity()) {\r\n this.showEventCapacityReachedErrorMessage();\r\n }\r\n\r\n this.updateTotal(null, attendee.passId);\r\n }\r\n\r\n private getSessionsInCart(): Session[] {\r\n var attendeeSessions = undefined;\r\n if(this.registrationService.isSessionCartEnabled()) {\r\n this.registrationService.sessionsInCart$.subscribe(sessions => {\r\n attendeeSessions = sessions.map(session => {\r\n let isSessionFull = false;\r\n if (\r\n session.registrationCount >= session.maxCapacity &&\r\n session.isCapacityRestricted &&\r\n this.event.showWaitlist\r\n ) {\r\n isSessionFull = true;\r\n }\r\n\r\n const attendeeSession: AttendeeSessions = {\r\n sessionId: session.id,\r\n waitlisted: isSessionFull\r\n };\r\n\r\n return attendeeSession;\r\n })\r\n });\r\n }\r\n return attendeeSessions;\r\n }\r\n\r\n private removeAttendee(attendee: Attendee, waitlisted: boolean): void {\r\n const index = this.findAttendeeIndex(attendee, waitlisted);\r\n if (index !== -1) {\r\n if (waitlisted) {\r\n this.waitlistedAttendees.splice(index, 1);\r\n } else {\r\n const removedPassId = this.attendees[index].passId;\r\n this.registrationService.removeAttendee(index);\r\n\r\n // Move the first waitlisted attendee to the registrants\r\n if (this.waitlistedAttendees.length > 0) {\r\n if (this.registrationService.isPaidEvent()) {\r\n /* for paid events we cannot just move the first waitlisted attendee to attendees\r\n as there may be a conflict with passes try to find a waitlisted attendee that wants\r\n to buy the same pass that the removed attendee had and move that one */\r\n const idx = this.indexOfFirstWaitlistedAttendeeWithPassId(removedPassId);\r\n if (idx !== -1) {\r\n this.attendees.push(this.waitlistedAttendees[idx]);\r\n this.waitlistedAttendees.splice(idx, 1);\r\n }\r\n } else {\r\n // for unpaid events we can just move any of the waitlisted attendees\r\n this.attendees.push(this.waitlistedAttendees[0]);\r\n this.waitlistedAttendees.splice(0, 1);\r\n }\r\n }\r\n }\r\n\r\n this.updateTotal(attendee.passId, null);\r\n }\r\n\r\n this.clearForms();\r\n }\r\n\r\n /**\r\n * Finds the index of the first waitlisted attendee with a specified pass\r\n * @param passId The pass id\r\n */\r\n private indexOfFirstWaitlistedAttendeeWithPassId(passId: string) {\r\n return this.waitlistedAttendees.findIndex(a => a.passId === passId);\r\n }\r\n\r\n /**\r\n * Event handler for the update attendee event of the attendee component\r\n * @param attendees An array of length 2, the first item being the attendee before the update operation,\r\n * the second is the attendee after the update\r\n * @param waitlisted Whether the attendee updated is in the waitlist or not\r\n */\r\n private updateAttendee(attendees: Attendee[], waitlisted: boolean): void {\r\n const index = this.findAttendeeIndex(attendees[0], waitlisted);\r\n if (index !== -1) {\r\n if (waitlisted) {\r\n this.waitlistedAttendees[index] = attendees[1];\r\n } else {\r\n const attendee = attendees[1];\r\n this.attendees[index] = attendee;\r\n this.clearForms();\r\n }\r\n\r\n this.updateTotal(attendees[0].passId, attendees[1].passId);\r\n }\r\n }\r\n\r\n private attendeeEditingStateChanged(newEditingState: boolean) {\r\n if (newEditingState) {\r\n this.attendeeEditingCount++;\r\n } else {\r\n if (this.attendeeEditingCount > 0) {\r\n this.attendeeEditingCount--;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Finds the index of the attendee\r\n * @param attendee The attendee\r\n * @param waitlisted If true the waitlisted attendee list will be searched, otherwise the attendee list\r\n */\r\n private findAttendeeIndex(attendee: Attendee, waitlisted: boolean): number {\r\n return waitlisted\r\n ? this.waitlistedAttendees.findIndex(\r\n a =>\r\n a.firstName === attendee.firstName &&\r\n a.lastName === attendee.lastName &&\r\n a.email === attendee.email\r\n )\r\n : this.attendees.findIndex(\r\n a =>\r\n a.firstName === attendee.firstName &&\r\n a.lastName === attendee.lastName &&\r\n a.email === attendee.email\r\n );\r\n }\r\n\r\n private updateTotal(passIdToRemove: string, passIdToAdd: string): void {\r\n if (passIdToRemove != null) {\r\n this.total -= this.findPassValue(passIdToRemove);\r\n }\r\n\r\n if (passIdToAdd != null) {\r\n this.total += this.findPassValue(passIdToAdd);\r\n }\r\n }\r\n\r\n private findPassValue(passId: string): number {\r\n if (this.passes == null) {\r\n return 0.0;\r\n }\r\n const pass: Pass = this.passes.find(p => p.passId === passId);\r\n if (pass) {\r\n this.currencySymbol = pass.currencySymbol;\r\n return pass.price;\r\n } else {\r\n return 0.0;\r\n }\r\n }\r\n\r\n public async checkout(): Promise {\r\n this.registrationInProgress = true;\r\n\r\n if (this.isAttendeeFormValid()) {\r\n this.attendeeComponent.confirmEdit();\r\n }\r\n\r\n if (this.isAttendeeCountExceedingEventCapacity()) {\r\n this.showEventCapacityExceedingErrorMessage();\r\n this.registrationInProgress = false;\r\n return;\r\n }\r\n\r\n const registrationResult = await this.createRegistrationData();\r\n this.registerToEvent(registrationResult);\r\n }\r\n\r\n private async createRegistrationData(): Promise {\r\n let hipObjectResult: HipObject = CaptchaService.EmptyHipObject;\r\n\r\n if (this.event.enableCaptcha) {\r\n hipObjectResult = this.captchaService.getHipObject();\r\n }\r\n\r\n if (this.registrationService.isPaidEvent()) {\r\n this.browserSessionService.setCaptcha(hipObjectResult);\r\n }\r\n\r\n if (this.isAttendeeFormValid()) {\r\n this.attendeeComponent.confirmEdit();\r\n }\r\n\r\n let attendeesToSend: Attendee[] = [];\r\n attendeesToSend = attendeesToSend.concat(this.attendees);\r\n attendeesToSend = attendeesToSend.concat(this.waitlistedAttendees);\r\n\r\n const registrationData: RegistrationData = {\r\n attendees: attendeesToSend,\r\n hipObject: hipObjectResult\r\n };\r\n\r\n if (!this.event.enableCaptcha) {\r\n registrationData.hipObject = undefined;\r\n }\r\n\r\n return registrationData;\r\n }\r\n\r\n private registerToEvent(registrationData: RegistrationData) {\r\n this.eventService\r\n .registerToEvent(this.readableEventId, registrationData)\r\n .subscribe(\r\n registrationResult => {\r\n if (registrationResult.status === 'Success') {\r\n this.router.navigate(['../confirmation'], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n id: this.event.readableEventId\r\n }\r\n });\r\n } else if (registrationResult.status === 'Initiated') {\r\n this.browserSessionService.setPurchaseId(registrationResult.purchaseId);\r\n this.browserSessionService.setRegistrationTotal(this.total);\r\n this.browserSessionService.setCurrency(this.currencySymbol);\r\n this.router.navigate(['../payment'], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n id: this.event.readableEventId,\r\n currencySymbol: this.currencySymbol,\r\n purchaseId: registrationResult.purchaseId\r\n }\r\n });\r\n } else if (registrationResult.status === 'Redirect') {\r\n this.browserSessionService.setPurchaseId(registrationResult.purchaseId);\r\n this.browserSessionService.setRegistrationTotal(this.total);\r\n this.browserSessionService.setCurrency(this.currencySymbol);\r\n window.location.href = registrationResult.redirectUrl;\r\n } else {\r\n let errorMessage = 'Event registration failed.';\r\n let errorCode = TranslationKeys.RegistrationFailed;\r\n\r\n if (registrationResult.errorMessage != null && registrationResult.errorMessage !== '') {\r\n errorMessage = registrationResult.errorMessage;\r\n }\r\n\r\n if (registrationResult.errorCode != null && registrationResult.errorCode !== '') {\r\n errorCode = registrationResult.errorCode;\r\n }\r\n\r\n this.error = new LocalizableError(errorMessage, errorCode);\r\n this.registrationInProgress = false;\r\n this.captchaComponent.reloadCaptcha();\r\n }\r\n },\r\n (error: LocalizableError) => this.handleErrorResponse(error)\r\n )\r\n .add(() => {\r\n this.registrationInProgress = false;\r\n });\r\n }\r\n\r\n private showEventCapacityExceedingErrorMessage() {\r\n this.error = new LocalizableError(\r\n 'You cannot register that many attendees because the maximum event capacity is already reached.',\r\n TranslationKeys.EventCapacityExceeding\r\n );\r\n }\r\n\r\n private showEventCapacityReachedErrorMessage() {\r\n this.error = new LocalizableError(\r\n 'The events maximum capacity has been reached.',\r\n TranslationKeys.EventCapacityReached\r\n );\r\n }\r\n\r\n private autoregisterWaitlistItems(): boolean {\r\n return this.event.autoregisterWaitlistItems;\r\n }\r\n\r\n private changeFormValidationStatus(validationStatus) {\r\n this.formValidationStatus = validationStatus;\r\n }\r\n\r\n private async subscribeToAttendees() {\r\n this.registrationService.attendees$.subscribe(attendees => {\r\n this.attendees = attendees;\r\n });\r\n }\r\n}\r\n\r\nexport enum EventCheckoutRoutePaths {\r\n REGISTRATION = \"event/registration\",\r\n CONFIRMATION = \"event/confirmation\",\r\n PAYMENT = \"event/payment\",\r\n SUCCESS_PAYMENT = \"event/successpayment\"\r\n}\r\n","import { Component, OnInit, Input, Directive, ElementRef } from '@angular/core';\r\nimport { SafeHtml } from '@angular/platform-browser';\r\nimport { LabelsService } from '../../../services/labels.service';\r\nimport { IFormHandler } from '../eventregistration.component';\r\ndeclare var MsCrmMkt:any;\r\n\r\n/**\r\n * This directive responsible for :\r\n * - Moving the marketing forms script outside of the Angular Framework scope\r\n * - Capturing and initializing the Marketing forms loader\r\n */\r\n@Directive({ selector: '[registration-form-initializer]' })\r\nexport class RegistrationFormInitializerDirective implements OnInit {\r\n @Input() public formHandler: IFormHandler;\r\n\r\n constructor(private elementRef: ElementRef,\r\n private labelsService: LabelsService) { }\r\n\r\n ngOnInit(): void {\r\n setTimeout(() => {\r\n this.reinsertScripts();\r\n })\r\n }\r\n\r\n reinsertScripts(): void {\r\n const externalScriptId = \"external-scripts\";\r\n const scripts = this.elementRef.nativeElement.getElementsByTagName('script');\r\n const scriptsInitialLength = scripts.length;\r\n\r\n var externalScripts = document.getElementById(externalScriptId);\r\n if(!externalScripts){\r\n externalScripts = document.createElement(\"div\");\r\n externalScripts.id = externalScriptId;\r\n document.body.appendChild(externalScripts);\r\n }\r\n \r\n externalScripts.innerHTML = \"\";\r\n this.resetMsCrmMkt();\r\n window[\"d365mktConfigure\"] = this.d365mktConfigure.bind(this);\r\n \r\n for (let i = 0; i < scriptsInitialLength; i++) {\r\n const script = scripts[i];\r\n const scriptCopy = document.createElement('script');\r\n scriptCopy.type = script.type ? script.type : 'text/javascript';\r\n scriptCopy.async = false;\r\n\r\n if (script.innerHTML) {\r\n scriptCopy.innerHTML = script.innerHTML;\r\n } else if (script.src) {\r\n scriptCopy.src = script.src;\r\n }\r\n\r\n document.getElementById(externalScriptId).appendChild(scriptCopy);\r\n scripts[i].remove();\r\n }\r\n }\r\n\r\n resetMsCrmMkt(){\r\n try {\r\n MsCrmMkt = null;\r\n } catch {\r\n /* Disolve exception */\r\n }\r\n }\r\n\r\n public d365mktConfigure = function(){\r\n if(MsCrmMkt) {\r\n const currentLanguageCode = this.labelsService.getCurrentLanguageCode();\r\n const _this = this;\r\n MsCrmMkt.MsCrmFormLoader.uiLanguage = currentLanguageCode;\r\n\r\n MsCrmMkt.MsCrmFormLoader.off(\"afterFormSubmit\");\r\n MsCrmMkt.MsCrmFormLoader.on(\"afterFormSubmit\", function(event: any) {\r\n _this.formHandler.onSubmitSuccessfull(event)\r\n });\r\n\r\n MsCrmMkt.MsCrmFormLoader.off(\"formLoad\");\r\n MsCrmMkt.MsCrmFormLoader.on(\"formLoad\", function(event: any) {\r\n _this.formHandler.onFormRegistrationLoad(event);\r\n });\r\n\r\n MsCrmMkt.MsCrmFormLoader.off(\"afterFormLoad\");\r\n MsCrmMkt.MsCrmFormLoader.on(\"afterFormLoad\", function(event: any) {\r\n _this.formHandler.afterFormRegistrationLoaded(event);\r\n });\r\n \r\n MsCrmMkt.MsCrmFormLoader.off(\"formSubmit\");\r\n MsCrmMkt.MsCrmFormLoader.on(\"formSubmit\", (event: any) => {\r\n _this.formHandler.onSubmitEvent(event);\r\n });\r\n }\r\n\r\n return false;\r\n };\r\n}\r\n\r\n@Component({\r\n selector: '[event-registration-form]',\r\n templateUrl: './eventregistrationform.component.html'\r\n})\r\nexport class EventRegistrationFormComponent implements OnInit{\r\n @Input() public eventmarketingformhtml: SafeHtml;\r\n @Input() public formHandler: IFormHandler;\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n\r\n","module.exports = \".modal-header {\\r\\n border-bottom: 0 none;\\r\\n}\\r\\n\\r\\n.modal-footer {\\r\\n border-top: 0 none;\\r\\n}\\r\\n\\r\\n.btn-primary {\\r\\n background-color: #006ADB;\\r\\n}\\r\\n\\r\\n.btn-primary:hover {\\r\\n color: #fff;\\r\\n background-color: #005BBD;\\r\\n border-color: #0062cc;\\r\\n}\\r\\n\\r\\n.btn-primary:focus { \\r\\n outline: 1px dashed transparent; \\r\\n outline-offset: 2px; \\r\\n}\\r\\n\\r\\n.btn-outline-dark:focus {\\r\\n outline: 1px dashed transparent; \\r\\n outline-offset: 2px; \\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudHJlZ2lzdHJhdGlvbi9tb2RhbC9tb2RhbC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0kscUJBQXFCO0FBQ3pCOztBQUVBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksV0FBVztJQUNYLHlCQUF5QjtJQUN6QixxQkFBcUI7QUFDekI7O0FBRUE7SUFDSSwrQkFBK0I7SUFDL0IsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksK0JBQStCO0lBQy9CLG1CQUFtQjtBQUN2QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZXZlbnRyZWdpc3RyYXRpb24vbW9kYWwvbW9kYWwuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tb2RhbC1oZWFkZXIge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMCBub25lO1xyXG59XHJcblxyXG4ubW9kYWwtZm9vdGVyIHtcclxuICAgIGJvcmRlci10b3A6IDAgbm9uZTtcclxufVxyXG5cclxuLmJ0bi1wcmltYXJ5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDZBREI7XHJcbn1cclxuXHJcbi5idG4tcHJpbWFyeTpob3ZlciB7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDVCQkQ7XHJcbiAgICBib3JkZXItY29sb3I6ICMwMDYyY2M7XHJcbn1cclxuXHJcbi5idG4tcHJpbWFyeTpmb2N1cyB7IFxyXG4gICAgb3V0bGluZTogMXB4IGRhc2hlZCB0cmFuc3BhcmVudDsgXHJcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4OyBcclxufVxyXG5cclxuLmJ0bi1vdXRsaW5lLWRhcms6Zm9jdXMge1xyXG4gICAgb3V0bGluZTogMXB4IGRhc2hlZCB0cmFuc3BhcmVudDsgXHJcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4OyBcclxufSJdfQ== */\"","import { Component, Input, OnInit, ViewChild, Output, EventEmitter, ElementRef } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { LabelsService } from '../../../services/labels.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ngbd-modal-content',\r\n styleUrls: ['./modal.component.css'],\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class NgbdModalContent implements OnInit {\r\n\r\n @Input() titleTranslate: string;\r\n @Input() title: string;\r\n @Input() messageTranslate: string;\r\n @Input() message: string;\r\n @Input() primaryButton: string;\r\n @Input() primaryButtonTranslate: string;\r\n @Input() secondaryButton: string;\r\n @Input() secondaryButtonTranslate: string;\r\n @Input() extraParams: string[];\r\n @ViewChild('actionButton',{ static: false}) actionButton: ElementRef;\r\n @ViewChild('closeButton', { static: false}) closeButton: ElementRef;\r\n\r\n constructor(public activeModal: NgbActiveModal, private labelsService: LabelsService) {}\r\n\r\n ngOnInit() {\r\n document.getElementById('actionButton').focus();\r\n }\r\n\r\n translateLabelWithParams(translationKey: string, defaultValue: string, params): Observable {\r\n return this.labelsService.translateLabelWithParams(translationKey, defaultValue, params);\r\n }\r\n\r\n getTranslationForTitle() {\r\n return this.titleTranslate;\r\n }\r\n\r\n getTranslationForMessage() {\r\n return this.messageTranslate;\r\n }\r\n\r\n getTranslationForPrimaryButton() {\r\n return this.primaryButtonTranslate;\r\n }\r\n\r\n getTranslationForSecondaryButton() {\r\n return this.secondaryButtonTranslate;\r\n }\r\n\r\n getMessage() {\r\n return this.message;\r\n }\r\n\r\n getExtraParams() {\r\n return this.extraParams;\r\n }\r\n}","module.exports = \".checkout-container {\\r\\n padding-top: 2em;\\r\\n float: right;\\r\\n}\\r\\n\\r\\n.checkout .card .card-header,\\r\\n.checkout .card .card-footer {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.page-header {\\r\\n padding-top: 30px;\\r\\n margin: 42px 0 21px;\\r\\n}\\r\\n\\r\\nbutton:focus.electricblue, button:hover.electricblue {\\r\\n background: #2447b3;\\r\\n}\\r\\n\\r\\n.makePayment {\\r\\n background: #459fff;\\r\\n}\\r\\n\\r\\n.payment-actions div {\\r\\n display: block;\\r\\n width: 100%;\\r\\n }\\r\\n\\r\\n.payment-actions div:nth-child(2) {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.payment-actions {\\r\\n display: flex;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudHJlZ2lzdHJhdGlvbi9wYXltZW50ZGVtby9wYXltZW50LmRlbW8uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksZ0JBQWdCO0lBQ2hCLFlBQVk7QUFDaEI7O0FBRUE7O0lBRUksV0FBVztBQUNmOztBQUVBO0lBQ0ksaUJBQWlCO0lBQ2pCLG1CQUFtQjtBQUN2Qjs7QUFDQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7SUFDZCxXQUFXO0NBQ2Q7O0FBRUQ7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxhQUFhO0FBQ2pCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9ldmVudHJlZ2lzdHJhdGlvbi9wYXltZW50ZGVtby9wYXltZW50LmRlbW8uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNoZWNrb3V0LWNvbnRhaW5lciB7XHJcbiAgICBwYWRkaW5nLXRvcDogMmVtO1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG59XHJcblxyXG4uY2hlY2tvdXQgLmNhcmQgLmNhcmQtaGVhZGVyLFxyXG4uY2hlY2tvdXQgLmNhcmQgLmNhcmQtZm9vdGVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ucGFnZS1oZWFkZXIge1xyXG4gICAgcGFkZGluZy10b3A6IDMwcHg7XHJcbiAgICBtYXJnaW46IDQycHggMCAyMXB4O1xyXG59ICAgIFxyXG5idXR0b246Zm9jdXMuZWxlY3RyaWNibHVlLCBidXR0b246aG92ZXIuZWxlY3RyaWNibHVlIHtcclxuICAgIGJhY2tncm91bmQ6ICMyNDQ3YjM7XHJcbn1cclxuXHJcbi5tYWtlUGF5bWVudCB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjNDU5ZmZmO1xyXG59XHJcblxyXG4ucGF5bWVudC1hY3Rpb25zIGRpdiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gfVxyXG5cclxuLnBheW1lbnQtYWN0aW9ucyBkaXY6bnRoLWNoaWxkKDIpIHtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcblxyXG4ucGF5bWVudC1hY3Rpb25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuIl19 */\"","import { EVENT_SERVICE } from './../../../providers/service.providers';\r\nimport { FinalizeRegistrationRequest } from './../../../models/FinalizeRegistrationRequest';\r\nimport { HipObject } from './../../../models/HipObject';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { EventService } from 'src/app/services/event.service';\r\nimport { BrowserSessionService } from '../../../services/browser-session.service';\r\nimport { TranslationKeys } from 'src/app/constants/TranslationKeys';\r\nimport { LocalizableError } from 'src/app/models/LocalizableError';\r\n\r\n@Component({\r\n selector: 'app-payment-demo',\r\n templateUrl: './payment.demo.html',\r\n styleUrls: ['./payment.demo.css']\r\n})\r\nexport class PaymentDemoComponent implements OnInit {\r\n public error: LocalizableError;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n @Inject(EVENT_SERVICE) private eventService: EventService,\r\n private browserSessionService: BrowserSessionService,\r\n ) { }\r\n\r\n total: number;\r\n currencySymbol: string;\r\n\r\n registrationInProgress: boolean;\r\n\r\n private readableEventId: string;\r\n private purchaseId: string;\r\n\r\n ngOnInit() {\r\n this.total = this.browserSessionService.getRegistrationTotal();\r\n this.currencySymbol = this.route.snapshot.queryParams['currencySymbol'];\r\n this.purchaseId = this.route.snapshot.queryParams['purchaseId'];\r\n this.readableEventId = this.route.snapshot.queryParams['id'];\r\n }\r\n\r\n cancel(): void {\r\n this.router.navigate(['/event', this.readableEventId]);\r\n }\r\n\r\n finalizePurchase(): void {\r\n this.registrationInProgress = true;\r\n\r\n const requestData: FinalizeRegistrationRequest = {\r\n purchaseId: this.purchaseId,\r\n hipObject: this.browserSessionService.getCaptcha()\r\n };\r\n\r\n this.eventService.finalizeRegistration(this.readableEventId, requestData).subscribe(registrationResult => {\r\n if (registrationResult.status === 'Success') {\r\n this.router.navigate(['../confirmation'], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n id: this.readableEventId\r\n }\r\n });\r\n } else {\r\n this.error = new LocalizableError(registrationResult.errorMessage, TranslationKeys.RegistrationFailed);\r\n }\r\n }, (error: LocalizableError) => this.handleErrorResponse(error))\r\n .add(() => {\r\n this.registrationInProgress = false;\r\n });\r\n }\r\n\r\n private handleErrorResponse(error: LocalizableError) {\r\n this.error = error;\r\n }\r\n}\r\n","import { Inject, Injectable} from '@angular/core';\r\nimport { RegistrationService } from './registration.service';\r\nimport { ActiveEventService } from 'src/app/services/active-event.service';\r\nimport { SessionCartService } from '../event/session-cart/session-cart.service';\r\nimport { EventService } from 'src/app/services/event.service';\r\nimport { EVENT_SERVICE } from 'src/app/providers/service.providers';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RegistrationServiceFactory {\r\n private registrationServices: Map;\r\n\r\n constructor(\r\n @Inject(EVENT_SERVICE) private eventService: EventService,\r\n private activeEventService: ActiveEventService,\r\n private sessionCartService: SessionCartService\r\n ) {\r\n this.registrationServices = new Map();\r\n }\r\n\r\n public async create(readableEventId: string): Promise {\r\n if (this.registrationServices.has(readableEventId)) {\r\n return this.registrationServices.get(readableEventId);\r\n }\r\n\r\n const registrationService = new RegistrationService(\r\n this.eventService,\r\n this.activeEventService,\r\n this.sessionCartService,\r\n readableEventId\r\n );\r\n\r\n await registrationService.initializeRegistration();\r\n\r\n this.registrationServices.set(readableEventId, registrationService);\r\n\r\n return registrationService;\r\n }\r\n\r\n /**\r\n * This method should be called as soon as the registration service for the specified\r\n * readable event id is not needed anymore.\r\n */\r\n public dispose(readableEventId: string): void {\r\n if (this.registrationServices.has(readableEventId)) {\r\n const registrationServiceToDispose = this.registrationServices.get(readableEventId);\r\n registrationServiceToDispose.dispose();\r\n\r\n this.registrationServices.delete(readableEventId);\r\n }\r\n }\r\n}\r\n","import { Session } from 'src/app/models/Session';\r\nimport { ActiveEventService } from 'src/app/services/active-event.service';\r\nimport { SessionCartService } from '../event/session-cart/session-cart.service';\r\nimport { Attendee } from 'src/app/models/Attendee';\r\nimport { AttendeeSessions } from 'src/app/models/AttendeeSessions';\r\nimport { Event } from 'src/app/models/Event';\r\nimport { Pass } from 'src/app/models/Pass';\r\nimport { Subscription, Observable, BehaviorSubject } from 'rxjs';\r\nimport { EventService } from 'src/app/services/event.service';\r\n\r\n/**\r\n * This service is supposed contain all business logic required for making a registration (event and session).\r\n * For now, it only contains the logic for session registration.\r\n * For the future we will extract all the business logic that is within the view components into\r\n * this service (or, if required multiple services).\r\n */\r\nexport class RegistrationService {\r\n /**\r\n * An observable of all attendee(s) that should be registered for the specified session(s).\r\n */\r\n public readonly attendees$: Observable;\r\n\r\n /**\r\n * An observable of all sessions that the attendee(s) should be registered to.\r\n */\r\n public readonly sessionsInCart$: Observable;\r\n\r\n /**\r\n * An observable that specifies whether the user should be able to choose enabling\r\n * the auto registration functionality or not.\r\n */\r\n public readonly canUserChooseAutoRegisterFunctionality$: Observable;\r\n\r\n /**\r\n * The readable event ID for the event that the attendees should be registered for.\r\n */\r\n private readableEventId;\r\n\r\n private _attendees: BehaviorSubject = new BehaviorSubject([]);\r\n\r\n private _sessionsInCart: BehaviorSubject = new BehaviorSubject([]);\r\n\r\n private _canUserChooseAutoRegisterFunctionality: BehaviorSubject = new BehaviorSubject(false);\r\n\r\n /**\r\n * The event that the attendee(s) should be registered to.\r\n */\r\n private event: Event;\r\n\r\n /**\r\n * The number of registered attendees for the event.\r\n */\r\n private eventRegistrationCount: number;\r\n\r\n /**\r\n * The passes of the event. If passes are available, it means that the event is paid.\r\n */\r\n private passes: Array;\r\n\r\n private subscriptions: Array = [];\r\n\r\n public sessions: Session[];\r\n public showSessions: Boolean;\r\n\r\n constructor(\r\n private eventService: EventService,\r\n private activeEventService: ActiveEventService,\r\n private sessionCartService: SessionCartService,\r\n readableEventId: string\r\n ) {\r\n this.readableEventId = readableEventId;\r\n\r\n this.attendees$ = this._attendees.asObservable();\r\n this.sessionsInCart$ = this._sessionsInCart.asObservable();\r\n this.canUserChooseAutoRegisterFunctionality$ = this._canUserChooseAutoRegisterFunctionality.asObservable();\r\n }\r\n\r\n /**\r\n * Retrieves and subscribes to all data that is required for a registration.\r\n */\r\n public async initializeRegistration() {\r\n await this.retrieveAndSubscribeToEvent();\r\n await this.retrieveAndSubscribeToEventRegistrationCount();\r\n await this.retrieveAndSubscribeToPasses();\r\n await this.retrieveAndSubscribeToSessionCart();\r\n try {\r\n this.sessions = await this.activeEventService.getSessions(this.readableEventId).toPromise();\r\n this.showSessions = this.sessions && this.sessions.length > 0;\r\n } catch {\r\n \r\n }\r\n }\r\n\r\n public addAttendee(attendeeToAdd: Attendee): void {\r\n this._attendees.getValue().push(attendeeToAdd);\r\n this.updateAllAttendeesSessionRegistrationData();\r\n }\r\n\r\n public removeAttendee(indexOfAttendeeToRemove: number): void {\r\n this._attendees.getValue().splice(indexOfAttendeeToRemove, 1);\r\n this.updateAllAttendeesSessionRegistrationData();\r\n }\r\n\r\n // NOTE: This logic does not really belong here. It should be within the event model.\r\n // However, as we currently have no separation between models and DTOs, all models are implemented as\r\n // interfaces. Therefore, it's currently not possible to move this logic to the model.\r\n public isPaidEvent(): boolean {\r\n if (this.event == null || this.passes == null) {\r\n return false;\r\n }\r\n\r\n return this.passes.length > 0;\r\n }\r\n\r\n /**\r\n * Specified whether the registration contains event or session waitlist items.\r\n */\r\n public isEventOrAnySessionFull(): boolean {\r\n if (this.isEventFull()) {\r\n return true;\r\n }\r\n\r\n if (this.isAnySessionFull()) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public isEventFull(): boolean {\r\n if (this.getAvailableEventCapacity() <= 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public isAnySessionFull(): boolean {\r\n const isAnySessionFull = this._sessionsInCart.getValue().filter(session => this.isSessionFull(session));\r\n\r\n return isAnySessionFull.length > 0;\r\n }\r\n\r\n /**\r\n * Returns the available capacity of the event. Attendees in checkout process are included.\r\n * If max capacity is not restricted, MAX_INT is returned.\r\n */\r\n public getAvailableEventCapacity(): number {\r\n if (!this.event.isCapacityRestricted) {\r\n return Number.MAX_SAFE_INTEGER;\r\n }\r\n\r\n return (\r\n this.event.maxCapacity -\r\n this.eventRegistrationCount -\r\n this._attendees.getValue().length\r\n );\r\n }\r\n\r\n public dispose(): void {\r\n this._sessionsInCart.complete();\r\n this._attendees.complete();\r\n\r\n this.subscriptions.forEach(subscription => {\r\n subscription.unsubscribe();\r\n });\r\n }\r\n\r\n /**\r\n * Updates the session information (e.g. is session waitlisted for certain attendee or not) for all attendees.\r\n * This function should always be triggered when there is a change in the number of attendees or sessions.\r\n */\r\n private updateAllAttendeesSessionRegistrationData(): void {\r\n if (!this.isSessionCartEnabled()) {\r\n // no need to update attendee registration data if session registration is not allowed.\r\n return;\r\n }\r\n\r\n const attendees = this._attendees.getValue();\r\n\r\n for (let i = 0; i < attendees.length; i++) {\r\n const attendee = attendees[i];\r\n\r\n attendee.attendeeSessions = this._sessionsInCart\r\n .getValue()\r\n .map(session => {\r\n let isSessionFull = false;\r\n if (\r\n session.registrationCount + i >= session.maxCapacity &&\r\n session.isCapacityRestricted &&\r\n this.event.showWaitlist\r\n ) {\r\n isSessionFull = true;\r\n }\r\n\r\n const attendeeSession: AttendeeSessions = {\r\n sessionId: session.id,\r\n waitlisted: isSessionFull\r\n };\r\n\r\n return attendeeSession;\r\n });\r\n }\r\n\r\n this._attendees.next(attendees);\r\n }\r\n\r\n /**\r\n * Specifies whether the user is allowed to enable auto event registration functionality for waitlist or not.\r\n */\r\n private updateCanUserChooseAutoRegisterFunctionality(): void {\r\n if (!this.event.showAutomaticRegistrationCheckbox) {\r\n this._canUserChooseAutoRegisterFunctionality.next(false);\r\n return;\r\n }\r\n\r\n if (this.event.autoregisterWaitlistItems) {\r\n this._canUserChooseAutoRegisterFunctionality.next(false);\r\n return;\r\n }\r\n\r\n if (this.passes != null && this.passes.length > 0) {\r\n this._canUserChooseAutoRegisterFunctionality.next(false);\r\n return;\r\n }\r\n\r\n if (!this.isEventOrAnySessionFull()) {\r\n this._canUserChooseAutoRegisterFunctionality.next(false);\r\n return;\r\n }\r\n\r\n this._canUserChooseAutoRegisterFunctionality.next(true);\r\n }\r\n\r\n // Note: This function should be refactored to session model (as soon as there are models and not only DTOs).\r\n private isSessionFull(session: Session): boolean {\r\n if (!session.isCapacityRestricted) {\r\n return false;\r\n }\r\n\r\n if (session.registrationCount + this._attendees.getValue().length < session.maxCapacity ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public isSessionCartEnabled(): boolean {\r\n return this.sessionCartService.isSessionCartEnabledForEvent(\r\n this.event,\r\n !this.isPaidEvent(),\r\n this._sessionsInCart.getValue().length > 0\r\n );\r\n }\r\n\r\n private async refreshSessionsInCart(sessionIds: string[]): Promise {\r\n const sessionsInCart = await this.activeEventService.getAndFilterSessions(this.readableEventId, true, sessionIds).toPromise();\r\n this._sessionsInCart.next(sessionsInCart);\r\n\r\n this.updateAllAttendeesSessionRegistrationData();\r\n }\r\n\r\n private async retrieveAndSubscribeToEventRegistrationCount(): Promise {\r\n const updateEventRegistrationCount = (eventRegistrationCount: number) => {\r\n this.eventRegistrationCount = eventRegistrationCount;\r\n this.updateCanUserChooseAutoRegisterFunctionality();\r\n };\r\n\r\n await this.eventService\r\n .getEventRegistrationCount(this.readableEventId)\r\n .toPromise()\r\n .then(updateEventRegistrationCount);\r\n\r\n const subscription = this.eventService\r\n .getEventRegistrationCount(this.readableEventId)\r\n .subscribe(updateEventRegistrationCount);\r\n\r\n this.subscriptions.push(subscription);\r\n }\r\n\r\n private async retrieveAndSubscribeToEvent(): Promise {\r\n const updateEvent = (event: Event) => {\r\n this.event = event;\r\n this.updateCanUserChooseAutoRegisterFunctionality();\r\n };\r\n\r\n await this.activeEventService\r\n .getEvent(this.readableEventId)\r\n .toPromise()\r\n .then(updateEvent);\r\n\r\n const subscription = this.activeEventService\r\n .getEvent(this.readableEventId)\r\n .subscribe(updateEvent);\r\n\r\n this.subscriptions.push(subscription);\r\n }\r\n\r\n private async retrieveAndSubscribeToPasses(): Promise {\r\n const updatePasses = (passes: Pass[]) => {\r\n this.passes = passes;\r\n this.updateCanUserChooseAutoRegisterFunctionality();\r\n };\r\n\r\n await this.eventService\r\n .getPasses(this.readableEventId)\r\n .toPromise()\r\n .then(updatePasses);\r\n\r\n const subscription = this.activeEventService\r\n .getPasses(this.readableEventId)\r\n .subscribe(updatePasses);\r\n\r\n this.subscriptions.push(subscription);\r\n }\r\n\r\n private async retrieveAndSubscribeToSessionCart(): Promise {\r\n const updateSessionCart = async (sessionCart: string[]) => {\r\n await this.refreshSessionsInCart(sessionCart);\r\n this.updateCanUserChooseAutoRegisterFunctionality();\r\n };\r\n\r\n const sessionIdsInCart = this.sessionCartService.getSessionCartForEvent(this.readableEventId);\r\n await updateSessionCart(sessionIdsInCart);\r\n\r\n const subscription = this.sessionCartService\r\n .sessionCartChange\r\n .subscribe(updateSessionCart);\r\n\r\n this.subscriptions.push(subscription);\r\n }\r\n}\r\n","module.exports = \":host-context(.align-left) h3.h4 {\\r\\n text-align: left;\\r\\n padding-left: 15px;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ldmVudHJlZ2lzdHJhdGlvbi9zZXNzaW9uLXNlbGVjdGlvbi9zZXNzaW9uLXNlbGVjdGlvbi5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksZ0JBQWdCO0lBQ2hCLGtCQUFrQjtBQUN0QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZXZlbnRyZWdpc3RyYXRpb24vc2Vzc2lvbi1zZWxlY3Rpb24vc2Vzc2lvbi1zZWxlY3Rpb24uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0LWNvbnRleHQoLmFsaWduLWxlZnQpIGgzLmg0IHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcbn0iXX0= */\"","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { SessionCartService } from \"../../event/session-cart/session-cart.service\";\r\nimport { Session } from \"src/app/models/Session\";\r\nimport { Event } from \"src/app/models/Event\";\r\nimport { ActiveEventService } from \"src/app/services/active-event.service\";\r\nimport { RegistrationService } from '../registration.service';\r\nimport { Attendee } from 'src/app/models/Attendee';\r\nimport { RegistrationServiceFactory } from '../registration-service.factory';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: \"app-session-selection\",\r\n templateUrl: \"./session-selection.component.html\",\r\n styleUrls: [\"./session-selection.component.css\"]\r\n})\r\nexport class SessionSelectionComponent implements OnInit {\r\n @Input()\r\n public readableEventId: string;\r\n\r\n public isSessionCartEnabled: boolean;\r\n public sessionsInCart$: Observable;\r\n public attendees$: Observable;\r\n public event: Event;\r\n\r\n private registrationService: RegistrationService;\r\n\r\n constructor(\r\n private activeEventService: ActiveEventService,\r\n private sessionCartService: SessionCartService,\r\n private registrationServiceFactory: RegistrationServiceFactory\r\n ) {}\r\n\r\n async ngOnInit() {\r\n this.registrationService = await this.registrationServiceFactory.create(this.readableEventId);\r\n\r\n this.sessionsInCart$ = this.registrationService.sessionsInCart$;\r\n this.attendees$ = this.registrationService.attendees$;\r\n\r\n this.activeEventService.getEvent(this.readableEventId).subscribe(event => {\r\n this.event = event;\r\n this.setIsSessionCartAllowed();\r\n });\r\n }\r\n\r\n private async setIsSessionCartAllowed(): Promise {\r\n const hasEventSessions = await this.activeEventService.hasEventSessions(this.readableEventId);\r\n const isFreeEvent = await this.activeEventService.isFreeEvent(this.readableEventId);\r\n\r\n this.isSessionCartEnabled = this.sessionCartService.isSessionCartEnabledForEvent(\r\n this.event,\r\n isFreeEvent,\r\n hasEventSessions\r\n );\r\n }\r\n}\r\n","module.exports = \"footer {\\r\\n color: #AAAAAA;\\r\\n z-index: 99999;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxjQUFjO0lBQ2QsY0FBYztBQUNsQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiZm9vdGVyIHtcclxuICAgIGNvbG9yOiAjQUFBQUFBO1xyXG4gICAgei1pbmRleDogOTk5OTk7XHJcbn1cclxuIl19 */\"","import { Component } from '@angular/core';\r\nimport { LabelsService } from 'src/app/services/labels.service';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.css']\r\n})\r\nexport class FooterComponent {\r\n\r\n constructor(\r\n private labelsService: LabelsService) {\r\n }\r\n\r\n public currentYear = new Date().getFullYear().toString();\r\n\r\n public translateLabelWithParams(): Observable {\r\n var defaultValueForCopyRight = \"Copyright © {0}. All rights reserved.\";\r\n return this.labelsService.translateLabelWithParams('CopyrightWithParam', defaultValueForCopyRight, [this.currentYear]);\r\n }\r\n}\r\n\r\n","module.exports = \".page-header {\\r\\n margin: 42px 0 21px;\\r\\n}\\r\\n\\r\\na\\r\\n{\\r\\n color: #006FE6;\\r\\n}\\r\\n\\r\\nh3 {\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.input-group.mb-3 {\\r\\n width: auto !important;\\r\\n float: right;\\r\\n padding-right: 5px;\\r\\n}\\r\\n\\r\\ninput {\\r\\n border-right: none !important;\\r\\n}\\r\\n\\r\\n.wrapper-searchsort {\\r\\n display: inline-flex;\\r\\n float: right;\\r\\n}\\r\\n\\r\\n@media only screen and (max-width: 991px) {\\r\\n .wrapper-searchsort {\\r\\n float: none;\\r\\n width: 100%;\\r\\n display: flex;\\r\\n margin-top: 15px;\\r\\n }\\r\\n }\\r\\n\\r\\n.input-group-text {\\r\\n background-color: transparent !important;\\r\\n border-left: none !important;\\r\\n}\\r\\n\\r\\n.d-inline-block {\\r\\n color: #0071EB !important;\\r\\n}\\r\\n\\r\\n.btn-outline-primary {\\r\\n color: #495057;\\r\\n border-color: #495057;\\r\\n}\\r\\n\\r\\n.btn-outline-primary:hover {\\r\\n color: #fff;\\r\\n background-color: #005BBD;\\r\\n border-color: #0062cc;\\r\\n}\\r\\n\\r\\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-primary.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #0062cc;\\r\\n border-color: #005cbf;\\r\\n}\\r\\n\\r\\n.btn-outline-primary:focus { \\r\\n outline: 1px dashed transparent; \\r\\n outline-offset: 2px; \\r\\n}\\r\\n\\r\\n.page-header {\\r\\n padding: 0 30px;\\r\\n}\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ob21lL2hvbWUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTs7SUFFSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0kscUJBQXFCO0FBQ3pCOztBQUVBO0lBQ0ksc0JBQXNCO0lBQ3RCLFlBQVk7SUFDWixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSxvQkFBb0I7SUFDcEIsWUFBWTtBQUNoQjs7QUFFQTtJQUNJO09BQ0csV0FBVztPQUNYLFdBQVc7T0FDWCxhQUFhO09BQ2IsZ0JBQWdCO0lBQ25CO0VBQ0Y7O0FBRUY7SUFDSSx3Q0FBd0M7SUFDeEMsNEJBQTRCO0FBQ2hDOztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksY0FBYztJQUNkLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLFdBQVc7SUFDWCx5QkFBeUI7SUFDekIscUJBQXFCO0FBQ3pCOztBQUVBOztJQUVJLFdBQVc7SUFDWCx5QkFBeUI7SUFDekIscUJBQXFCO0FBQ3pCOztBQUVBO0lBQ0ksK0JBQStCO0lBQy9CLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2hvbWUvaG9tZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnBhZ2UtaGVhZGVyIHtcclxuICAgIG1hcmdpbjogNDJweCAwIDIxcHg7XHJcbn1cclxuXHJcbmFcclxue1xyXG4gICAgY29sb3I6ICMwMDZGRTY7XHJcbn1cclxuXHJcbmgzIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLmlucHV0LWdyb3VwLm1iLTMge1xyXG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcclxufVxyXG5cclxuaW5wdXQge1xyXG4gICAgYm9yZGVyLXJpZ2h0OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi53cmFwcGVyLXNlYXJjaHNvcnQge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbn1cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcclxuICAgIC53cmFwcGVyLXNlYXJjaHNvcnQgIHtcclxuICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgbWFyZ2luLXRvcDogMTVweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4uaW5wdXQtZ3JvdXAtdGV4dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLWxlZnQ6IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmQtaW5saW5lLWJsb2NrIHtcclxuICAgIGNvbG9yOiAjMDA3MUVCICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5idG4tb3V0bGluZS1wcmltYXJ5IHtcclxuICAgIGNvbG9yOiAjNDk1MDU3O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjNDk1MDU3O1xyXG59XHJcblxyXG4uYnRuLW91dGxpbmUtcHJpbWFyeTpob3ZlciB7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDVCQkQ7XHJcbiAgICBib3JkZXItY29sb3I6ICMwMDYyY2M7XHJcbn1cclxuXHJcbi5idG4tb3V0bGluZS1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwgLmJ0bi1vdXRsaW5lLXByaW1hcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxyXG4gIC5zaG93ID4gLmJ0bi1vdXRsaW5lLXByaW1hcnkuZHJvcGRvd24tdG9nZ2xlIHtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNjJjYztcclxuICAgIGJvcmRlci1jb2xvcjogIzAwNWNiZjtcclxufVxyXG5cclxuLmJ0bi1vdXRsaW5lLXByaW1hcnk6Zm9jdXMgeyBcclxuICAgIG91dGxpbmU6IDFweCBkYXNoZWQgdHJhbnNwYXJlbnQ7IFxyXG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDsgXHJcbn1cclxuXHJcbi5wYWdlLWhlYWRlciB7XHJcbiAgICBwYWRkaW5nOiAwIDMwcHg7XHJcbn1cclxuXHJcbiJdfQ== */\"","import { EVENT_SERVICE } from './../../providers/service.providers';\r\nimport { EventService } from '../../services/event.service';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { Event } from '../../models/Event';\r\nimport { LocalizableError } from 'src/app/models/LocalizableError';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { LabelsService } from 'src/app/services/labels.service';\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n public allEvents: Event[];\r\n public filteredEvents: Event[];\r\n public isLoading: boolean;\r\n public error?: LocalizableError;\r\n private subject: Subject = new Subject();\r\n\r\n constructor(@Inject(EVENT_SERVICE) private eventService: EventService, private labelsService: LabelsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadPublishedEvents();\r\n this.subject.pipe(\r\n debounceTime(300)\r\n ).subscribe(searchTextValue => {\r\n this.handleSearch(searchTextValue);\r\n });\r\n }\r\n\r\n private loadPublishedEvents() {\r\n this.isLoading = true;\r\n this.eventService.getPublishedEvents().subscribe(\r\n events => {\r\n this.allEvents = events;\r\n this.filteredEvents = events;\r\n this.isLoading = false;\r\n },\r\n (error: LocalizableError) => this.handleErrorResponse(error)\r\n );\r\n }\r\n\r\n private handleErrorResponse(error: LocalizableError) {\r\n this.error = error;\r\n this.isLoading = false;\r\n }\r\n\r\n public translateLabel(translationKey: string, defaultValue: string): Observable {\r\n return this.labelsService.translateLabel(translationKey, defaultValue);\r\n }\r\n\r\n private getAreaLabel(event: Event): string{\r\n let date = this.getDateString(event);\r\n let building = event.building ? `at ${event.building.name}` : \"\";\r\n return `${event.eventName} on ${date} ${building}`;\r\n }\r\n\r\n private getDateString(event:Event): string{\r\n var startDate = new Date(event.startDate.toString());\r\n var endDate = new Date(event.endDate.toString());\r\n var locale = undefined;\r\n const dateOptions = { year: 'numeric', month: 'short', day: 'numeric' };\r\n const timeOptions = { hour:'numeric', minute:'numeric' };\r\n \r\n var includeTime = startDate.getFullYear() === endDate.getFullYear() && startDate.getMonth() === endDate.getMonth() && startDate.getDate() === endDate.getDate();\r\n if(includeTime)\r\n {\r\n return `${startDate.toLocaleDateString(locale, dateOptions)} ${startDate.toLocaleTimeString(locale, timeOptions)} - ${endDate.toLocaleTimeString(locale, timeOptions)}`;\r\n }\r\n return `${startDate.toLocaleDateString(locale, dateOptions)} - ${endDate.toLocaleDateString(locale, dateOptions)}`;\r\n }\r\n\r\n handleSearch(searchText: string) {\r\n if (searchText) {\r\n searchText = searchText.toLocaleLowerCase();\r\n }\r\n this.filteredEvents = this.allEvents.filter( (it: Event) => {\r\n return it.eventName.toString().toLocaleLowerCase().includes(searchText);\r\n });\r\n }\r\n\r\n search(searchText: string) {\r\n this.subject.next(searchText);\r\n }\r\n\r\n orderEvents(order: string) {\r\n if (order === \"date-asc\") {\r\n this.filteredEvents.sort((a,b) => {return new Date(a.startDate.toString()) - new Date(b.startDate.toString())});\r\n } else if (order === \"date-desc\") {\r\n this.filteredEvents.sort((a,b) => {return new Date(b.startDate.toString()) - new Date(a.startDate.toString())});\r\n } else if (order === \"name-asc\") {\r\n this.filteredEvents.sort((a,b) => a.eventName.localeCompare(b.eventName));\r\n } else if (order === \"name-desc\") {\r\n this.filteredEvents.sort((a,b) => b.eventName.localeCompare(a.eventName));\r\n }\r\n }\r\n}\r\n","module.exports = \".spinner-container {\\r\\n min-height: 1000px;\\r\\n padding-top: 450px;\\r\\n}\\r\\n\\r\\n.page-header {\\r\\n padding-top: 30px;\\r\\n margin: 42px 0 21px;\\r\\n}\\r\\n\\r\\n.myRegistrations {\\r\\n margin-top: 50px;\\r\\n}\\r\\n\\r\\n.active-row {\\r\\n background-color: rgba(0,0,0,.05);\\r\\n}\\r\\n\\r\\n.details-row {\\r\\n padding-left: 2rem;\\r\\n}\\r\\n\\r\\n.showMore {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.set-min-width {\\r\\n min-width: 0;\\r\\n}\\r\\n\\r\\n.set-max-width {\\r\\n max-width: 100%;\\r\\n}\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n\\r\\n .display-button {\\r\\n flex-direction: column;\\r\\n\\r\\n }\\r\\n\\r\\n .button-large{\\r\\n width: 100%;\\r\\n padding-top: 10px;\\r\\n }\\r\\n\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9teXJlZ2lzdHJhdGlvbnMvbXlyZWdpc3RyYXRpb25zLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxrQkFBa0I7SUFDbEIsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksaUJBQWlCO0lBQ2pCLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFDQTs7SUFFSTtRQUNJLHNCQUFzQjs7SUFFMUI7O0lBRUE7UUFDSSxXQUFXO1FBQ1gsaUJBQWlCO0lBQ3JCOztBQUVKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9teXJlZ2lzdHJhdGlvbnMvbXlyZWdpc3RyYXRpb25zLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc3Bpbm5lci1jb250YWluZXIge1xyXG4gICAgbWluLWhlaWdodDogMTAwMHB4O1xyXG4gICAgcGFkZGluZy10b3A6IDQ1MHB4O1xyXG59XHJcblxyXG4ucGFnZS1oZWFkZXIge1xyXG4gICAgcGFkZGluZy10b3A6IDMwcHg7XHJcbiAgICBtYXJnaW46IDQycHggMCAyMXB4O1xyXG59XHJcblxyXG4ubXlSZWdpc3RyYXRpb25zIHtcclxuICAgIG1hcmdpbi10b3A6IDUwcHg7XHJcbn1cclxuXHJcbi5hY3RpdmUtcm93IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsLjA1KTtcclxufVxyXG5cclxuLmRldGFpbHMtcm93IHtcclxuICAgIHBhZGRpbmctbGVmdDogMnJlbTtcclxufVxyXG5cclxuLnNob3dNb3JlIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLnNldC1taW4td2lkdGgge1xyXG4gICAgbWluLXdpZHRoOiAwO1xyXG59XHJcblxyXG4uc2V0LW1heC13aWR0aCB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbn1cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcblxyXG4gICAgLmRpc3BsYXktYnV0dG9uIHtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uLWxhcmdle1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0= */\"","import { USER_SERVICE } from './../../providers/service.providers';\r\nimport { Component, OnInit, Inject, ɵConsole } from '@angular/core';\r\nimport { UserService } from '../../services/user.service';\r\nimport { MyRegistration } from '../../models/MyRegistration';\r\nimport { WaitlistItem } from '../../models/WaitlistItem';\r\nimport { TranslationKeys } from 'src/app/constants/TranslationKeys';\r\nimport { LocalizableError } from 'src/app/models/LocalizableError';\r\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgbdModalContent } from '../eventregistration/modal/modal.component';\r\n\r\n@Component({\r\n selector: 'app-myregistrations',\r\n templateUrl: './myregistrations.component.html',\r\n styleUrls: ['./myregistrations.component.css']\r\n})\r\nexport class MyRegistrationsComponent implements OnInit {\r\n public cntActiveDataRetrievals = 0;\r\n public error: Error;\r\n private modalRef: NgbModalRef;\r\n\r\n registrations: MyRegistration[];\r\n waitlistItems: WaitlistItem[];\r\n\r\n constructor(@Inject(USER_SERVICE) private userService: UserService, private modalService: NgbModal) { }\r\n\r\n ngOnInit() {\r\n this.loadRegistrationsForUser();\r\n this.loadWaitlistItemsForUser();\r\n }\r\n\r\n private loadRegistrationsForUser(): void {\r\n this.cntActiveDataRetrievals += 1;\r\n\r\n this.userService.getRegistrationsForUser().subscribe(registrations => {\r\n this.registrations = registrations;\r\n this.cntActiveDataRetrievals -= 1;\r\n }, (error: LocalizableError) => this.handleErrorResponse(error));\r\n }\r\n\r\n private loadWaitlistItemsForUser(): void {\r\n this.cntActiveDataRetrievals += 1;\r\n this.userService.getWaitlistItemsForUser().subscribe(waitlistItems => {\r\n this.waitlistItems = waitlistItems;\r\n this.cntActiveDataRetrievals -= 1;\r\n }, (error: LocalizableError) => this.handleErrorResponse(error)\r\n );\r\n }\r\n\r\n public cancelRegistration(registrationId: string): void {\r\n this.cntActiveDataRetrievals += 1;\r\n this.userService.cancelRegistration(registrationId).subscribe(isRegistrationCanceled => {\r\n if (isRegistrationCanceled) {\r\n this.loadRegistrationsForUser();\r\n this.loadWaitlistItemsForUser();\r\n this.error = null;\r\n } else {\r\n this.error = new LocalizableError('An error occurred while cancelling the registration.', TranslationKeys.CancelRegistrationError);\r\n }\r\n this.cntActiveDataRetrievals -= 1;\r\n }, (error: LocalizableError) => this.handleErrorResponse(error)\r\n );\r\n }\r\n\r\n open(registration: MyRegistration, index: number) { \r\n this.modalRef = this.modalService.open(NgbdModalContent); \r\n this.sendInputFieldsToModal(registration.event);\r\n this.modalRef.result.then(result => {\r\n if (result === 'Close click' || result === 'Cross click') {\r\n const cancelButtonId = \"cancelButton-\" + index.toString();\r\n document.getElementById(cancelButtonId).focus();\r\n } else if (result === 'Action executed') {\r\n this.cancelRegistration(registration.id); \r\n }\r\n });\r\n }\r\n\r\n sendInputFieldsToModal(event) {\r\n const modalsInput = this.modalRef.componentInstance;\r\n modalsInput.message = 'Are you sure you want to cancel registration for {0}?';\r\n modalsInput.extraParams = [event];\r\n modalsInput.messageTranslate = 'CancelRegistrationEventMessage';\r\n modalsInput.primaryButton = 'Submit';\r\n modalsInput.primaryButtonTranslate = 'Submit';\r\n modalsInput.secondaryButton = 'Cancel';\r\n modalsInput.secondaryButtonTranslate = 'Cancel';\r\n modalsInput.title = 'Cancel registration';\r\n modalsInput.titleTranslate = 'CancelRegistration'; \r\n }\r\n\r\n private handleErrorResponse(error: LocalizableError) {\r\n this.cntActiveDataRetrievals -= 1;\r\n this.error = error;\r\n }\r\n}\r\n","module.exports = \".badge {\\r\\n background-color: #0071eb !important;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9teXJlZ2lzdHJhdGlvbnMvd2FpdGxpc3QtaXRlbS1jYXJkL3dhaXRsaXN0LWl0ZW0tY2FyZC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksb0NBQW9DO0FBQ3hDIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9teXJlZ2lzdHJhdGlvbnMvd2FpdGxpc3QtaXRlbS1jYXJkL3dhaXRsaXN0LWl0ZW0tY2FyZC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJhZGdlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDcxZWIgIWltcG9ydGFudDtcclxufSJdfQ== */\"","import { Component, Input } from '@angular/core';\r\nimport { WaitlistItem } from 'src/app/models/WaitlistItem';\r\n\r\n@Component({\r\n selector: 'app-waitlist-item-card',\r\n templateUrl: './waitlist-item-card.component.html',\r\n styleUrls: ['./waitlist-item-card.component.css']\r\n})\r\nexport class WaitlistItemCardComponent {\r\n @Input()\r\n public waitlistItem: WaitlistItem;\r\n}\r\n","module.exports = \"nav {\\r\\n z-index: 1;\\r\\n\\r\\n &.navbar {\\r\\n border-radius: 0px;\\r\\n border-width: 0px;\\r\\n }\\r\\n\\r\\n .navbar-toggler {\\r\\n margin-right: 10px;\\r\\n }\\r\\n\\r\\n #navbarCollapse {\\r\\n min-width: 0;\\r\\n padding-left: 10px;\\r\\n border-left: 2px solid #fdfdfd;\\r\\n }\\r\\n}\\r\\n\\r\\n.session-cart-opener {\\r\\n .session-cart-count-badge {\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n align-items: center;\\r\\n background-color: red;\\r\\n color: #fff;\\r\\n position: absolute;\\r\\n border-radius: 50%;\\r\\n top: 50%;\\r\\n width: 18px;\\r\\n height: 18px;\\r\\n -webkit-transform: translate(20px, 5px);\\r\\n transform: translate(20px, 5px);\\r\\n }\\r\\n}\\r\\n\\r\\n.event-title {\\r\\n min-width: 0;\\r\\n}\\r\\n\\r\\n.event-title-label {\\r\\n max-width: 100%;\\r\\n}\\r\\n\\r\\n#languages-dropdown {\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n#signin-link {\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.btn-outline-primary:focus {\\r\\n outline: 1px dashed transparent; \\r\\n outline-offset: 2px; \\r\\n}\\r\\n\\r\\n#account-link {\\r\\n color: #fff;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9uYXZtZW51L25hdm1lbnUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLFVBQVU7O0lBRVY7UUFDSSxrQkFBa0I7UUFDbEIsaUJBQWlCO0lBQ3JCOztJQUVBO1FBQ0ksa0JBQWtCO0lBQ3RCOztJQUVBO1FBQ0ksWUFBWTtRQUNaLGtCQUFrQjtRQUNsQiw4QkFBOEI7SUFDbEM7QUFDSjs7QUFFQTtJQUNJO1FBQ0ksYUFBYTtRQUNiLHVCQUF1QjtRQUN2QixtQkFBbUI7UUFDbkIscUJBQXFCO1FBQ3JCLFdBQVc7UUFDWCxrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLFFBQVE7UUFDUixXQUFXO1FBQ1gsWUFBWTtRQUNaLHVDQUErQjtnQkFBL0IsK0JBQStCO0lBQ25DO0FBQ0o7O0FBRUE7SUFDSSxZQUFZO0FBQ2hCOztBQUVBO1FBQ1EsZUFBZTtBQUN2Qjs7QUFFQTtJQUNJLFdBQVc7QUFDZjs7QUFFQTtJQUNJLFdBQVc7QUFDZjs7QUFFQTtJQUNJLCtCQUErQjtJQUMvQixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxXQUFXO0FBQ2YiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL25hdm1lbnUvbmF2bWVudS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsibmF2IHtcclxuICAgIHotaW5kZXg6IDE7XHJcblxyXG4gICAgJi5uYXZiYXIge1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcclxuICAgICAgICBib3JkZXItd2lkdGg6IDBweDtcclxuICAgIH1cclxuXHJcbiAgICAubmF2YmFyLXRvZ2dsZXIge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgIH1cclxuXHJcbiAgICAjbmF2YmFyQ29sbGFwc2Uge1xyXG4gICAgICAgIG1pbi13aWR0aDogMDtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZmRmZGZkO1xyXG4gICAgfVxyXG59XHJcblxyXG4uc2Vzc2lvbi1jYXJ0LW9wZW5lciB7XHJcbiAgICAuc2Vzc2lvbi1jYXJ0LWNvdW50LWJhZGdlIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgd2lkdGg6IDE4cHg7XHJcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIDVweCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5ldmVudC10aXRsZSB7XHJcbiAgICBtaW4td2lkdGg6IDA7XHJcbn1cclxuXHJcbi5ldmVudC10aXRsZS1sYWJlbCB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4jbGFuZ3VhZ2VzLWRyb3Bkb3duIHtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4jc2lnbmluLWxpbmsge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi5idG4tb3V0bGluZS1wcmltYXJ5OmZvY3VzIHtcclxuICAgIG91dGxpbmU6IDFweCBkYXNoZWQgdHJhbnNwYXJlbnQ7IFxyXG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDsgXHJcbn1cclxuXHJcbiNhY2NvdW50LWxpbmsge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbn0iXX0= */\"","import { LabelsService } from 'src/app/services/labels.service';\r\nimport { UserBaseService } from './../../../app/services/base/user.base.service';\r\nimport { USER_SERVICE } from './../../providers/service.providers';\r\nimport { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, Router, NavigationEnd } from '@angular/router';\r\nimport { Event } from '../../models/Event';\r\nimport { UserService } from '../../services/user.service';\r\nimport { User } from '../../models/User';\r\nimport { Subscription, Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { AadB2CHelper } from 'src/app/helpers/AadB2CHelper';\r\nimport { SessionCartService } from '../event/session-cart/session-cart.service';\r\nimport { Session } from 'src/app/models/Session';\r\nimport { Pass } from 'src/app/models/Pass';\r\nimport { ActiveEventService } from 'src/app/services/active-event.service';\r\nimport { EventCheckoutRoutePaths } from \"../eventregistration/eventregistration.component\";\r\nimport { filter } from 'rxjs/operators';\r\nimport { SupportedLanguage } from 'src/app/models/SupportedLanguage';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'nav-menu',\r\n templateUrl: './navmenu.component.html',\r\n styleUrls: ['./navmenu.component.css']\r\n})\r\nexport class NavMenuComponent implements OnInit, OnDestroy {\r\n public activeEvent: Event | null;\r\n public activeEventSessions: Array;\r\n public activeEventPasses: Array;\r\n public showCartItem = false;\r\n public sessionCartCount = 0;\r\n user: User;\r\n navbarOpen: boolean;\r\n showUserMenu = environment.isAuthenticationEnabled;\r\n showProfile = !environment.useAadB2C;\r\n supportedLanguages$: Observable;\r\n\r\n private subscriptions = new Array();\r\n private readableEventId: string;\r\n\r\n constructor(\r\n private activeEventService: ActiveEventService,\r\n private sessionCartService: SessionCartService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n @Inject(USER_SERVICE) private userService: UserService,\r\n private authHelper: AadB2CHelper,\r\n private labelsService: LabelsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscribeToSessionCartCount();\r\n this.subscribeToEventChange();\r\n this.subscribeToRouteChange();\r\n this.getUser();\r\n this.loadChangeLanguageDropdown();\r\n\r\n this.navbarOpen = false;\r\n }\r\n\r\n getUser() {\r\n this.user = UserBaseService.AnonymousUser;\r\n\r\n const userSubscription = this.userService.getLoggedInUser().subscribe(\r\n user => {\r\n this.user = user;\r\n },\r\n error => console.error(error)\r\n );\r\n\r\n this.subscriptions.push(userSubscription);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(subscription => {\r\n subscription.unsubscribe();\r\n });\r\n }\r\n\r\n public supportedLanguageChanged(languageLcid: number) {\r\n this.labelsService.selectLanguage(languageLcid);\r\n }\r\n\r\n /**\r\n * Toggles the state (open or collapsed) of the navbar.\r\n */\r\n public toggleNavbar() {\r\n this.navbarOpen = !this.navbarOpen;\r\n }\r\n\r\n public toggleSessionCart() {\r\n this.sessionCartService.isOpen = !this.sessionCartService.isOpen;\r\n }\r\n\r\n public translateLabel(translationKey: string, defaultValue: string): Observable {\r\n return this.labelsService.translateLabel(translationKey, defaultValue);\r\n }\r\n\r\n private subscribeToEventChange() {\r\n const routeSubscription = this.route.queryParams.subscribe(route => {\r\n this.readableEventId = route[\"id\"];\r\n\r\n if (this.readableEventId) {\r\n this.sessionCartCount = this.sessionCartService.getSessionCartForEvent(this.readableEventId).length;\r\n this.activeEventService.getEvent(this.readableEventId).toPromise()\r\n .then(event => {\r\n this.activeEvent = event;\r\n this.setShowCartItem();\r\n });\r\n } else {\r\n this.activeEvent = null;\r\n }\r\n });\r\n\r\n this.subscriptions.push(routeSubscription);\r\n }\r\n\r\n private subscribeToSessionCartCount() {\r\n this.sessionCartService.sessionCartChange.subscribe(\r\n sessionCart => (this.sessionCartCount = sessionCart.length)\r\n );\r\n }\r\n\r\n private subscribeToRouteChange() {\r\n this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe((event: NavigationEnd) => {\r\n this.setShowCartItem();\r\n });\r\n }\r\n\r\n private loadChangeLanguageDropdown(): void {\r\n this.supportedLanguages$ = this.labelsService.getSupportedLanguages();\r\n }\r\n\r\n private async setShowCartItem() {\r\n if (this.isCheckoutInProgress() || this.readableEventId == null || this.readableEventId === \"\") {\r\n this.showCartItem = false;\r\n return;\r\n }\r\n\r\n const isFreeEvent = await this.activeEventService.isFreeEvent(this.readableEventId);\r\n const hasSessions = await this.activeEventService.hasEventSessions(this.readableEventId);\r\n\r\n this.showCartItem = this.sessionCartService.isSessionCartEnabledForEvent(\r\n this.activeEvent,\r\n isFreeEvent,\r\n hasSessions\r\n );\r\n }\r\n\r\n private isCheckoutInProgress() {\r\n const url = this.router.url;\r\n return (url.includes(EventCheckoutRoutePaths.REGISTRATION) ||\r\n url.includes(EventCheckoutRoutePaths.PAYMENT) ||\r\n url.includes(EventCheckoutRoutePaths.SUCCESS_PAYMENT) ||\r\n url.includes(EventCheckoutRoutePaths.CONFIRMATION));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SafeHtml, DomSanitizer, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safe'\r\n})\r\nexport class SafePipe implements PipeTransform {\r\n\r\n constructor(protected sanitizer: DomSanitizer) {}\r\n \r\n public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\r\n switch (type) {\r\n case 'html': return this.sanitizer.bypassSecurityTrustHtml(value);\r\n case 'style': return this.sanitizer.bypassSecurityTrustStyle(value);\r\n case 'script': return this.sanitizer.bypassSecurityTrustScript(value);\r\n case 'url': return this.sanitizer.bypassSecurityTrustUrl(value);\r\n case 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);\r\n default: throw new Error(`Invalid safe type specified: ${type}`);\r\n }\r\n }\r\n}\r\n","module.exports = \".spinner {\\r\\n position: relative;\\r\\n top: 50%;\\r\\n height: 60px;\\r\\n width: 60px;\\r\\n margin: 0px auto;\\r\\n -webkit-animation: rotation .6s infinite linear;\\r\\n animation: rotation .6s infinite linear;\\r\\n border-left: 6px solid rgba(0,174,239,.15);\\r\\n border-right: 6px solid rgba(0,174,239,.15);\\r\\n border-bottom: 6px solid rgba(0,174,239,.15);\\r\\n border-top: 6px solid rgba(0,174,239,.8);\\r\\n border-radius: 100%;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotation {\\r\\n from {\\r\\n -webkit-transform: rotate(0deg);\\r\\n }\\r\\n\\r\\n to {\\r\\n -webkit-transform: rotate(359deg);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotation {\\r\\n from {\\r\\n -webkit-transform: rotate(0deg);\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n\\r\\n to {\\r\\n -webkit-transform: rotate(359deg);\\r\\n transform: rotate(359deg);\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGtCQUFrQjtJQUNsQixRQUFRO0lBQ1IsWUFBWTtJQUNaLFdBQVc7SUFDWCxnQkFBZ0I7SUFDaEIsK0NBQStDO0lBRy9DLHVDQUF1QztJQUN2QywwQ0FBMEM7SUFDMUMsMkNBQTJDO0lBQzNDLDRDQUE0QztJQUM1Qyx3Q0FBd0M7SUFDeEMsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0k7UUFDSSwrQkFBK0I7SUFDbkM7O0lBRUE7UUFDSSxpQ0FBaUM7SUFDckM7QUFDSjs7QUFzQkE7SUFDSTtRQUNJLCtCQUF1QjtnQkFBdkIsdUJBQXVCO0lBQzNCOztJQUVBO1FBQ0ksaUNBQXlCO2dCQUF6Qix5QkFBeUI7SUFDN0I7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc3Bpbm5lciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIGhlaWdodDogNjBweDtcclxuICAgIHdpZHRoOiA2MHB4O1xyXG4gICAgbWFyZ2luOiAwcHggYXV0bztcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uOiByb3RhdGlvbiAuNnMgaW5maW5pdGUgbGluZWFyO1xyXG4gICAgLW1vei1hbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgICAtby1hbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgICBhbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC4xNSk7XHJcbiAgICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCByZ2JhKDAsMTc0LDIzOSwuMTUpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC4xNSk7XHJcbiAgICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjgpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0aW9uIHtcclxuICAgIGZyb20ge1xyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgICB9XHJcblxyXG4gICAgdG8ge1xyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICAgIH1cclxufVxyXG5cclxuQC1tb3ota2V5ZnJhbWVzIHJvdGF0aW9uIHtcclxuICAgIGZyb20ge1xyXG4gICAgICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgICB9XHJcblxyXG4gICAgdG8ge1xyXG4gICAgICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICAgIH1cclxufVxyXG5cclxuQC1vLWtleWZyYW1lcyByb3RhdGlvbiB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICAgIH1cclxuXHJcbiAgICB0byB7XHJcbiAgICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICAgIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyByb3RhdGlvbiB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICAgIH1cclxuXHJcbiAgICB0byB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-spinner',\r\n templateUrl: './spinner.component.html',\r\n styleUrls: ['./spinner.component.css']\r\n})\r\nexport class SpinnerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export class TranslationKeys {\r\n static readonly RegistrationFailed = 'RegistrationFailed';\r\n static readonly CancelRegistrationError = 'CancelRegistrationError';\r\n static readonly CommunicationError = 'CommunicationError';\r\n static readonly RefreshPage = 'RefreshPage';\r\n static readonly AnonymousAccessNotAllowedError = 'AnonymousAccessNotAllowedError';\r\n static readonly EventCapacityExceeding = 'EventCapacityExceeding';\r\n static readonly EventCapacityReached = 'EventCapacityReached';\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'img[defaultSrc]',\r\n host: {\r\n '(error)':'updateUrl()',\r\n '[src]':'src'\r\n }\r\n})\r\nexport class DefaultImage {\r\n @Input() src:string;\r\n @Input() defaultSrc:string;\r\n\r\n updateUrl() {\r\n if (this.src != this.defaultSrc) {\r\n this.src = this.defaultSrc;\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Renderer2, Input, OnInit, Inject } from '@angular/core';\r\nimport { LabelsService } from '../services/labels.service';\r\n\r\n@Directive({\r\n selector: '[appTranslate]'\r\n})\r\nexport class TranslateDirective implements OnInit {\r\n @Input() appTranslate: string;\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private renderer: Renderer2,\r\n private labelService: LabelsService) { }\r\n\r\n ngOnInit() {\r\n this.labelService.getLabelsModel().subscribe(labelsModel => {\r\n if (labelsModel.labels[this.appTranslate] !== undefined) {\r\n this.renderer.setProperty(this.el.nativeElement, 'innerText', labelsModel.labels[this.appTranslate]);\r\n }\r\n });\r\n }\r\n}\r\n","import { USER_SERVICE } from './../providers/service.providers';\r\nimport { UserService } from './../services/user.service';\r\nimport { Observable } from 'rxjs';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { CanActivate } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class IsAuthenticatedGuard implements CanActivate {\r\n\r\n constructor(@Inject(USER_SERVICE) private userService: UserService) {\r\n }\r\n\r\n canActivate(): Observable {\r\n return this.userService.isLoggedIn();\r\n }\r\n}\r\n","import { environment } from './../../environments/environment';\r\nimport { Injectable } from '@angular/core';\r\nimport * as Msal from 'msal';\r\nimport { ErrorCodes } from 'msal/lib-commonjs/Constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AadB2CHelper {\r\n private tenantConfig = environment.aadB2CConfig;\r\n\r\n // Configure the authority for Azure AD B2C\r\n // tslint:disable-next-line:max-line-length\r\n private authority = `https://${this.tenantConfig.authorityHost}/tfp/${this.tenantConfig.tenant}/${this.tenantConfig.signUpSignInPolicy}`;\r\n\r\n /*\r\n * B2C SignIn SignUp Policy Configuration\r\n */\r\n clientApplication = environment.useAadB2C\r\n ? new Msal.UserAgentApplication(\r\n this.tenantConfig.clientID,\r\n this.authority,\r\n function(errorDesc: any, token: any, error: any, tokenType: any) {\r\n // Called after loginRedirect or acquireTokenPopup\r\n },\r\n {\r\n validateAuthority: false,\r\n redirectUri: this.tenantConfig.redirectUri\r\n }\r\n )\r\n : null;\r\n\r\n public login(): Promise {\r\n return this.clientApplication\r\n .loginPopup(this.tenantConfig.b2cScopes)\r\n .then(() => this.clientApplication.acquireTokenSilent(this.tenantConfig.b2cScopes))\r\n .catch(error => {\r\n const errorMessage = error as string;\r\n if (!this.didUserCancel(errorMessage)) {\r\n console.error('Error occurred during acquiring token silently: ' + errorMessage);\r\n\r\n // try to send interactive request since AcquireTokenSilent failed\r\n return this.clientApplication.acquireTokenPopup(this.tenantConfig.b2cScopes);\r\n }\r\n });\r\n }\r\n\r\n private didUserCancel(errorMessage: string) {\r\n const errorMessageSplitCharacter = '|';\r\n if (errorMessage && errorMessage.includes(errorMessageSplitCharacter)) {\r\n const errorCode = errorMessage.split(errorMessageSplitCharacter);\r\n return errorCode[0] === ErrorCodes.userCancelledError;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public logout(): void {\r\n this.clientApplication.logout();\r\n }\r\n\r\n public aquireToken(): Promise {\r\n return this.clientApplication\r\n .acquireTokenSilent(this.tenantConfig.b2cScopes)\r\n .catch(() => this.clientApplication.acquireTokenPopup(this.tenantConfig.b2cScopes));\r\n }\r\n\r\n public aquireTokenSilent(): Promise {\r\n return this.clientApplication.acquireTokenSilent(this.tenantConfig.b2cScopes);\r\n }\r\n}\r\n","import { ErrorResponse, ErrorResponseType } from 'src/app/models/ErrorResponse';\r\nimport { TranslationKeys } from '../constants/TranslationKeys';\r\nimport { LocalizableError } from '../models/LocalizableError';\r\n\r\nexport class ErrorHelper {\r\n public static getLocalizableErrorForErrorResponse(error: ErrorResponse): LocalizableError {\r\n if (error == null) {\r\n return this.getGenericCommunicationFailureError();\r\n }\r\n\r\n if (error.correlationId === '0') {\r\n return this.getRefreshPageError();\r\n }\r\n\r\n if (error.type == null || error.type === '') {\r\n return this.getGenericCommunicationFailureError();\r\n } else {\r\n return this.getErrorForErrorResponseType(error.type);\r\n }\r\n }\r\n\r\n public static getGenericCommunicationFailureError(): LocalizableError {\r\n return new LocalizableError(\r\n 'There was an issue when communicating with the server.',\r\n TranslationKeys.CommunicationError\r\n );\r\n }\r\n\r\n public static getRefreshPageError(): LocalizableError {\r\n return new LocalizableError(\r\n 'The session has expired. Please refresh the page to continue.',\r\n TranslationKeys.RefreshPage\r\n );\r\n }\r\n\r\n public static getAnonymousAccessNotAllowedError(): LocalizableError {\r\n return new LocalizableError(\r\n 'You must sign-in in order to continue.',\r\n TranslationKeys.AnonymousAccessNotAllowedError\r\n );\r\n }\r\n\r\n private static getErrorForErrorResponseType(errorType: string): LocalizableError {\r\n switch (errorType) {\r\n case ErrorResponseType.EndpointNotFound:\r\n case ErrorResponseType.InternalServerError:\r\n case ErrorResponseType.OnlyHttpPostAllowed:\r\n case ErrorResponseType.OnlyHttpsAllowed:\r\n return this.getGenericCommunicationFailureError();\r\n case ErrorResponseType.AnonymousAccessNotAllowed:\r\n return this.getAnonymousAccessNotAllowedError();\r\n }\r\n }\r\n}\r\n","import { environment } from './../../environments/environment';\r\nimport { Injectable } from '@angular/core';\r\nimport { Image } from '../models/Image';\r\n\r\n@Injectable()\r\nexport class ImageHelper {\r\n\r\n constructor() {\r\n }\r\n\r\n public getImage(image: Image, imageUrl: string): string {\r\n if (image) {\r\n return `data:image/gif;base64,${image}`;\r\n } else {\r\n if (imageUrl != null) {\r\n return `${environment.apiEndpoint}${imageUrl}`;\r\n }\r\n }\r\n }\r\n\r\n public getImageUrl(imageRelativeUrl: string): string {\r\n if (environment.useRestStack === true) {\r\n return `${environment.imagesEndpoint}${imageRelativeUrl}`;\r\n } else {\r\n return `${environment.apiEndpoint}${imageRelativeUrl}`;\r\n }\r\n }\r\n}\r\n","export class ScrollHelper {\r\n /**\r\n * Scrolls to a specified element after a short delay of 100ms.\r\n * @param element The element to scroll to.\r\n */\r\n public static scrollToElementWithDelay(element) {\r\n setTimeout(() => {\r\n this.scrollToElement(element);\r\n }, 100);\r\n }\r\n\r\n /**\r\n * Scrolls to a specified element.\r\n * @param element The element to scroll to.\r\n */\r\n public static scrollToElement(element) {\r\n element.scrollIntoView();\r\n window.scrollBy(0, -60); // -60 because of the navbar.\r\n }\r\n}\r\n","import { HttpHelper } from './../HttpHelper';\r\nimport { map } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpParams,\r\n HttpErrorResponse\r\n} from '@angular/common/http';\r\nimport { ErrorResponse } from 'src/app/models/ErrorResponse';\r\nimport { ErrorHelper } from '../ErrorHelper';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HttpD365Helper implements HttpHelper {\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n public get(url: string, authenticationRequired = false): Observable {\r\n return this.httpClient\r\n .get(this.addTimestamp(url))\r\n .pipe(map(this.checkForError));\r\n }\r\n\r\n public post(\r\n url: string,\r\n body: any,\r\n authenticationRequired = false\r\n ): Observable {\r\n const httpOptions = this.buildHttpOptions();\r\n return this.httpClient\r\n .post(this.addTimestamp(url), this.encodeBody(body), httpOptions)\r\n .pipe(map(value => this.checkForError(value)));\r\n }\r\n\r\n private extractValidationToken(): string {\r\n let validationToken = '';\r\n const metaTags = document.getElementsByTagName('meta');\r\n if (metaTags) {\r\n for (let i = 0; i < metaTags.length; i++) {\r\n const metaTag = metaTags[i];\r\n const nameAttribute = metaTag.getAttribute('name');\r\n const contentAttribute = metaTag.getAttribute('content');\r\n if (nameAttribute === 'token' && contentAttribute) {\r\n validationToken = contentAttribute;\r\n }\r\n }\r\n }\r\n\r\n return validationToken;\r\n }\r\n\r\n private addTimestamp(url: string): string {\r\n const separator = url.indexOf('?') === -1 ? '?' : '&';\r\n return `${url}${separator}ts=${Date.now()}`;\r\n }\r\n\r\n private buildHttpOptions(): {} {\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n validation: this.extractValidationToken()\r\n });\r\n\r\n return {\r\n headers: headers\r\n };\r\n }\r\n\r\n private encodeBody(body: any): string {\r\n return `json=${encodeURIComponent(JSON.stringify(body))}`;\r\n }\r\n\r\n private checkForError(result: T): T {\r\n if ( result && typeof result === 'object' && 'error' in result && result['error']) {\r\n const errorResponse = result['error'] as ErrorResponse;\r\n\r\n console.error('API call resulted with an error.');\r\n console.error(errorResponse);\r\n\r\n const localizableError = ErrorHelper.getLocalizableErrorForErrorResponse(\r\n errorResponse\r\n );\r\n\r\n throw localizableError;\r\n } else {\r\n return result;\r\n }\r\n }\r\n}\r\n","import { HttpHelper } from '../HttpHelper';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HttpMockHelper implements HttpHelper {\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n public refreshPage: String;\r\n\r\n public get(url: string, authenticationRequired = false): Observable {\r\n url = `${url}/get.json`;\r\n return Observable.create(observer => {\r\n this.httpClient.get(url).subscribe(observer);\r\n });\r\n }\r\n\r\n public post(\r\n url: string,\r\n body: any,\r\n authenticationRequired = false\r\n ): Observable {\r\n url = `${url}/post.json`;\r\n return Observable.create(observer => {\r\n this.httpClient.get(url, body).subscribe(observer);\r\n });\r\n }\r\n}\r\n","import { AadB2CHelper } from 'src/app/helpers/AadB2CHelper';\r\nimport { environment } from './../../../environments/environment';\r\nimport { HttpHelper } from './../HttpHelper';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/internal/operators/catchError';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { ErrorHelper } from '../ErrorHelper';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HttpRestHelper implements HttpHelper {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private aadB2CHelper: AadB2CHelper) {\r\n }\r\n\r\n public get(url: string, authenticationRequired = false): Observable {\r\n const observable = Observable.create(observer => {\r\n this.buildHttpOptions(authenticationRequired).then(httpOptions => {\r\n this.httpClient.get(this.addApplicationToken(url), httpOptions)\r\n .pipe(catchError(this.handleError))\r\n .subscribe(observer);\r\n });\r\n });\r\n\r\n return observable;\r\n }\r\n\r\n public post(url: string, body: any, authenticationRequired = false): Observable {\r\n const observable = Observable.create(observer => {\r\n this.buildHttpOptions(authenticationRequired).then(httpOptions => {\r\n this.httpClient.post(this.addApplicationToken(url), body, httpOptions)\r\n .pipe(catchError(this.handleError))\r\n .subscribe(observer);\r\n });\r\n });\r\n return observable;\r\n }\r\n\r\n private addApplicationToken(url: string) {\r\n const separator = url.indexOf('?') !== -1 ? '&' : '?';\r\n return `${url}${separator}emApplicationtoken=${environment.emApplicationtoken}`;\r\n }\r\n\r\n private buildHttpOptions(authenticationRequired: boolean): Promise<{}> {\r\n\r\n const notAuthenticatedHttpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json'\r\n })\r\n };\r\n\r\n const promise = new Promise((resolve, reject) => {\r\n const tokenHandler = accessToken => {\r\n if (accessToken && accessToken !== '') {\r\n resolve({\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${accessToken}`\r\n })\r\n });\r\n } else {\r\n resolve(notAuthenticatedHttpOptions);\r\n }\r\n };\r\n\r\n if (!environment.useAadB2C) {\r\n resolve(notAuthenticatedHttpOptions);\r\n } else if (!authenticationRequired) {\r\n this.aadB2CHelper.aquireTokenSilent().then(tokenHandler, () => tokenHandler(''));\r\n } else {\r\n this.aadB2CHelper.aquireToken().then(tokenHandler, () => tokenHandler(''));\r\n }\r\n });\r\n return promise;\r\n }\r\n\r\n private handleError(errorResponse: HttpErrorResponse) {\r\n let errorMessage = '';\r\n if (errorResponse.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = errorResponse.error.message;\r\n console.error('An error occurred:', errorMessage);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `Backend returned code ${errorResponse.status}, ` +\r\n `body was: `);\r\n console.log(errorResponse.error);\r\n\r\n if (errorResponse.error) {\r\n errorMessage = errorResponse.error.Message;\r\n }\r\n }\r\n // return an observable with a user-facing error message\r\n if (errorMessage) {\r\n return throwError(new Error(errorMessage));\r\n } else {\r\n return throwError(ErrorHelper.getGenericCommunicationFailureError());\r\n }\r\n }\r\n}\r\n","import { CustomRegistrationFieldResponse } from \"./CustomRegistrationFieldResponse\";\r\n\r\nexport class CustomRegistrationField {\r\n customRegistrationFieldId: string;\r\n text: string;\r\n /**\r\n * Note: the value field is not included in the data that is retrieved from the backend but is used to\r\n * create a two-way binding with ngModel when displaying the custom fields.\r\n */\r\n value: any;\r\n type: number;\r\n isRequired: boolean;\r\n /**\r\n * String representation of the possible choices. Each choice is separated by a '\\u000a'.\r\n * Can be null (fields that does not have a choice).\r\n */\r\n choices: string;\r\n\r\n private readonly arrayItemSeparator = \"\\u000a\";\r\n private readonly responseItemSeparator = \", \";\r\n private readonly booleanOptionYes = \"Yes\";\r\n private readonly booleanOptionNo = \"No\";\r\n private readonly booleanOptionNoChoice = \"NoChoice\";\r\n\r\n constructor(id?: string, text?: string, type?: number, isRequired?: boolean, choices?: string) {\r\n this.customRegistrationFieldId = id;\r\n this.text = text;\r\n this.type = type;\r\n this.isRequired = isRequired;\r\n this.choices = choices;\r\n }\r\n\r\n /**\r\n * Array representation of the possible choices.\r\n */\r\n get choicesArray(): string[] {\r\n if (!this.choices) {\r\n return null;\r\n }\r\n\r\n return this.choices.split(this.arrayItemSeparator);\r\n }\r\n\r\n set choicesArray(newChoices: string[]) {\r\n this.choices = newChoices.join(this.arrayItemSeparator);\r\n }\r\n\r\n /**\r\n * Returns the value (response of the user) of this custom field represented as string.\r\n * If the response contains multiple values (e.g. multiple choice), it is separated by \",\".\r\n * If the response is for a boolean field, true is represented by the string 'Yes',\r\n * false by the string 'No' and undefined by the string'NoChoice'.\r\n * @returns The response of the user represented as string. Or null if there is no response.\r\n */\r\n get valueAsString(): string {\r\n let response = \"\";\r\n if (this.value === null) {\r\n return null;\r\n }\r\n\r\n switch (this.type) {\r\n case Types.Boolean:\r\n if (this.value === undefined) {\r\n response = this.booleanOptionNoChoice;\r\n } else {\r\n response = this.value;\r\n }\r\n break;\r\n\r\n case Types.SimpleText:\r\n case Types.SingleChoice:\r\n response = this.value;\r\n break;\r\n\r\n case Types.MultipleChoice:\r\n response = this.value.join(this.responseItemSeparator);\r\n break;\r\n\r\n default:\r\n response = \"\";\r\n }\r\n return response;\r\n }\r\n\r\n set valueAsString(value: string) {\r\n if (value == null) {\r\n return;\r\n }\r\n\r\n switch (this.type) {\r\n case Types.Boolean:\r\n this.value = value;\r\n break;\r\n\r\n case Types.SimpleText:\r\n case Types.SingleChoice:\r\n this.value = value;\r\n break;\r\n\r\n case Types.MultipleChoice:\r\n this.value = value.split(this.responseItemSeparator);\r\n break;\r\n\r\n default:\r\n this.value = \"\";\r\n }\r\n }\r\n\r\n /**\r\n * Creates a response object of this custom field where the values are represented as string.\r\n * @returns The response of the user represented as string. Or null if there is no response.\r\n */\r\n public createResponse(): CustomRegistrationFieldResponse {\r\n if (this.valueAsString == null || this.valueAsString === this.booleanOptionNoChoice) {\r\n return null;\r\n }\r\n let response: CustomRegistrationFieldResponse = {\r\n id: this.customRegistrationFieldId,\r\n value: this.valueAsString ? this.valueAsString : ''\r\n };\r\n\r\n return response;\r\n }\r\n\r\n public createDeepCopy() {\r\n return new CustomRegistrationField(\r\n this.customRegistrationFieldId,\r\n this.text,\r\n this.type,\r\n this.isRequired,\r\n this.choices\r\n );\r\n }\r\n}\r\n\r\nexport enum Types {\r\n SimpleText = 100000000,\r\n Boolean = 100000001,\r\n MultipleChoice = 100000002,\r\n SingleChoice = 100000003\r\n}\r\n","export interface ErrorResponse {\r\n correlationId?: string;\r\n type: string;\r\n errorMessage: string;\r\n statusCode: number;\r\n}\r\n\r\nexport enum ErrorResponseType {\r\n EndpointNotFound = 'EndpointNotFound',\r\n InternalServerError = 'InternalServerError',\r\n OnlyHttpPostAllowed = 'OnlyHttpPostAllowed',\r\n AnonymousAccessNotAllowed = 'AnonymousAccessNotAllowed',\r\n OnlyHttpsAllowed = 'OnlyHttpsAllowed'\r\n}\r\n","export class LocalizableError extends Error {\r\n public localizationKey?: string;\r\n\r\n constructor(message: string, localizationKey: string) {\r\n super(message);\r\n this.localizationKey = localizationKey;\r\n }\r\n}\r\n","import { BrowserSessionService } from '../services/browser-session.service';\r\nimport { HttpD365Helper } from './../helpers/d365/HttpD365Helper';\r\nimport { HttpRestHelper } from './../helpers/rest/HttpRestHelper';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { HttpHelper } from './../helpers/HttpHelper';\r\nimport { environment } from './../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AadB2CHelper } from 'src/app/helpers/AadB2CHelper';\r\nimport { HttpMockHelper } from '../helpers/mock/HttpMockHelper';\r\n\r\nexport const HTTP_HELPER = new InjectionToken('http.helper');\r\n\r\nconst httpHelperFactory = (httpClient: HttpClient, aadB2CHelper: AadB2CHelper) => {\r\n if (environment.useMockData) {\r\n return new HttpMockHelper(httpClient);\r\n }\r\n if (environment.useRestStack) {\r\n return new HttpRestHelper(httpClient, aadB2CHelper);\r\n } else {\r\n return new HttpD365Helper(httpClient);\r\n }\r\n};\r\n\r\nexport let HttpHelperProvider = {\r\n provide: HTTP_HELPER,\r\n useFactory: httpHelperFactory,\r\n deps: [HttpClient, AadB2CHelper]\r\n};\r\n","import { TracksRestService } from './../services/rest/tracks.rest.service';\r\nimport { TracksD365Service } from './../services/d365/tracks.d365.service';\r\nimport { UserRestService } from './../services/rest/user.rest.service';\r\nimport { EventRestService } from './../services/rest/event.rest.service';\r\nimport { EventD365Service } from './../services/d365/event.d365.service';\r\nimport { SessionRestService } from './../services/rest/session.rest.service';\r\nimport { SessionD365Service } from './../services/d365/session.d365.service';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { HttpHelper } from './../helpers/HttpHelper';\r\nimport { UserD365Service } from './../services/d365/user.d365.service';\r\nimport { environment } from './../../environments/environment';\r\nimport { UserService } from './../services/user.service';\r\nimport { HTTP_HELPER } from 'src/app/providers/http.helper.provider';\r\nimport { SponsorshipsService } from '../services/sponsorships.service';\r\nimport { SponsorshipsRestService } from '../services/rest/sponsorships.rest.service';\r\nimport { SponsorsD365Service } from '../services/d365/sponsors.d366.service';\r\n\r\nexport const EVENT_SERVICE = new InjectionToken('event.service');\r\nexport const SESSION_SERVICE = new InjectionToken('session.service');\r\nexport const TRACKS_SERVICE = new InjectionToken('tracks.service');\r\nexport const USER_SERVICE = new InjectionToken('user.service');\r\nexport const SPONSORSHIPS_SERVICE = new InjectionToken('sponsors.service');\r\n\r\nconst eventServiceFactory = (httpHelper: HttpHelper) => {\r\n if (environment.useMockData) {\r\n environment.apiEndpoint = './assets/mocks/api/responses/';\r\n }\r\n\r\n if (environment.useRestStack) {\r\n return new EventRestService(httpHelper);\r\n } else {\r\n return new EventD365Service(httpHelper);\r\n }\r\n};\r\n\r\nconst sessionServiceFactory = (httpHelper: HttpHelper) => {\r\n if (environment.useRestStack) {\r\n return new SessionRestService(httpHelper);\r\n } else {\r\n return new SessionD365Service(httpHelper);\r\n }\r\n};\r\n\r\nconst tracksServiceFactory = (httpHelper: HttpHelper) => {\r\n if (environment.useRestStack) {\r\n return new TracksRestService(httpHelper);\r\n } else {\r\n return new TracksD365Service(httpHelper);\r\n }\r\n};\r\n\r\nconst userServiceFactory = (httpHelper: HttpHelper) => {\r\n if (environment.useRestStack) {\r\n return new UserRestService(httpHelper);\r\n } else {\r\n return new UserD365Service(httpHelper);\r\n }\r\n};\r\n\r\nconst sponsorshipsServiceFactory = () => {\r\n if (environment.useRestStack) {\r\n return new SponsorshipsRestService();\r\n } else {\r\n return new SponsorsD365Service();\r\n }\r\n};\r\n\r\nexport let EventServiceProvider = {\r\n provide: EVENT_SERVICE,\r\n useFactory: eventServiceFactory,\r\n deps: [HTTP_HELPER]\r\n};\r\n\r\nexport let SessionServiceProvider = {\r\n provide: SESSION_SERVICE,\r\n useFactory: sessionServiceFactory,\r\n deps: [HTTP_HELPER]\r\n};\r\n\r\nexport let TracksServiceProvider = {\r\n provide: TRACKS_SERVICE,\r\n useFactory: tracksServiceFactory,\r\n deps: [HTTP_HELPER]\r\n};\r\n\r\nexport let UserServiceProvider = {\r\n provide: USER_SERVICE,\r\n useFactory: userServiceFactory,\r\n deps: [HTTP_HELPER]\r\n};\r\n\r\nexport let SponsorshipsServiceProvider = {\r\n provide: SPONSORSHIPS_SERVICE,\r\n useFactory: sponsorshipsServiceFactory,\r\n};\r\n","import { AadB2CHelper } from './../helpers/AadB2CHelper';\r\nimport { environment } from './../../environments/environment';\r\nimport { ExternalUrlResolver } from './external.url.resolver';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { UserService } from './../services/user.service';\r\nimport { USER_SERVICE } from 'src/app/providers/service.providers';\r\nimport { EMPTY } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ExternalLoginUrlResolver extends ExternalUrlResolver implements Resolve {\r\n private static isActive = false;\r\n\r\n constructor(private aadB2CHElper: AadB2CHelper, @Inject(USER_SERVICE) private userService: UserService) {\r\n super();\r\n }\r\n\r\n public static isResolverActive() {\r\n return ExternalLoginUrlResolver.isActive;\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot) {\r\n ExternalLoginUrlResolver.isActive = true;\r\n\r\n if (environment.useAadB2C) {\r\n this.aadB2CHElper.login().then(() => this.userService.refreshUser()).then(() => ExternalLoginUrlResolver.isActive = false);\r\n } else {\r\n this.redirectToExternalUrl('SignIn', route);\r\n ExternalLoginUrlResolver.isActive = false;\r\n }\r\n\r\n return EMPTY;\r\n }\r\n}\r\n","import { AadB2CHelper } from 'src/app/helpers/AadB2CHelper';\r\nimport { EMPTY } from 'rxjs';\r\nimport { environment } from './../../environments/environment';\r\nimport { ExternalUrlResolver } from './external.url.resolver';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ExternalLogoutUrlResolver extends ExternalUrlResolver implements Resolve {\r\n\r\n constructor(private aadB2CHElper: AadB2CHelper) {\r\n super();\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot) {\r\n if (environment.useAadB2C) {\r\n this.aadB2CHElper.logout();\r\n } else {\r\n this.redirectToExternalUrl('Account/Login/Logoff', route);\r\n }\r\n\r\n return EMPTY;\r\n }\r\n}\r\n","import { EMPTY } from 'rxjs';\r\nimport { environment } from './../../environments/environment';\r\nimport { ExternalUrlResolver } from './external.url.resolver';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ExternalProfileUrlResolver extends ExternalUrlResolver implements Resolve {\r\n\r\n resolve(route: ActivatedRouteSnapshot) {\r\n if (!environment.useAadB2C) {\r\n this.redirectToExternalUrl('profile', route);\r\n }\r\n\r\n return EMPTY;\r\n }\r\n}\r\n","import { environment } from './../../environments/environment';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\n\r\nexport class ExternalUrlResolver {\r\n\r\n constructor() {\r\n }\r\n\r\n redirectToExternalUrl(externalSubroute: string, route: ActivatedRouteSnapshot) {\r\n const externalLoginBaseUrl = `/${externalSubroute}`;\r\n let returnUrl = '/';\r\n const eventId = route.queryParams['id'];\r\n if (eventId) {\r\n returnUrl = `${returnUrl}event?id=${eventId}`;\r\n }\r\n const externalLoginUrl = `${externalLoginBaseUrl}?returnUrl=${returnUrl}`;\r\n window.open(externalLoginUrl, '_self');\r\n }\r\n}\r\n","import { ConfirmationComponent } from \"./components/eventregistration/confirmation/confirmation.component\";\r\nimport { EventRegistrationComponent, EventCheckoutRoutePaths } from \"./components/eventregistration/eventregistration.component\";\r\nimport { EventComponent, EventDetailSections } from \"./components/event/event.component\";\r\nimport { SpinnerComponent } from \"./components/spinner/spinner.component\";\r\nimport { HomeComponent } from \"./components/home/home.component\";\r\nimport { Routes } from \"@angular/router\";\r\nimport { ExternalLoginUrlResolver } from \"./resolvers/external.login.url.resolver\";\r\nimport { ExternalLogoutUrlResolver } from \"./resolvers/external.logout.url.resolver\";\r\nimport { ExternalProfileUrlResolver } from \"./resolvers/external.profile.url.resolver\";\r\nimport { MyRegistrationsComponent } from \"./components/myregistrations/myregistrations.component\";\r\nimport { IsAuthenticatedGuard } from \"src/app/guards/is.authenticated.guard\";\r\nimport { PaymentDemoComponent } from \"src/app/components/eventregistration/paymentdemo/payment.demo\";\r\nimport { SessionsComponent } from \"./components/event/sessions/sessions.component\";\r\nimport { SessiontracksComponent } from \"./components/event/sessiontracks/sessiontracks.component\";\r\nimport { SpeakersComponent } from \"./components/event/speakers/speakers.component\";\r\nimport { PassesComponent } from \"./components/event/passes/passes.component\";\r\nimport { SessionSelectionComponent } from './components/eventregistration/session-selection/session-selection.component';\r\n\r\n\r\n\r\n// WARNING: Adding routes can break compatibility with hosted portal!\r\n// Make sure to add a web page in Portals if you want to add an additional route.\r\nexport const AppRoutes: Routes = [\r\n { path: \"\", redirectTo: \"home\", pathMatch: \"full\" },\r\n { path: \"home\", component: HomeComponent },\r\n { path: \"spinner\", component: SpinnerComponent },\r\n {\r\n path: \"event\",\r\n component: EventComponent,\r\n children: [\r\n {\r\n path: \"\",\r\n redirectTo: EventDetailSections.Sessions,\r\n pathMatch: \"prefix\"\r\n },\r\n {\r\n path: EventDetailSections.Sessions,\r\n component: SessionsComponent\r\n },\r\n {\r\n path: EventDetailSections.SessionTracks,\r\n component: SessiontracksComponent\r\n },\r\n {\r\n path: EventDetailSections.Speakers,\r\n component: SpeakersComponent\r\n },\r\n {\r\n path: EventDetailSections.PassInformation,\r\n component: PassesComponent\r\n }\r\n ]\r\n },\r\n { \r\n path: EventCheckoutRoutePaths.REGISTRATION, \r\n component: EventRegistrationComponent,\r\n children: [\r\n {\r\n path: \"\",\r\n component: SessionSelectionComponent\r\n }\r\n ]\r\n },\r\n { path: EventCheckoutRoutePaths.CONFIRMATION, component: ConfirmationComponent },\r\n { path: EventCheckoutRoutePaths.PAYMENT, component: PaymentDemoComponent },\r\n {\r\n path: \"externalLogin\",\r\n resolve: { url: ExternalLoginUrlResolver },\r\n component: HomeComponent\r\n },\r\n {\r\n path: \"externalLogout\",\r\n resolve: { url: ExternalLogoutUrlResolver },\r\n component: HomeComponent\r\n },\r\n {\r\n path: \"externalProfile\",\r\n resolve: { url: ExternalProfileUrlResolver },\r\n component: HomeComponent\r\n },\r\n {\r\n path: \"myregistrations\",\r\n canActivate: [IsAuthenticatedGuard],\r\n component: MyRegistrationsComponent\r\n },\r\n { path: \"**\", redirectTo: \"home\" }\r\n];\r\n","import { Injectable, Inject } from \"@angular/core\";\r\nimport { Event } from \"src/app/models/Event\";\r\nimport { Session } from \"src/app/models/Session\";\r\nimport { Pass } from \"src/app/models/Pass\";\r\nimport { EVENT_SERVICE, SESSION_SERVICE } from \"src/app/providers/service.providers\";\r\nimport { EventService } from \"src/app/services/event.service\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { SessionService } from './session.service';\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class ActiveEventService {\r\n private events: Map;\r\n private sessions: Map>;\r\n private passes: Map>;\r\n\r\n constructor(\r\n @Inject(EVENT_SERVICE) private eventService: EventService,\r\n @Inject(SESSION_SERVICE) private sessionService: SessionService\r\n ) {\r\n this.events = new Map();\r\n this.sessions = new Map>();\r\n this.passes = new Map>();\r\n }\r\n\r\n public getEvent(readableEventId: string): Observable {\r\n return Observable.create(observer => {\r\n // try to load from cache\r\n if (this.events.has(readableEventId)) {\r\n of(this.events.get(readableEventId)).subscribe(observer);\r\n return;\r\n }\r\n\r\n // fetch from server\r\n this.eventService\r\n .getEvent(readableEventId)\r\n .toPromise()\r\n .then(event => {\r\n this.events.set(event.readableEventId, event);\r\n of(event).subscribe(observer);\r\n }, error => observer.error(error));\r\n });\r\n }\r\n\r\n public getSessions(readableEventId: string, isCachingAllowed: boolean = true): Observable> {\r\n return Observable.create(observer => {\r\n // try to load from cache\r\n if (isCachingAllowed && this.sessions.has(readableEventId)) {\r\n of(this.sessions.get(readableEventId)).subscribe(observer);\r\n return;\r\n }\r\n\r\n // fetch from server\r\n this.eventService\r\n .getSessions(readableEventId)\r\n .toPromise()\r\n .then(sessions => {\r\n this.sessions.set(readableEventId, sessions);\r\n of(sessions).subscribe(observer);\r\n }, error => observer.error(error));\r\n });\r\n }\r\n\r\n public getAndFilterSessions(readableEventId: string, isCachingAllowed: boolean = true, sessionIdsToInclude: Array = null): Observable> {\r\n const sessionsObservable = this.getSessions(readableEventId, isCachingAllowed);\r\n\r\n if (sessionIdsToInclude == null || sessionIdsToInclude.length === 0) {\r\n return Observable.create(observer => {\r\n of([]).subscribe(observer);\r\n });\r\n }\r\n\r\n return Observable.create(observer => {\r\n sessionsObservable.toPromise().then(sessions => {\r\n const filteredSessions = sessions.filter(session => sessionIdsToInclude.some(id => session.id === id));\r\n of(filteredSessions).subscribe(observer);\r\n }, error => observer.error(error));\r\n });\r\n }\r\n\r\n public getPasses(readableEventId: string): Observable> {\r\n return Observable.create(observer => {\r\n // try to load from cache\r\n if (this.passes.has(readableEventId)) {\r\n of(this.passes.get(readableEventId)).subscribe(observer);\r\n return;\r\n }\r\n\r\n // fetch from server\r\n this.eventService\r\n .getPasses(readableEventId)\r\n .toPromise()\r\n .then(passes => {\r\n this.passes.set(readableEventId, passes);\r\n of(passes).subscribe(observer);\r\n }, error => observer.error(error));\r\n });\r\n }\r\n\r\n public async isFreeEvent(readableEventId: string): Promise {\r\n const passes = await this.getPasses(readableEventId).toPromise();\r\n if (passes == null) {\r\n return true;\r\n }\r\n\r\n return passes.length === 0;\r\n }\r\n\r\n public async hasEventSessions(readableEventId: string): Promise {\r\n const sessions = await this.getSessions(readableEventId).toPromise();\r\n if (sessions == null) {\r\n return false;\r\n }\r\n\r\n return sessions.length > 0;\r\n }\r\n}\r\n","import { WaitlistItem } from './../../models/WaitlistItem';\r\nimport { UserService } from './../user.service';\r\nimport { MyRegistration } from './../../models/MyRegistration';\r\nimport { User } from '../../models/User';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport abstract class UserBaseService implements UserService {\r\n\r\n public static readonly AnonymousUser: User = {\r\n id: '',\r\n firstName: '',\r\n lastName: '',\r\n isAnonymous: true\r\n };\r\n\r\n constructor() {\r\n }\r\n\r\n public abstract refreshUser(): void;\r\n\r\n public abstract getLoggedInUser(): Observable;\r\n\r\n public abstract isLoggedIn(): Observable;\r\n\r\n public abstract getRegistrationsForUser(): Observable;\r\n\r\n public abstract getWaitlistItemsForUser(): Observable;\r\n\r\n public abstract cancelRegistration(registrationId: string): Observable;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HipObject } from '../models/HipObject';\r\n\r\n@Injectable()\r\nexport class BrowserSessionService {\r\n private readonly captchaKey: string = 'captcha';\r\n private readonly purchaseIdKey: string = 'purchase-id';\r\n private readonly totalKey: string = 'total';\r\n private readonly currencyKey: string = 'currency';\r\n\r\n private readonly guidRegex: RegExp = new RegExp('^\\{?[0-9a-f]{8}\\-[0-9a-f]{4}\\-[0-9a-f]{4}\\-[0-9a-f]{4}\\-[0-9a-f]{12}\\}?$', 'i');\r\n\r\n constructor() {\r\n }\r\n\r\n public setCaptcha(captcha: HipObject) {\r\n sessionStorage.setItem(this.captchaKey, JSON.stringify(captcha));\r\n }\r\n\r\n public getCaptcha(): HipObject {\r\n return JSON.parse(sessionStorage.getItem(this.captchaKey));\r\n }\r\n\r\n public setPurchaseId(purchaseId: string) {\r\n if (this.guidRegex.test(purchaseId)) {\r\n sessionStorage.setItem(this.purchaseIdKey, purchaseId);\r\n }\r\n }\r\n\r\n public getPurchaseId(): string {\r\n const purchaseId = sessionStorage.getItem(this.purchaseIdKey);\r\n if (this.guidRegex.test(purchaseId)) {\r\n return purchaseId;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public setRegistrationTotal(total: number) {\r\n if (!isNaN(parseInt(total, 10))) {\r\n sessionStorage.setItem(this.totalKey, total.toString());\r\n }\r\n }\r\n\r\n public getRegistrationTotal(): number {\r\n return parseInt(sessionStorage.getItem(this.totalKey), 10);\r\n }\r\n\r\n public setCurrency(symbol: string) {\r\n if (encodeURIComponent(symbol)) {\r\n sessionStorage.setItem(this.currencyKey, symbol.toString());\r\n }\r\n }\r\n\r\n public getCurrency(): string {\r\n return decodeURIComponent(sessionStorage.getItem(this.currencyKey));\r\n }\r\n}\r\n","import { environment } from 'src/environments/environment';\r\nimport { Captcha } from './../models/Captcha';\r\nimport { Observable } from 'rxjs';\r\nimport { HipObject } from './../models/HipObject';\r\n\r\nexport class CaptchaService {\r\n\r\n public static readonly EmptyHipObject: HipObject = {\r\n Solution: '',\r\n Token: '',\r\n Type: '',\r\n FlowId: ''\r\n };\r\n\r\n constructor() {\r\n }\r\n\r\n public getHipObject(): HipObject {\r\n let hipObjectResult = CaptchaService.EmptyHipObject;\r\n\r\n if ((window.top).WLSPHIP0) {\r\n (window.top).WLSPHIP0.verify(\r\n (window.top).WLSPHIP0.verifyCallback,\r\n ''\r\n );\r\n if ((window.top).WLSPHIP0.error !== 0) {\r\n (window.top).WLSPHIP0.reloadHIP();\r\n return;\r\n }\r\n\r\n hipObjectResult = {\r\n Solution: (window.top).HipObject['Solution'],\r\n Token: (window.top).HipObject['Token'],\r\n Type: (window.top).HipObject['Type'],\r\n FlowId: (window.top).HipObject['FlowId']\r\n };\r\n }\r\n\r\n return hipObjectResult;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CookieService {\r\n public getItem(name: string): string {\r\n name = name + '=';\r\n const cookies = decodeURIComponent(document.cookie).split(';');\r\n\r\n const cookie = cookies.find(c => c.includes(name));\r\n\r\n if (cookie != null) {\r\n return cookie.split('=')[1];\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public setItem(name: string, value: string): void {\r\n document.cookie = `${name}=${value}; path=/;`;\r\n }\r\n}\r\n","import { EventService } from 'src/app/services/event.service';\r\nimport { environment } from './../../../environments/environment';\r\nimport { FinalizeRegistrationRequest } from './../../models/FinalizeRegistrationRequest';\r\nimport { RegistrationResult } from '../../models/RegistrationResult';\r\nimport { Captcha } from '../../models/Captcha';\r\nimport { Sponsorship } from '../../models/Sponsorship';\r\nimport { Speaker } from '../../models/Speaker';\r\nimport { SessionTrack } from '../../models/SessionTrack';\r\nimport { Session } from '../../models/Session';\r\nimport { Pass } from '../../models/Pass';\r\nimport { HttpHelper } from '../../helpers/HttpHelper';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { Event } from '../../models/Event';\r\nimport { Observable } from 'rxjs';\r\nimport { RegistrationData } from '../../models/RegistrationData';\r\nimport * as CustomRegistrationFieldModel from '../../models/CustomRegistrationField';\r\nimport { HTTP_HELPER } from 'src/app/providers/http.helper.provider';\r\n\r\n@Injectable()\r\nexport class EventD365Service implements EventService {\r\n\r\n private static readonly eventsEndpoint: string = 'api/events';\r\n private static readonly usersEndpoint: string = 'api/users';\r\n\r\n constructor(@Inject(HTTP_HELPER) private http: HttpHelper) {\r\n }\r\n\r\n public getPublishedEvents(): Observable {\r\n return this.http.get(`${environment.apiEndpoint}${EventD365Service.eventsEndpoint}/published/`);\r\n }\r\n\r\n public getEvent(readableEventId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${EventD365Service.eventsEndpoint}/event/?readableEventId=${readableEventId}`\r\n );\r\n }\r\n\r\n public getPasses(readableEventId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${EventD365Service.eventsEndpoint}/passes/?readableEventId=${readableEventId}`\r\n );\r\n }\r\n\r\n public getSessions(readableEventId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${EventD365Service.eventsEndpoint}/sessions/?readableEventId=${readableEventId}`\r\n );\r\n }\r\n\r\n public getSessionTracks(readableEventId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${EventD365Service.eventsEndpoint}/tracks/?readableEventId=${readableEventId}`\r\n );\r\n }\r\n\r\n public getSpeakers(readableEventId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${EventD365Service.eventsEndpoint}/speakers/?readableEventId=${readableEventId}`\r\n );\r\n }\r\n\r\n public getSponsors(readableEventId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${EventD365Service.eventsEndpoint}/sponsors/?readableEventId=${readableEventId}`\r\n );\r\n }\r\n\r\n public getCaptcha(readableEventId: string): Observable {\r\n return this.http.get(`${environment.apiEndpoint}${EventD365Service.eventsEndpoint}/captcha/`);\r\n }\r\n\r\n public getCustomRegistrationFields(readableEventId: string): Observable {\r\n // tslint:disable-next-line:max-line-length\r\n const url = `${environment.apiEndpoint}${EventD365Service.eventsEndpoint}/customregistrationsfields/?readableEventId=${readableEventId}`;\r\n return this.http.get(url);\r\n }\r\n\r\n public getEventRegistrationCount(readableEventId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${EventD365Service.eventsEndpoint}/registrationcount/?readableEventId=${readableEventId}`\r\n );\r\n }\r\n\r\n public registerToEvent(readableEventId: string, registrationData: RegistrationData): Observable {\r\n const url = `${environment.apiEndpoint}${EventD365Service.eventsEndpoint}/register/?readableEventId=${readableEventId}`;\r\n return this.http.post(url, registrationData);\r\n }\r\n\r\n public finalizeRegistration(readableEventId: string, requestData: FinalizeRegistrationRequest): Observable {\r\n const url = `${environment.apiEndpoint}${EventD365Service.eventsEndpoint}/finalizeregistration/?readableEventId=${readableEventId}`;\r\n return this.http.post(url, requestData);\r\n }\r\n\r\n public registerToSession(readableEventId: string, sessionId: string): Observable {\r\n return this.http.post(\r\n `${environment.apiEndpoint}${EventD365Service.usersEndpoint}/registertosession/`,\r\n {\r\n 'readableEventId': readableEventId,\r\n 'sessionId': sessionId\r\n }\r\n );\r\n }\r\n}\r\n","import { SessionService } from 'src/app/services/session.service';\r\nimport { environment } from './../../../environments/environment';\r\nimport { HttpHelper } from '../../helpers/HttpHelper';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HTTP_HELPER } from 'src/app/providers/http.helper.provider';\r\n\r\n@Injectable()\r\nexport class SessionD365Service implements SessionService {\r\n\r\n private static readonly sessionsEndpoint: string = 'api/sessions';\r\n\r\n constructor(@Inject(HTTP_HELPER) private http: HttpHelper) {\r\n }\r\n\r\n public getSessionRegistrationCount(sessionId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${SessionD365Service.sessionsEndpoint}/registrationcount/?sessionId=${sessionId}`\r\n );\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SponsorshipsService } from '../sponsorships.service';\r\nimport { Sponsorship } from 'src/app/models/Sponsorship';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable()\r\nexport class SponsorsD365Service implements SponsorshipsService {\r\n /**\r\n * The default sponsor logo that is provided by portal.\r\n */\r\n public defaultLogoSrc = `${environment.apiEndpoint}default_sponsor_image.png`;\r\n\r\n getLogoSrc(sponsor: Sponsorship): String {\r\n if (sponsor == null || sponsor.image == null) {\r\n return this.defaultLogoSrc;\r\n }\r\n\r\n return `data:image/gif;base64,${sponsor.image}`;\r\n }\r\n}\r\n","import { environment } from './../../../environments/environment';\r\nimport { TracksService } from './../tracks.service';\r\nimport { Session } from '../../models/Session';\r\nimport { HttpHelper } from '../../helpers/HttpHelper';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HTTP_HELPER } from 'src/app/providers/http.helper.provider';\r\n\r\n@Injectable()\r\nexport class TracksD365Service implements TracksService {\r\n\r\n private static readonly tracksEndpoint: string = 'api/tracks';\r\n\r\n constructor(@Inject(HTTP_HELPER) private http: HttpHelper) {\r\n }\r\n\r\n public getSessions(trackId: String): Observable {\r\n return this.http.get(`${environment.apiEndpoint}${TracksD365Service.tracksEndpoint}/sessions/?trackId=${trackId}`);\r\n }\r\n}\r\n","import { environment } from './../../../environments/environment';\r\nimport { MyRegistration } from './../../models/MyRegistration';\r\nimport { WaitlistItem } from './../../models/WaitlistItem';\r\nimport { HttpHelper } from '../../helpers/HttpHelper';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { User } from '../../models/User';\r\nimport { Observable, of, timer } from 'rxjs';\r\nimport { map, flatMap, shareReplay, catchError } from 'rxjs/operators';\r\nimport { UserBaseService } from './../../../app/services/base/user.base.service';\r\nimport { HTTP_HELPER } from 'src/app/providers/http.helper.provider';\r\n\r\n@Injectable()\r\nexport class UserD365Service extends UserBaseService {\r\n\r\n private static readonly usersEndpoint: string = 'api/users';\r\n private static readonly timerPeriodInMillis: number = 15 * 60 * 1000; // 15 minutes\r\n\r\n private getLoggedInUserApiCall$: Observable;\r\n\r\n constructor(@Inject(HTTP_HELPER) private http: HttpHelper) {\r\n super();\r\n this.getLoggedInUserApiCall$ = timer(0, UserD365Service.timerPeriodInMillis)\r\n .pipe(\r\n flatMap(i => this.http.get(`${environment.apiEndpoint}${UserD365Service.usersEndpoint}/authenticated/`)),\r\n catchError(error => of(UserBaseService.AnonymousUser)),\r\n shareReplay(1)\r\n );\r\n }\r\n\r\n public refreshUser(): void {\r\n }\r\n\r\n public getLoggedInUser(): Observable {\r\n return this.getLoggedInUserApiCall$;\r\n }\r\n\r\n public isLoggedIn(): Observable {\r\n return this.getLoggedInUser().pipe(map(user => user != null && !user.isAnonymous));\r\n }\r\n\r\n public getRegistrationsForUser(): Observable {\r\n return this.http.get(`${environment.apiEndpoint}${UserD365Service.usersEndpoint}/myregistrations/`);\r\n }\r\n\r\n public getWaitlistItemsForUser(): Observable {\r\n return this.http.get(`${environment.apiEndpoint}${UserD365Service.usersEndpoint}/mywaitlistitems/`);\r\n }\r\n\r\n public cancelRegistration(registrationId: string): Observable {\r\n return this.http.post(\r\n `${environment.apiEndpoint}${UserD365Service.usersEndpoint}/cancelregistration/`,\r\n { 'registrationId': registrationId }\r\n );\r\n }\r\n}\r\n","import { BrowserSessionService } from './browser-session.service';\r\nimport { LabelsModel } from './../models/LabelsModel';\r\nimport { SupportedLanguage } from './../models/SupportedLanguage';\r\nimport { environment } from './../../environments/environment';\r\nimport { HttpHelper } from '../helpers/HttpHelper';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { Observable, of, OperatorFunction } from 'rxjs';\r\nimport { tap, share, map, catchError, flatMap } from 'rxjs/operators';\r\nimport { HTTP_HELPER } from './../../app/providers/http.helper.provider';\r\nimport { from } from 'rxjs/internal/observable/from';\r\nimport { reduce } from 'rxjs/internal/operators/reduce';\r\nimport { CookieService } from './cookie.service';\r\n\r\n@Injectable()\r\nexport class LabelsService {\r\n\r\n private languageToLcidMap = {\r\n ArabicSaudiArabia: 1025,\r\n Bulgarian: 1026,\r\n Catalan: 1027,\r\n ChineseTaiwan: 1028,\r\n Czech: 1029,\r\n Danish: 1030,\r\n GermanGermany: 1031,\r\n Greek: 1032,\r\n EnglishUS: 1033,\r\n Finnish: 1035,\r\n FrenchFrance: 1036,\r\n Hebrew: 1037,\r\n Hungarian: 1038,\r\n ItalianItaly: 1040,\r\n Japanese: 1041,\r\n Korean: 1042,\r\n DutchNetherlands: 1043,\r\n NorwegianBokml: 1044,\r\n Polish: 1045,\r\n PortugueseBrazil: 1046,\r\n RomanianRomania: 1048,\r\n Russian: 1049,\r\n Croatian: 1050,\r\n Slovak: 1051,\r\n SwedishSweden: 1053,\r\n Thai: 1054,\r\n Turkish: 1055,\r\n Indonesian: 1057,\r\n Ukrainian: 1058,\r\n Slovenian: 1060,\r\n Estonian: 1061,\r\n Latvian: 1062,\r\n Lithuanian: 1063,\r\n Vietnamese: 1066,\r\n Basque: 1069,\r\n Galician: 1110,\r\n Chinese: 2052,\r\n EnglishGB: 2057,\r\n PortuguesePortugal: 2070,\r\n SerbianLatin: 2074,\r\n ChineseHongKong: 3076,\r\n EnglishAustralia: 3081,\r\n SpanishSpain: 3082,\r\n FrenchCanada: 3084,\r\n SerbianCyrillic: 3098,\r\n EnglishCanada: 4105,\r\n };\r\n\r\n private languageCodeToLcidMap = {\r\n 'ar-sa': 1025,\r\n 'bg': 1026,\r\n 'ca': 1027,\r\n 'zh-tw': 1028,\r\n 'cs': 1029,\r\n 'da': 1030,\r\n 'de': 1031,\r\n 'el': 1032,\r\n 'en-us': 1033,\r\n 'fi': 1035,\r\n 'fr': 1036,\r\n 'he': 1037,\r\n 'hu': 1038,\r\n 'it': 1040,\r\n 'ja': 1041,\r\n 'ko': 1042,\r\n 'nl': 1043,\r\n 'no': 1044,\r\n 'pl': 1045,\r\n 'pt-br': 1046,\r\n 'ro': 1048,\r\n 'ru': 1049,\r\n 'hr': 1050,\r\n 'sk': 1051,\r\n 'sv': 1053,\r\n 'th': 1054,\r\n 'tr': 1055,\r\n 'id': 1057,\r\n 'uk': 1058,\r\n 'sl': 1060,\r\n 'et': 1061,\r\n 'lv': 1062,\r\n 'lt': 1063,\r\n 'vi': 1066,\r\n 'eu': 1069,\r\n 'gl': 1110,\r\n 'zh-cn': 2052,\r\n 'en-gb': 2057,\r\n 'pt-pt': 2070,\r\n 'sr': 2074,\r\n 'zh-hk': 3076,\r\n 'en-au': 3081,\r\n 'es': 3082,\r\n 'fr-ca': 3084,\r\n 'sr-cy': 3098,\r\n 'en-ca': 4105,\r\n };\r\n\r\n private readonly DefaultBrowserLcid = 1033;\r\n private readonly DefaultUserLanguage = 'en-US';\r\n private readonly selectedLanguageLcidCookieKey: string = 'selected-language-lcid';\r\n\r\n private labelsModel$: Observable;\r\n private loadedLabelsModel: LabelsModel;\r\n\r\n constructor(\r\n @Inject(HTTP_HELPER) private http: HttpHelper,\r\n private browserSessionService: BrowserSessionService,\r\n private cookieService: CookieService\r\n ) {\r\n const savedLcid = this.getSelectedlcid();\r\n const localizationFileName = this.getLocalizationFileName(savedLcid);\r\n const apiCall$ = this.http.get(this.buildApiCallUrl(localizationFileName));\r\n\r\n this.labelsModel$ = apiCall$\r\n .pipe(this.saveLabelsModel())\r\n .pipe(this.handleLabelLoadingError())\r\n .pipe(share());\r\n }\r\n\r\n public getLanguageCodeByLcid(lcid: number) : string {\r\n const languageCode = Object.getOwnPropertyNames(this.languageCodeToLcidMap)\r\n .filter(prop => this.languageCodeToLcidMap[prop] === lcid)\r\n .map(prop => prop);\r\n \r\n if(languageCode.length === 0){\r\n return this.DefaultUserLanguage;\r\n }\r\n\r\n return languageCode[0];\r\n }\r\n\r\n public getCurrentLanguageCode() : string {\r\n if (this.isSelectedLanguageLcidSaved()) {\r\n const currentSelectedLcid = this.getSelectedLanguageLcid();\r\n\r\n return this.getLanguageCodeByLcid(currentSelectedLcid);\r\n }\r\n\r\n return this.DefaultUserLanguage;\r\n }\r\n\r\n public getLabelsModel(): Observable {\r\n if (this.labelsLoaded()) {\r\n return of(this.loadedLabelsModel);\r\n } else {\r\n return this.labelsModel$;\r\n }\r\n }\r\n\r\n public translateLabel(key: string, defaultValue?: string): Observable {\r\n return this.getLabelsModel().pipe(map(labelsModel => {\r\n if (labelsModel.labels[key] !== undefined) {\r\n return labelsModel.labels[key];\r\n } else {\r\n return defaultValue !== undefined ? defaultValue : key;\r\n }\r\n }));\r\n }\r\n\r\n public translateLabelWithParams(key: string, defaultValue?: string, params?: string[]): Observable {\r\n return this.getLabelsModel().pipe(map(labelsModel => {\r\n if (labelsModel.labels[key] !== undefined) {\r\n let label: string = labelsModel.labels[key];\r\n return this.format(label, params);\r\n } else {\r\n return defaultValue !== undefined ? this.format(defaultValue, params) : key;\r\n }\r\n }));\r\n }\r\n\r\n public format(format: string, args: string[]) {\r\n var returnValue = format;\r\n for (var i = 0; i < args.length; i++) {\r\n var actualValue = typeof (args[i]) === \"undefined\" || args[i] == null ? \"\": args[i].toString();\r\n returnValue = returnValue.replace(new RegExp(\"\\\\{\" + i + \"\\\\}\", 'g'), actualValue)\r\n }\r\n return returnValue;\r\n }\r\n\r\n public labelsLoaded(): boolean {\r\n return this.loadedLabelsModel !== undefined;\r\n }\r\n\r\n public getSupportedLanguages(): Observable {\r\n return from(this.extractSupportedLanguages())\r\n .pipe(this.flatMapToModel())\r\n .pipe(this.collectToArray());\r\n }\r\n\r\n private getSelectedlcid(): number {\r\n if (this.isSelectedLanguageLcidSaved()) {\r\n return this.getSelectedLanguageLcid();\r\n }\r\n\r\n const browserLcid = this.getLcidFromBrowser();\r\n this.saveLcidToCookie(browserLcid);\r\n return browserLcid;\r\n }\r\n\r\n private getLcidFromBrowser(): number {\r\n const userLanguage = this.getUserLanguage();\r\n return this.getUserLcid(userLanguage);\r\n }\r\n\r\n private getUserLanguage(): string {\r\n const userLanguage = navigator.languages ? navigator.languages[0] : (navigator.language || navigator['userLanguage']);\r\n if (userLanguage) {\r\n return userLanguage.toLowerCase();\r\n } else {\r\n return this.DefaultUserLanguage;\r\n }\r\n }\r\n\r\n private getUserLcid(userLanguage: string) {\r\n const userLcid = this.languageCodeToLcidMap[userLanguage] || this.languageCodeToLcidMap[userLanguage.substr(0,2)];\r\n if (userLcid) {\r\n return userLcid;\r\n } else {\r\n return this.DefaultBrowserLcid;\r\n }\r\n }\r\n\r\n private saveLcidToCookie(lcid: number) {\r\n this.setSelectedLanguageLcid(lcid);\r\n }\r\n\r\n private getLocalizationFileName(lcid: number): string {\r\n return `${lcid}.json`;\r\n }\r\n\r\n private buildApiCallUrl(localizationFileName: string): string {\r\n return `${environment.localizationEndpoint}${localizationFileName}`;\r\n }\r\n\r\n private saveLabelsModel(): OperatorFunction {\r\n return tap((labelsModel: LabelsModel) => {\r\n this.loadedLabelsModel = labelsModel;\r\n });\r\n }\r\n\r\n private handleLabelLoadingError(): OperatorFunction {\r\n return catchError((error, caught) => {\r\n this.loadedLabelsModel = {\r\n labels: {},\r\n isJapanese: false\r\n };\r\n return of(this.loadedLabelsModel);\r\n });\r\n }\r\n\r\n private extractSupportedLanguages(): string[] {\r\n const currentLcid = this.getSelectedlcid();\r\n return Object.getOwnPropertyNames(this.languageToLcidMap)\r\n .filter(prop => this.languageToLcidMap[prop] !== currentLcid)\r\n .map(prop => prop);\r\n }\r\n\r\n private flatMapToModel() {\r\n return flatMap((supportedLanguageKey: string) => {\r\n const supportedLanguageLabel$ = this.translateLabel(supportedLanguageKey);\r\n const supportedLanguageLcid = this.languageToLcidMap[supportedLanguageKey];\r\n return supportedLanguageLabel$.pipe(map(supportedLanguageLabel => {\r\n const supp: SupportedLanguage = {\r\n label: supportedLanguageLabel,\r\n lcid: supportedLanguageLcid\r\n };\r\n return supp;\r\n }));\r\n });\r\n }\r\n\r\n private collectToArray() {\r\n return reduce((acc: SupportedLanguage[], value: SupportedLanguage, index: number) => {\r\n acc.push(value);\r\n return acc;\r\n }, []);\r\n }\r\n\r\n public selectLanguage(selectedLanguageLcid: number) {\r\n this.saveLcidToCookie(selectedLanguageLcid);\r\n window.location.reload();\r\n }\r\n\r\n private setSelectedLanguageLcid(lcid: number) {\r\n this.cookieService.setItem(this.selectedLanguageLcidCookieKey, String(lcid));\r\n }\r\n\r\n private isSelectedLanguageLcidSaved(): boolean {\r\n return this.cookieService.getItem(this.selectedLanguageLcidCookieKey) !== null;\r\n }\r\n\r\n private getSelectedLanguageLcid(): number {\r\n return Number(this.cookieService.getItem(this.selectedLanguageLcidCookieKey));\r\n }\r\n}\r\n","import { RegistrationResult } from './../../models/RegistrationResult';\r\nimport { HTTP_HELPER } from './../../providers/http.helper.provider';\r\nimport { Captcha } from './../../models/Captcha';\r\nimport { EventService } from 'src/app/services/event.service';\r\nimport { environment } from './../../../environments/environment';\r\nimport { FinalizeRegistrationRequest } from './../../models/FinalizeRegistrationRequest';\r\nimport { Sponsorship } from '../../models/Sponsorship';\r\nimport { Speaker } from '../../models/Speaker';\r\nimport { SessionTrack } from '../../models/SessionTrack';\r\nimport { Session } from '../../models/Session';\r\nimport { Pass } from '../../models/Pass';\r\nimport { HttpHelper } from '../../helpers/HttpHelper';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { Event } from '../../models/Event';\r\nimport { Observable } from 'rxjs';\r\nimport { RegistrationData } from '../../models/RegistrationData';\r\nimport * as CustomRegistrationFieldModel from '../../models/CustomRegistrationField';\r\n\r\n@Injectable()\r\nexport class EventRestService implements EventService {\r\n private static readonly eventsEndpoint: string = 'events';\r\n\r\n constructor(@Inject(HTTP_HELPER) private http: HttpHelper) {\r\n }\r\n\r\n public getPublishedEvents(): Observable {\r\n return this.http.get(`${environment.apiEndpoint}${EventRestService.eventsEndpoint}/published`);\r\n }\r\n\r\n public getEvent(readableEventId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${EventRestService.eventsEndpoint}/${readableEventId}`\r\n );\r\n }\r\n\r\n public getPasses(readableEventId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${EventRestService.eventsEndpoint}/${readableEventId}/passes`\r\n );\r\n }\r\n\r\n public getSessions(readableEventId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${EventRestService.eventsEndpoint}/${readableEventId}/sessions`\r\n );\r\n }\r\n\r\n public getSessionTracks(readableEventId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${EventRestService.eventsEndpoint}/${readableEventId}/tracks`\r\n );\r\n }\r\n\r\n public getSpeakers(readableEventId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${EventRestService.eventsEndpoint}/${readableEventId}/speakers`\r\n );\r\n }\r\n\r\n public getSponsors(readableEventId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${EventRestService.eventsEndpoint}/${readableEventId}/sponsorships`\r\n );\r\n }\r\n\r\n getCaptcha(readableEventId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${EventRestService.eventsEndpoint}/${readableEventId}/captcha`\r\n );\r\n }\r\n\r\n public getCustomRegistrationFields(readableEventId: string): Observable {\r\n const url = `${environment.apiEndpoint}${EventRestService.eventsEndpoint}/${readableEventId}/custom-registration-fields`;\r\n return this.http.get(url);\r\n }\r\n\r\n public getEventRegistrationCount(readableEventId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${EventRestService.eventsEndpoint}/${readableEventId}/registrations/count`\r\n );\r\n }\r\n\r\n public registerToEvent(readableEventId: string, registrationData: RegistrationData): Observable {\r\n const url = `${environment.apiEndpoint}${EventRestService.eventsEndpoint}/${readableEventId}/registrations`;\r\n return this.http.post(url, registrationData, true);\r\n }\r\n\r\n public finalizeRegistration(readableEventId: string, requestData: FinalizeRegistrationRequest): Observable {\r\n const url = `${environment.apiEndpoint}${EventRestService.eventsEndpoint}/${readableEventId}/registrations/finalize`;\r\n return this.http.post(url, requestData, true);\r\n }\r\n\r\n public registerToSession(readableEventId: string, sessionId: string): Observable {\r\n return this.http.post(\r\n `${environment.apiEndpoint}${EventRestService.eventsEndpoint}/${readableEventId}/sessions/${sessionId}/registrations`, {}, true\r\n );\r\n }\r\n}\r\n","import { HTTP_HELPER } from './../../providers/http.helper.provider';\r\nimport { SessionService } from 'src/app/services/session.service';\r\nimport { environment } from './../../../environments/environment';\r\nimport { HttpHelper } from '../../helpers/HttpHelper';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class SessionRestService implements SessionService {\r\n private static readonly sessionsEndpoint: string = 'sessions';\r\n\r\n constructor(@Inject(HTTP_HELPER) private http: HttpHelper) {\r\n }\r\n\r\n public getSessionRegistrationCount(sessionId: string): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${SessionRestService.sessionsEndpoint}/${sessionId}/registrations/count`\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SponsorshipsService } from '../sponsorships.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Sponsorship } from 'src/app/models/Sponsorship';\r\n\r\n@Injectable()\r\nexport class SponsorshipsRestService implements SponsorshipsService {\r\n private static readonly sponsorshipsEndpoint: string = 'sponsorships';\r\n\r\n getLogoSrc(sponsor: Sponsorship): String {\r\n if (sponsor == null || sponsor.id == null || sponsor.id === '') {\r\n return '';\r\n }\r\n\r\n return `${environment.apiEndpoint}${SponsorshipsRestService.sponsorshipsEndpoint}/${sponsor.id}/logo`;\r\n }\r\n}\r\n","import { environment } from './../../../environments/environment';\r\nimport { TracksService } from './../tracks.service';\r\nimport { Session } from '../../models/Session';\r\nimport { HttpHelper } from '../../helpers/HttpHelper';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HTTP_HELPER } from '../../providers/http.helper.provider';\r\n\r\n@Injectable()\r\nexport class TracksRestService implements TracksService {\r\n\r\n private static readonly tracksEndpoint: string = 'tracks';\r\n\r\n constructor(@Inject(HTTP_HELPER) private http: HttpHelper) {\r\n }\r\n\r\n public getSessions(trackId: String): Observable {\r\n return this.http.get(`${environment.apiEndpoint}${TracksRestService.tracksEndpoint}/${trackId}/sessions`);\r\n }\r\n}\r\n","import { HTTP_HELPER } from './../../providers/http.helper.provider';\r\nimport { environment } from './../../../environments/environment';\r\nimport { MyRegistration } from './../../models/MyRegistration';\r\nimport { WaitlistItem } from './../../models/WaitlistItem';\r\nimport { HttpHelper } from '../../helpers/HttpHelper';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { User } from '../../models/User';\r\nimport { Observable, of, timer, merge, Subject } from 'rxjs';\r\nimport { map, flatMap, shareReplay, catchError } from 'rxjs/operators';\r\nimport { UserBaseService } from './../../../app/services/base/user.base.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserRestService extends UserBaseService {\r\n\r\n private static readonly usersEndpoint: string = 'users';\r\n private static readonly timerPeriodInMillis: number = 15 * 60 * 1000; // 15 minutes\r\n\r\n private getLoggedInUserApiCall$: Observable;\r\n\r\n private manualUpdateObserver: Subject = new Subject();\r\n\r\n constructor(@Inject(HTTP_HELPER) private http: HttpHelper) {\r\n super();\r\n this.getLoggedInUserApiCall$ = merge(timer(0, UserRestService.timerPeriodInMillis), this.manualUpdateObserver)\r\n .pipe(\r\n flatMap(i => this.http.get(`${environment.apiEndpoint}${UserRestService.usersEndpoint}/authenticated`, true)),\r\n catchError(error => of(UserBaseService.AnonymousUser)),\r\n shareReplay(1));\r\n }\r\n\r\n public refreshUser(): void {\r\n this.manualUpdateObserver.next();\r\n }\r\n\r\n public getLoggedInUser(): Observable {\r\n return this.getLoggedInUserApiCall$;\r\n }\r\n\r\n public isLoggedIn(): Observable {\r\n return this.getLoggedInUser().pipe(map(user => user != null && !user.isAnonymous));\r\n }\r\n\r\n public getRegistrationsForUser(): Observable {\r\n return this.http.get(\r\n `${environment.apiEndpoint}${UserRestService.usersEndpoint}/authenticated/registrations`, true\r\n );\r\n }\r\n\r\n public getWaitlistItemsForUser(): Observable {\r\n return this.http.get(`${environment.apiEndpoint}${UserRestService.usersEndpoint}/authenticated/waitlist-items`);\r\n }\r\n\r\n public cancelRegistration(registrationId: string): Observable {\r\n return this.http.post(\r\n `${environment.apiEndpoint}${UserRestService.usersEndpoint}/authenticated/registrations/${registrationId}/cancel`, {}, true\r\n );\r\n }\r\n}\r\n","/**\r\n * This is the configuration when using the self-hosted approach.\r\n * For the self-hosted approach it is required to change the parameters to match your environment.\r\n * You can find more information on how to configure your self-hosted environment in\r\n * our Developer Guide (https://docs.microsoft.com/en-us/dynamics365/customer-engagement/marketing/developer/self-hosted).\r\n */\r\nexport const environment = {\r\n /**\r\n * Enables/Disabled the production mode of Angular.\r\n * You can find more information about the production mode here: https://angular.io/api/core/enableProdMode\r\n */\r\n production: true,\r\n /**\r\n * This field links to the version specified in the `package.json` file by default. There is no need to change this property.\r\n * However, if you prefer not to expose the version of the application, you can set it to `null`.\r\n **/\r\n buildVersion: require('../../package.json').version,\r\n /**\r\n * The URL that points to the Event Management API endpoint (which is used to retrieve information of events and to make registrations).\r\n * If you're using the deprecated Event Management Portal API then you need to enter the URL of your Portals.\r\n * If you're using the new Event Management Public API then you need to replace HOST with the value from the `Endpoint` field that you\r\n * get after registering your web application. Additionally you need to append 'EvtMgmt/api/v2.0/'.\r\n * Note: The URL **must** have a trailing slash.\r\n **/\r\n apiEndpoint: (\r\n window.location.href.indexOf('werkbedrijfrvn.nl') !== -1 ? 'https://2b88d1659c314a14a3ed010b7e6a582f.svc.dynamics.com/EvtMgmt/api/v2.0/' : 'https://88f4bf4042344469842cb8d5e455567d.svc.dynamics.com/EvtMgmt/api/v2.0/'\r\n ),\r\n /**\r\n * Points to the URL where the localization files are stored (by default they are stored in the root directory).\r\n */\r\n localizationEndpoint: '/',\r\n /**\r\n * Specifies the base URL from where images are served.\r\n * This configuration enables you to serve images from a different location which might be\r\n * required if you want to use a CDN or image processing service.\r\n */\r\n imagesEndpoint: 'assets/images/',\r\n /**\r\n * This setting specifies which API is used.\r\n * If set to true then the new Event Management Public API is used.\r\n * If set to false then the deprecated Event Management Portal API is used. This API can only be used if you host on Portals.\r\n * Note: In order to use the new Event Management Public API you need to register your web application in CRM.\r\n */\r\n useRestStack: true,\r\n /**\r\n * This authenticates your web application against our Event Management Public API.\r\n * You can retrieve the application token by registering a new web application in CRM.\r\n * Note: This token is not required if you're using the deprecated Event Management Portal API.\r\n */\r\n emApplicationtoken: (\r\n window.location.href.indexOf('werkbedrijfrvn.nl') !== -1 ?\r\n 'laRuQ7Q-sPh8UlLqSEOFkToHFEwCWiqdgGenk0r45nljTkZE7WyjtS0g54AOMKAzHvu2DWBz5ofmkJ3EIFUT0eksQOE8cu62TrtuN9509ruX6SWcBgq-_S8hVnLa-pBZ-pYy8RtlS9Toconp51LndlFQZSlhKWrxar7dJcCyYdTXnunWbmEh6zbWhy0W7TgPsKifeALi8209Pv-ERMf6XwUWi7tZWs0mbF2EcHfD5kn_doqLIIwv9G6cMhsfy3Ca' :\r\n (\r\n window.location.href.indexOf('.vk10.nl') !== -1 ?\r\n 'RjjnHN_BxlyBREJIrAzFzw9Y7kyEtexRfIb_14deDL-uj6YVnvRJQn9dLTxK0BUx2D1bafRigy5FVeaMGQGjH_XFJ5fmQTOTCzjLXEd92jBWRiM4Sah0U48MBM0EYBitZ3zwjbUanEDykxXVbGgwDxELKwEvYpP6AxJigLnE34zEEdoJVUDT-9RwoKVatIbOiFKYd5OYnn99Hn__gwLWb0eb3M_Lv4F_fy5gujTeP4MrMmRuCyecnGfV2_2jrltE' :\r\n 'u8l8P_NFwgj5Ay-fOJxt1CiUZsyHRsHKK6E8GtZyi47L5MXRLaHE1x14QBO5dlg8hieFzxUH6h2lwn90k7HLoLktosAH_5n7Ir5jH9prG6FqXu4RX_FJDex3cl1gt8pUG1oomEh8LZwwNWEUtKqK2fHWxeVxSvY5GR96Fbgh4W2Jn-iHchYE7h1KnMoo9-_9xOlmBFqEZO7DPZS2Nvl_NxQ8cAWT64weE5Te7jU-AreGbF_7op1eqC6qWDkdZMTT'\r\n )\r\n ),\r\n\r\n /**\r\n * This flag specifies whether user authentication is supported (meaning user can to register/sign-in).\r\n * If set to false then the application will not display a possibility sign-in or register.\r\n */\r\n isAuthenticationEnabled: false,\r\n /**\r\n * Specifies whether you want to use **Azure Active Directory B2C identity management** for authentication.\r\n * If you want to use **Dynamics 365 Portals identity management** then this flag needs to be set to false.\r\n * Note: If AAD B2C is enabled then you need to configure the `aadB2CConfig` variable.\r\n */\r\n useAadB2C: false,\r\n /**\r\n * The configuration for **Azure Active Directory B2C identity management**.\r\n */\r\n aadB2CConfig: {\r\n authorityHost: '',\r\n tenant: '',\r\n clientID: '',\r\n signUpSignInPolicy: '',\r\n b2cScopes: [],\r\n redirectUri: ''\r\n },\r\n /**\r\n * This setting can be used to return mock objects instead of making real API calls.\r\n */\r\n useMockData: false\r\n};","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n"],"sourceRoot":""}