{"version":3,"sources":["./src/$_lazy_route_resource lazy","./src/app/app.component.css","./src/app/app.component.html","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/footer/footer.component.css","./src/app/footer/footer.component.html","./src/app/footer/footer.component.ts","./src/app/home/home.component.css","./src/app/home/home.component.html","./src/app/home/home.component.ts","./src/app/nav-menu/nav-menu.component.css","./src/app/nav-menu/nav-menu.component.html","./src/app/nav-menu/nav-menu.component.ts","./src/app/settings/settings.component.css","./src/app/settings/settings.component.html","./src/app/settings/settings.component.ts","./src/app/shared/guards/settings.guard.ts","./src/app/shared/models/storage-data.ts","./src/app/shared/models/user-settings.ts","./src/app/shared/services/app-insights.service.ts","./src/app/shared/services/configuration.service.ts","./src/app/shared/services/data.service.ts","./src/app/shared/utils/api-templates.ts","./src/app/shared/utils/content-element-helpers.ts","./src/app/shared/utils/list-helpers.ts","./src/app/terms-and-conditions/terms-and-conditions.component.css","./src/app/terms-and-conditions/terms-and-conditions.component.html","./src/app/terms-and-conditions/terms-and-conditions.component.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main.bundle.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/$$_lazy_route_resource lazy\n// module id = ./src/$$_lazy_route_resource lazy recursive\n// module chunks = main","module.exports = \".main-content {\\r\\n  padding-top: 86px;\\r\\n}\\r\\n\\r\\n@media screen and (max-width: 1200px) {\\r\\n  .main-content {\\r\\n    padding-top: 52px;\\r\\n  }\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.css\n// module id = ./src/app/app.component.css\n// module chunks = main","module.exports = \"<div class='container-fluid main-content'>\\r\\n  <div class='row'>\\r\\n    <div>\\r\\n      <app-nav-menu></app-nav-menu>\\r\\n    </div>\\r\\n    <div>\\r\\n      <router-outlet></router-outlet>\\r\\n    </div>\\r\\n    <app-footer></app-footer>\\r\\n  </div>\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.html\n// module id = ./src/app/app.component.html\n// module chunks = main","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { NgcCookieConsentService, NgcInitializeEvent, NgcStatusChangeEvent, NgcNoCookieLawEvent } from 'ngx-cookieconsent';\r\nimport { AppInsightsService } from './shared/services/app-insights.service';\r\nimport { DataService } from './shared/services/data.service';\r\n\r\nimport { StorageData } from './shared/models/storage-data';\r\n\r\n@Component({\r\n  selector: 'app-root',\r\n  templateUrl: './app.component.html',\r\n  styleUrls: ['./app.component.css'],\r\n  providers : [DataService, StorageData]\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n  // keep refs to subscriptions to be able to unsubscribe later\r\n  private popupOpenSubscription: Subscription;\r\n  private popupCloseSubscription: Subscription;\r\n  private initializeSubscription: Subscription;\r\n  private statusChangeSubscription: Subscription;\r\n  private revokeChoiceSubscription: Subscription;\r\n  private noCookieLawSubscription: Subscription;\r\n\r\n  constructor(\r\n    private ccService: NgcCookieConsentService,\r\n    private appInsightsService: AppInsightsService) {}\r\n  title = 'My RCSI';\r\n\r\n  ngOnInit() {\r\n    // subscribe to cookieconsent observables to react to main events\r\n    this.popupOpenSubscription = this.ccService.popupOpen$.subscribe(\r\n      () => {\r\n        // you can use this.ccService.getConfig() to do stuff...\r\n      });\r\n\r\n    this.popupCloseSubscription = this.ccService.popupClose$.subscribe(\r\n      () => {\r\n        // you can use this.ccService.getConfig() to do stuff...\r\n      });\r\n\r\n    this.initializeSubscription = this.ccService.initialize$.subscribe(\r\n      (event: NgcInitializeEvent) => {\r\n        // you can use this.ccService.getConfig() to do stuff...\r\n      });\r\n\r\n    this.statusChangeSubscription = this.ccService.statusChange$.subscribe(\r\n      (event: NgcStatusChangeEvent) => {\r\n        // you can use this.ccService.getConfig() to do stuff...\r\n      });\r\n\r\n    this.revokeChoiceSubscription = this.ccService.revokeChoice$.subscribe(\r\n      () => {\r\n        // you can use this.ccService.getConfig() to do stuff...\r\n      });\r\n\r\n      this.noCookieLawSubscription = this.ccService.noCookieLaw$.subscribe(\r\n      (event: NgcNoCookieLawEvent) => {\r\n        // you can use this.ccService.getConfig() to do stuff...\r\n      });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    // unsubscribe to cookieconsent observables to prevent memory leaks\r\n    this.popupOpenSubscription.unsubscribe();\r\n    this.popupCloseSubscription.unsubscribe();\r\n    this.initializeSubscription.unsubscribe();\r\n    this.statusChangeSubscription.unsubscribe();\r\n    this.revokeChoiceSubscription.unsubscribe();\r\n    this.noCookieLawSubscription.unsubscribe();\r\n  }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, APP_INITIALIZER } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ModalModule, BsDropdownModule } from 'ngx-bootstrap';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { NgcCookieConsentModule, NgcCookieConsentConfig} from 'ngx-cookieconsent';\r\nimport { FroalaViewModule } from 'angular-froala-wysiwyg';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { NavMenuComponent } from './nav-menu/nav-menu.component';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { SettingsComponent } from './settings/settings.component';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { TermsAndConditionsComponent } from './terms-and-conditions/terms-and-conditions.component';\r\n\r\nimport { ConfigurationService } from './shared/services/configuration.service';\r\nimport { AppInsightsService } from './shared/services/app-insights.service';\r\n\r\nimport { SettingsGuard } from './shared/guards/settings.guard';\r\n\r\nconst cookieConfig: NgcCookieConsentConfig = {\r\n  cookie: {\r\n    domain: window.location.host\r\n  },\r\n  position: 'bottom',\r\n  theme: 'block',\r\n  palette: {\r\n    popup: {\r\n      background: '#d3d3d3',\r\n      text: '#3f3f3f',\r\n      link: '#ffffff'\r\n    },\r\n    button: {\r\n      background: '#de1834',\r\n      text: '#ffffff',\r\n      border: 'transparent'\r\n    }\r\n  },\r\n  type: 'info',\r\n  content: {\r\n    message: '<b>Cookies:</b> By using this website, you agree to the use of cookies in accordance with the Cookie Policy. For more information on cookies see our',\r\n    dismiss: 'OK',\r\n    deny: 'Refuse cookies',\r\n    link: 'Cookie Policy',\r\n    href: 'https://www.rcsi.com/dublin/cookie-policy'\r\n  }\r\n};\r\n\r\n@NgModule({\r\n  declarations: [\r\n    AppComponent,\r\n    NavMenuComponent,\r\n    HomeComponent,\r\n    SettingsComponent,\r\n    FooterComponent,\r\n    TermsAndConditionsComponent\r\n  ],\r\n  imports: [\r\n    BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),\r\n    HttpClientModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    RouterModule.forRoot([\r\n      { path: '', component: HomeComponent, pathMatch: 'full', canActivate: [SettingsGuard] },\r\n      { path: 'settings', component: SettingsComponent },\r\n      { path: 'terms-and-conditions', component: TermsAndConditionsComponent },\r\n      { path: '**', component: SettingsComponent }\r\n    ]),\r\n    ModalModule.forRoot(),\r\n    BsDropdownModule.forRoot(),\r\n    BrowserAnimationsModule,\r\n    ToastrModule.forRoot(),\r\n    NgcCookieConsentModule.forRoot(cookieConfig),\r\n    FroalaViewModule.forRoot()\r\n  ],\r\n  providers: [SettingsGuard,\r\n    ConfigurationService,\r\n    {\r\n      provide: APP_INITIALIZER,\r\n      useFactory: (configService: ConfigurationService) =>\r\n        () => configService.loadConfigurationData(),\r\n      deps: [ConfigurationService],\r\n      multi: true\r\n    },\r\n    AppInsightsService\r\n  ],\r\n  bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","module.exports = \".footer {\\r\\n  background-color: #de1834;\\r\\n  color: #FFF;\\r\\n}\\r\\n\\r\\n.footer a {\\r\\n  color: #FFF;\\r\\n}\\r\\n\\r\\n.app-links {\\r\\n  margin: 32px;\\r\\n}\\r\\n\\r\\n.app-links img {\\r\\n  width: 155px;\\r\\n}\\r\\n\\r\\n.app-links .android img {\\r\\n  margin-top: -32px;\\r\\n}\\r\\n\\r\\n.app-links .ios {\\r\\n  margin: 0 10px;\\r\\n}\\r\\n\\r\\na .icon-background {\\r\\n  color: #c1c1c0;\\r\\n}\\r\\n\\r\\na:hover .icon-background {\\r\\n  color: #3f3f3f;\\r\\n}\\r\\n\\r\\n.footer-text {\\r\\n  margin-top: 10px;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/footer/footer.component.css\n// module id = ./src/app/footer/footer.component.css\n// module chunks = main","module.exports = \"<div class=\\\"footer\\\">\\r\\n  <div class=\\\"container\\\">\\r\\n    <div class=\\\"row\\\">\\r\\n      <div class=\\\"col-md-4 col-md-offset-2 col-sm-6\\\">\\r\\n        <h4>Download Our App</h4>\\r\\n        <div class=\\\"app-links\\\">\\r\\n          <a class=\\\"android\\\" href='https://play.google.com/store/apps/details?id=myrcsi.student.app' target=\\\"_blank\\\"><img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png' /></a>\\r\\n          <br class=\\\"hidden-xs hidden-sm\\\" />\\r\\n          <a class=\\\"ios\\\" href=\\\"https://itunes.apple.com/ie/app/myrcsi/id1463190448?mt=8\\\" target=\\\"_blank\\\" style=\\\"display:inline-block;overflow:hidden;background:url(https://linkmaker.itunes.apple.com/en-us/badge-lrg.svg?releaseDate=2015-07-24&kind=iossoftware&bubble=ios_apps) no-repeat;width:135px;height:40px;\\\"></a>\\r\\n        </div>\\r\\n      </div>\\r\\n\\r\\n      <div class=\\\"col-md-6 col-sm-6\\\">\\r\\n        <h4>Contact Us</h4>\\r\\n        <p>123 St Stephen's Green, Dublin 2, Ireland.</p>\\r\\n        <p>+353 1 402 2100</p>\\r\\n        <p>info@rcsi.ie</p>\\r\\n\\r\\n        <div class=\\\"social-links\\\">\\r\\n          <a href=\\\"https://www.facebook.com/rcsi123\\\" target=\\\"_blank\\\" class=\\\"fa-stack fa-lg\\\">\\r\\n            <i class=\\\"fa fa-circle fa-stack-2x icon-background\\\"></i>\\r\\n            <i class=\\\"fab fa-facebook-f fa-stack-1x\\\"></i>\\r\\n          </a>\\r\\n\\r\\n          <a href=\\\"https://www.instagram.com/rcsi_irl\\\" target=\\\"_blank\\\" class=\\\"fa-stack fa-lg\\\">\\r\\n            <i class=\\\"fa fa-circle fa-stack-2x icon-background\\\"></i>\\r\\n            <i class=\\\"fab fa-instagram fa-stack-1x\\\"></i>\\r\\n          </a>\\r\\n\\r\\n          <a href=\\\"https://twitter.com/RCSI_Irl\\\" target=\\\"_blank\\\" class=\\\"fa-stack fa-lg\\\">\\r\\n            <i class=\\\"fa fa-circle fa-stack-2x icon-background\\\"></i>\\r\\n            <i class=\\\"fab fa-twitter fa-stack-1x\\\"></i>\\r\\n          </a>\\r\\n\\r\\n          <a href=\\\"http://www.linkedin.com/company/rcsi\\\" target=\\\"_blank\\\" class=\\\"fa-stack fa-lg\\\">\\r\\n            <i class=\\\"fa fa-circle fa-stack-2x icon-background\\\"></i>\\r\\n            <i class=\\\"fab fa-linkedin-in fa-stack-1x\\\"></i>\\r\\n          </a>\\r\\n        </div>\\r\\n      </div>\\r\\n      <div class=\\\"col-xs-12\\\">\\r\\n        <p class=\\\"footer-text text-center\\\">\\r\\n          <small><a href=\\\"https://www.rcsi.com\\\" target=\\\"_blank\\\">© RCSI Royal College of Surgeons in Ireland</a></small>\\r\\n          &nbsp;|&nbsp;\\r\\n          <small><a href=\\\"https://www.rcsi.com/dublin/privacy-policy\\\" target=\\\"_blank\\\">Privacy Policy</a></small>\\r\\n          &nbsp;|&nbsp;\\r\\n          <small><a href=\\\"https://www.rcsi.com/dublin/freedom-of-information\\\" target=\\\"_blank\\\">Freedom of Information</a></small>\\r\\n          &nbsp;|&nbsp;\\r\\n          <small><a [routerLink]=\\\"['terms-and-conditions']\\\" target=\\\"_blank\\\">Terms & Conditions</a></small>\\r\\n        </p>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/footer/footer.component.html\n// module id = ./src/app/footer/footer.component.html\n// module chunks = main","import { Component, OnInit } from '@angular/core';\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 implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/footer/footer.component.ts","module.exports = \".home-container {\\r\\n  margin-top: 20px;\\r\\n}\\r\\n\\r\\n/* Main banner with background image */\\r\\n\\r\\n.banners {\\r\\n  position: relative;\\r\\n  background: url('banner-image.7701f88d42db93235bba.jpg');\\r\\n  z-index: 0;\\r\\n}\\r\\n\\r\\n.banners::after {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    background-color: rgba(154, 154, 154, 0.4); /*dim the background*/\\r\\n    z-index: -1;\\r\\n  }\\r\\n\\r\\n.banner-content {\\r\\n  display: -ms-flexbox;\\r\\n  display: -webkit-box;\\r\\n  display: flex;\\r\\n  -ms-flex-align: center;\\r\\n  -webkit-box-align: center;\\r\\n          align-items: center;\\r\\n  -webkit-box-pack: center;\\r\\n      -ms-flex-pack: center;\\r\\n          justify-content: center;\\r\\n}\\r\\n\\r\\n.banner-content h1 {\\r\\n    position: relative;\\r\\n    margin-top: 90px;\\r\\n    margin-bottom: 90px;\\r\\n    line-height: 1.2em;\\r\\n    color: #fff;\\r\\n  }\\r\\n\\r\\n.banner-content h1:before {\\r\\n      content: '';\\r\\n      position: absolute;\\r\\n      top: -30px;\\r\\n      left: 0;\\r\\n      background: url(\\\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2285.69%22 height%3D%2219.42%22 viewBox%3D%220 0 85.69 19.42%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23de1834%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg id%3D%22Layer_2%22%3E%3Cg id%3D%22Layer_1-2%22%3E%3Cpath d%3D%22M42.68 4.26h43V0h-43zM0 4.26h15.36V0H0z%22 class%3D%22cls-1%22%2F%3E%3Cpath d%3D%22M42.68 0L29 13.44 15.3 0l-3 3L29 19.42 45.67 3z%22 class%3D%22cls-1%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E\\\") no-repeat;\\r\\n      width: 86px;\\r\\n      height: 20px;\\r\\n    }\\r\\n\\r\\n.categories-panel, .contents-panel {\\r\\n  margin-top: 10px;\\r\\n}\\r\\n\\r\\n.all-contents-container i.fa {\\r\\n  width: 1.5em;\\r\\n}\\r\\n\\r\\n.all-contents-item {\\r\\n  padding: 10px;\\r\\n}\\r\\n\\r\\n.all-contents-item:hover {\\r\\n    background-color: #f3f3f3;\\r\\n    padding: 10px;\\r\\n  }\\r\\n\\r\\n.all-contents-item a {\\r\\n    color: #333;\\r\\n\\r\\n  }\\r\\n\\r\\nli {\\r\\n  font-size: 16px;\\r\\n  line-height: 1.6;\\r\\n}\\r\\n\\r\\nli a {\\r\\n    color: #3f3f3f;\\r\\n  }\\r\\n\\r\\nli a:hover {\\r\\n      color: #ef6a84;\\r\\n    }\\r\\n\\r\\n.favourite-contents, .popular-contents {\\r\\n  margin-top: 20px;\\r\\n  padding-left: 5px;\\r\\n}\\r\\n\\r\\n.heart {\\r\\n  color: #DE1834;\\r\\n  font-size: 20px;\\r\\n  cursor: pointer;\\r\\n}\\r\\n\\r\\n.panel.panel-category {\\r\\n  border-radius: 0px;\\r\\n  cursor: pointer;\\r\\n  margin-top: 27px;\\r\\n  -webkit-box-shadow: #bdc3c7 0 5px 5px;\\r\\n  box-shadow: #bdc3c7 0 5px 5px;\\r\\n}\\r\\n\\r\\n.panel-category .panel-heading {\\r\\n  color: #ffffff;\\r\\n  border-radius: 0px;\\r\\n}\\r\\n\\r\\n.category-contents h4 {\\r\\n  margin-top: 10px;\\r\\n  border-bottom: 1px solid #f8f8f7;\\r\\n}\\r\\n\\r\\n/* Content Categories section / Start */\\r\\n\\r\\n.use-cover-background {\\r\\n  background-size: cover;\\r\\n  background-position: center;\\r\\n}\\r\\n\\r\\n.img-circle {\\r\\n  display: block;\\r\\n  margin: auto;\\r\\n  width: 150px;\\r\\n  height: 150px;\\r\\n}\\r\\n\\r\\n/* Content Categories section / End */\\r\\n\\r\\n/* Category Cards / Start */\\r\\n\\r\\n.card-wrapper {\\r\\n  position: relative;\\r\\n  width: 100%;\\r\\n  margin: 2em auto 2em auto;\\r\\n  border-radius: 4px;\\r\\n  padding-bottom: 1.5em;\\r\\n  background-color: #fbfbfb;\\r\\n  -webkit-box-shadow: #bdc3c7 0 5px 5px;\\r\\n  box-shadow: #bdc3c7 0 5px 5px;\\r\\n}\\r\\n\\r\\n.card-header {\\r\\n  border-top-left-radius: 4px;\\r\\n  border-top-right-radius: 4px;\\r\\n  position: relative;\\r\\n  display: block;\\r\\n  overflow: hidden;\\r\\n  margin: 0;\\r\\n  -webkit-backface-visibility: hidden;\\r\\n  backface-visibility: hidden;\\r\\n  -webkit-transform: translate3d(0, 0, 0);\\r\\n  transform: translate3d(0, 0, 0);\\r\\n  background-color: #000;\\r\\n  height: 0;\\r\\n  padding: 56.25% 0 0 0;\\r\\n  border-bottom: 6px solid #DE1834;\\r\\n}\\r\\n\\r\\n.card-header img {\\r\\n    width: 100%;\\r\\n    -webkit-transition: -webkit-transform 0.5s ease;\\r\\n    transition: -webkit-transform 0.5s ease;\\r\\n    transition: transform 0.5s ease;\\r\\n    transition: transform 0.5s ease, -webkit-transform 0.5s ease;\\r\\n    -webkit-backface-visibility: hidden;\\r\\n    backface-visibility: hidden;\\r\\n    position: absolute;\\r\\n    max-width: 100%;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    margin: auto;\\r\\n    cursor: pointer;\\r\\n  }\\r\\n\\r\\n.card-header:hover img {\\r\\n    -webkit-transform: scale(1.1);\\r\\n    transform: scale(1.1);\\r\\n  }\\r\\n\\r\\n.circle-image {\\r\\n  position: absolute;\\r\\n  bottom: 106px;\\r\\n  right: 0;\\r\\n  left: 0;\\r\\n  margin: auto;\\r\\n  width: 60px;\\r\\n  height: 60px;\\r\\n}\\r\\n\\r\\n.card-logo {\\r\\n  width: 100%;\\r\\n  border: 6px solid #DE1834;\\r\\n  background-color: #fff;\\r\\n  border-radius: 50%;\\r\\n}\\r\\n\\r\\n.card-logo img {\\r\\n    width: 20px;\\r\\n    height: 20px;\\r\\n  }\\r\\n\\r\\n.data {\\r\\n  color: #444;\\r\\n  text-align: center;\\r\\n  font-weight: 500;\\r\\n}\\r\\n\\r\\n/*.data h3 {\\r\\n    margin-top: 38px;\\r\\n  }*/\\r\\n\\r\\n.data a:hover, .data a:focus {\\r\\n    text-decoration: none;\\r\\n  }\\r\\n\\r\\n.view {\\r\\n  margin: 1em auto 0 auto;\\r\\n  background-color: #DE1834;\\r\\n  width: 150px;\\r\\n  color: white;\\r\\n  text-align: center;\\r\\n  padding: 0.5em;\\r\\n  border-radius: 2px;\\r\\n  -webkit-transition-property: all;\\r\\n  transition-property: all;\\r\\n  -webkit-transition-duration: 0.3s;\\r\\n  transition-duration: 0.3s;\\r\\n  -webkit-transition-timing-function: ease;\\r\\n  transition-timing-function: ease;\\r\\n}\\r\\n\\r\\n.view:hover {\\r\\n    background-color: #e01940;\\r\\n    cursor: pointer;\\r\\n  }\\r\\n\\r\\n/* Category Cards / End */\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/home/home.component.css\n// module id = ./src/app/home/home.component.css\n// module chunks = main","module.exports = \"<section class=\\\"banners\\\">\\r\\n  <div class=\\\"container-fluid\\\">\\r\\n    <div class=\\\"row\\\">\\r\\n      <div class=\\\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-6 col-md-offset-2 col-lg-5 col-lg-offset-2 banner-content\\\">\\r\\n        <h1>Delivering world class surgical and medical training since 1784.</h1>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n</section>\\r\\n\\r\\n<div class=\\\"container-fluid\\\">\\r\\n  <div class=\\\"row home-container\\\" *ngIf=\\\"!contentElement\\\">\\r\\n    <div class=\\\"col-md-10 col-md-offset-1\\\">\\r\\n      <div class=\\\"row\\\">\\r\\n        <div class=\\\"col-md-3 contents-panel\\\" *ngIf=\\\"allContentElements && allContentElements?.length > 0\\\">\\r\\n          <div class=\\\"row\\\">\\r\\n            <div class=\\\"col-md-12\\\">\\r\\n              <div class=\\\"panel panel-category panel-default\\\">\\r\\n                <div class=\\\"panel-body\\\">\\r\\n                  <button type=\\\"button\\\" class=\\\"btn btn-primary btn-block\\\" (click)=\\\"viewAllContentElements(viewAllContentElementsTemplate)\\\"><i class=\\\"fa fa-search\\\"></i>&nbsp;Search Contents</button>\\r\\n\\r\\n\\r\\n                  <div class=\\\"favourite-contents col-md-12 col-sm-6 col-xs-12\\\">\\r\\n                    <h4><strong>Favourites</strong></h4>\\r\\n                    <ul class=\\\"fa-ul\\\">\\r\\n                      <li *ngIf=\\\"favouriteContentElements?.length === 0\\\"><i>You have no favourites</i></li>\\r\\n\\r\\n                      <li *ngFor=\\\"let element of favouriteContentElements\\\">\\r\\n                        <a *ngIf=\\\"element.IsLink\\\" [href]=\\\"element.Link\\\" target=\\\"_blank\\\" (click)=\\\"track(element)\\\">\\r\\n                          <span class=\\\"fa-li\\\">\\r\\n                            <i class=\\\"fa\\\" [innerHTML]=\\\"getFormattedFontAwesomeIcon(element.Icon)\\\" aria-hidden=\\\"true\\\"></i>\\r\\n                          </span> {{element.Name}}\\r\\n                        </a>\\r\\n                        <a *ngIf=\\\"!element.IsLink\\\" href=\\\"#\\\" (click)=\\\"openContent(element); track(element)\\\">\\r\\n                          <span class=\\\"fa-li\\\">\\r\\n                            <i class=\\\"fa\\\" [innerHTML]=\\\"getFormattedFontAwesomeIcon(element.Icon)\\\" aria-hidden=\\\"true\\\"></i>\\r\\n                          </span>{{element.Name}}\\r\\n                        </a>\\r\\n                      </li>\\r\\n                    </ul>\\r\\n                  </div>\\r\\n                  <div class=\\\"popular-contents col-md-12 col-sm-6 col-xs-12\\\" *ngIf=\\\"popularContentElements?.length > 0\\\">\\r\\n                    <h4><strong>Popular</strong></h4>\\r\\n                    <ul class=\\\"fa-ul\\\">\\r\\n                      <li *ngFor=\\\"let element of popularContentElements\\\">\\r\\n                        <a *ngIf=\\\"element.IsLink\\\" [href]=\\\"element.Link\\\" target=\\\"_blank\\\" (click)=\\\"track(element)\\\">\\r\\n                          <span class=\\\"fa-li\\\">\\r\\n                            <i class=\\\"fa\\\" [innerHTML]=\\\"getFormattedFontAwesomeIcon(element.Icon)\\\" aria-hidden=\\\"true\\\"></i>\\r\\n                          </span> {{element.Name}}\\r\\n                        </a>\\r\\n                        <a *ngIf=\\\"!element.IsLink\\\" href=\\\"#\\\" (click)=\\\"openContent(element); track(element)\\\">\\r\\n                          <span class=\\\"fa-li\\\">\\r\\n                            <i class=\\\"fa\\\" [innerHTML]=\\\"getFormattedFontAwesomeIcon(element.Icon)\\\" aria-hidden=\\\"true\\\"></i>\\r\\n                          </span> {{element.Name}}\\r\\n                        </a>\\r\\n                      </li>\\r\\n                    </ul>\\r\\n                  </div>\\r\\n\\r\\n                </div>\\r\\n\\r\\n              </div>\\r\\n            </div>\\r\\n          </div>\\r\\n\\r\\n        </div>\\r\\n        <div class=\\\"col-md-9 categories-panel\\\">\\r\\n          <div class=\\\"row\\\">\\r\\n            <div class=\\\"col-sm-6 col-lg-4\\\" *ngFor=\\\"let category of contentCategories\\\">\\r\\n              <div class=\\\"card-wrapper\\\">\\r\\n                <header class=\\\"card-header\\\" [style.border-color]=\\\"category.HeaderBackgroundColour\\\">\\r\\n\\r\\n                  <a (click)=\\\"viewCategoryContentElements(category, viewCategoryContentElementsTemplate)\\\">\\r\\n                    <img [src]=\\\"category.BackgroundImageUrl\\\" alt=\\\"background\\\">\\r\\n                  </a>\\r\\n                </header>\\r\\n\\r\\n                <div class=\\\"content\\\">\\r\\n                  <!--<div class=\\\"circle-image\\\">\\r\\n                    <img src=\\\"../../assets/rcsi-card-logo.png\\\" alt=\\\"go-to\\\" class=\\\"card-logo\\\" [style.border-color]=\\\"category.HeaderBackgroundColour\\\">\\r\\n                  </div>-->\\r\\n                  <div class=\\\"data\\\">\\r\\n                    <h3>{{category.Name}}</h3>\\r\\n                    <a (click)=\\\"viewCategoryContentElements(category, viewCategoryContentElementsTemplate)\\\">\\r\\n                      <div class=\\\"view\\\">\\r\\n                        <div><i class=\\\"fa fa-search-plus\\\" aria-hidden=\\\"true\\\"></i> View Contents</div>\\r\\n                      </div>\\r\\n                    </a>\\r\\n                  </div>\\r\\n                </div>\\r\\n              </div>\\r\\n            </div>\\r\\n          </div>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"row col-lg-6 col-lg-offset-3 col-md-8 col-md-offset-2 col-sm-10 col-sm-offset-1\\\" *ngIf=\\\"contentElement\\\" [froalaView]=\\\"contentElement?.Content\\\"></div>\\r\\n</div>\\r\\n\\r\\n<ng-template #viewAllContentElementsTemplate>\\r\\n  <div class=\\\"modal-header\\\">\\r\\n    <h4 class=\\\"modal-title pull-left\\\">Search Contents</h4>\\r\\n    <button type=\\\"button\\\" class=\\\"close pull-right\\\" aria-label=\\\"Close\\\" (click)=\\\"modalRef.hide()\\\">\\r\\n      <span aria-hidden=\\\"true\\\">&times;</span>\\r\\n    </button>\\r\\n  </div>\\r\\n  <div class=\\\"modal-body all-contents-container\\\">\\r\\n    <div class=\\\"row\\\">\\r\\n      <div class=\\\"col-md-12\\\">\\r\\n        <form class=\\\"form\\\" role=\\\"form\\\">\\r\\n          <div class=\\\"form-group has-feedback\\\">\\r\\n            <label class=\\\"control-label\\\" for=\\\"search\\\"></label>\\r\\n            <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"search\\\" placeholder=\\\"Search\\\" (input)=\\\"searchContentElement($event.target.value.toLowerCase())\\\">\\r\\n            <span class=\\\"glyphicon glyphicon-search form-control-feedback\\\"></span>\\r\\n          </div>\\r\\n        </form>\\r\\n      </div>\\r\\n\\r\\n      <div class=\\\"col-md-12 category-contents\\\" *ngFor=\\\"let category of navbarElements\\\">\\r\\n        <h4 *ngIf=\\\"searcheableGroupedContents[category.Nickname]?.length > 0\\\"><strong>{{category.Name}}</strong></h4>\\r\\n        <div class=\\\"row\\\">\\r\\n          <div class=\\\"col-md-6\\\" *ngFor=\\\"let element of searcheableGroupedContents[category.Nickname]\\\">\\r\\n            <div class=\\\"row\\\">\\r\\n              <div class=\\\"col-md-10 col-md-offset-1 all-contents-item\\\">\\r\\n                <a [hidden]=\\\"!element.IsLink\\\" [href]=\\\"element.Link\\\" (click)=\\\"track(element)\\\" target=\\\"_blank\\\"><i class=\\\"fa\\\" [innerHTML]=\\\"getFormattedFontAwesomeIcon(element.Icon)\\\" aria-hidden=\\\"true\\\"></i> {{element.Name}}</a>\\r\\n                <a [hidden]=\\\"element.IsLink\\\" href=\\\"#\\\" (click)=\\\"openContent(element); track(element)\\\"><i class=\\\"fa\\\" [innerHTML]=\\\"getFormattedFontAwesomeIcon(element.Icon)\\\" aria-hidden=\\\"true\\\"></i> {{element.Name}}</a>\\r\\n                &nbsp;\\r\\n                <i class=\\\"heart pull-right\\\" [ngClass]=\\\"element.IsFavourite ? 'glyphicon glyphicon-heart' : 'glyphicon glyphicon-heart-empty'\\\" (click)=\\\"toggleFavouriteContentElement(element)\\\"></i>\\r\\n              </div>\\r\\n            </div>\\r\\n          </div>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n</ng-template>\\r\\n\\r\\n<ng-template #viewCategoryContentElementsTemplate>\\r\\n  <div class=\\\"modal-header\\\">\\r\\n    <h4 class=\\\"modal-title pull-left\\\">{{selectedCategoryName}}</h4>\\r\\n    <button type=\\\"button\\\" class=\\\"close pull-right\\\" aria-label=\\\"Close\\\" (click)=\\\"modalRef.hide()\\\">\\r\\n      <span aria-hidden=\\\"true\\\">&times;</span>\\r\\n    </button>\\r\\n  </div>\\r\\n  <div class=\\\"modal-body\\\">\\r\\n    <div class=\\\"row\\\">\\r\\n      <div class=\\\"col-md-6\\\" *ngFor=\\\"let element of selectedCategoryContentElements\\\">\\r\\n        <div class=\\\"row\\\">\\r\\n          <div class=\\\"col-md-10 col-md-offset-1 all-contents-item\\\">\\r\\n            <a [hidden]=\\\"!element.IsLink\\\" [href]=\\\"element.Link\\\" (click)=\\\"track(element)\\\" target=\\\"_blank\\\"><i class=\\\"fa\\\" [innerHTML]=\\\"getFormattedFontAwesomeIcon(element.Icon)\\\" aria-hidden=\\\"true\\\"></i> {{element.Name}}</a>\\r\\n            <a [hidden]=\\\"element.IsLink\\\" href=\\\"#\\\" (click)=\\\"openContent(element); track(element)\\\"><i class=\\\"fa\\\" [innerHTML]=\\\"getFormattedFontAwesomeIcon(element.Icon)\\\" aria-hidden=\\\"true\\\"></i> {{element.Name}}</a>\\r\\n            &nbsp;\\r\\n            <i class=\\\"heart pull-right\\\" [ngClass]=\\\"element.IsFavourite ? 'glyphicon glyphicon-heart' : 'glyphicon glyphicon-heart-empty'\\\" (click)=\\\"toggleFavouriteContentElement(element)\\\"></i>\\r\\n          </div>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n</ng-template>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/home/home.component.html\n// module id = ./src/app/home/home.component.html\n// module chunks = main","import { Component, OnInit, OnDestroy, TemplateRef } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subscription } from 'rxjs';\r\nimport 'rxjs/add/observable/of';\r\nimport 'rxjs/add/operator/mergeMap';\r\nimport * as _ from 'underscore';\r\n\r\nimport { DataService } from '../shared/services/data.service';\r\nimport { ConfigurationService } from '../shared/services/configuration.service';\r\nimport { BsModalRef, ModalOptions, BsModalService } from 'ngx-bootstrap';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { AppInsightsService } from '../shared/services/app-insights.service';\r\n\r\nimport { ContentCategory } from '../shared/models/content-category.';\r\nimport { ContentElement } from '../shared/models/content-elements';\r\nimport { UserSettings } from '../shared/models/user-settings';\r\nimport { StorageData } from '../shared/models/storage-data';\r\n\r\nimport { ApiTemplates } from '../shared/utils/api-templates';\r\nimport { ListHelper } from '../shared/utils/list-helpers';\r\nimport { ContentElementHelper } from '../shared/utils/content-element-helpers';\r\n\r\n@Component({\r\n  selector: 'app-home',\r\n  templateUrl: './home.component.html',\r\n  styleUrls: ['./home.component.css']\r\n})\r\n\r\nexport class HomeComponent implements OnInit, OnDestroy {\r\n  modalRef: BsModalRef;\r\n  modalOptions: ModalOptions = {\r\n    class: 'modal-lg'\r\n  };\r\n\r\n  contentElementSubscription: Subscription;\r\n  currentUserSettingsSubscription: Subscription;\r\n  contentElementsSubscription: Subscription;\r\n\r\n  storageUrl: string;\r\n  currentUserSettings: UserSettings;\r\n\r\n  allContentCategories: ContentCategory[];\r\n  contentCategories: ContentCategory[];\r\n\r\n  selectedCategoryName: string;\r\n  selectedCategoryContentElements: ContentElement[];\r\n\r\n  contentElement: ContentElement;\r\n\r\n  allContentElements: ContentElement[];\r\n  searcheableGroupedContents: _.Dictionary<ContentElement[]>;\r\n\r\n  popularContentElements: ContentElement[];\r\n  favouriteContentElements: ContentElement[];\r\n\r\n  groupedContents: _.Dictionary<ContentElement[]>;\r\n  navbarElements: any[];\r\n\r\n  constructor(\r\n    private dataService: DataService,\r\n    private storageData: StorageData,\r\n    private http: HttpClient,\r\n    private configService: ConfigurationService,\r\n    private router: Router,\r\n    private modalService: BsModalService,\r\n    private toastr: ToastrService,\r\n    private appInsightsService: AppInsightsService) {}\r\n\r\n  ngOnInit() {\r\n    this.storageUrl = this.configService.config.storageUrl;\r\n\r\n    this.contentElement = this.storageData.storage;\r\n\r\n    this.contentElementSubscription = this.dataService.contentElement.subscribe(content => {\r\n      this.contentElement = content;\r\n    });\r\n\r\n    this.currentUserSettingsSubscription = this.dataService.currentUserSettings.subscribe(userSettings => {\r\n      this.currentUserSettings = userSettings;\r\n\r\n      this.contentElementsSubscription = this.getContentElements(userSettings).subscribe(contentElements => {\r\n        if (contentElements.length > 0) {\r\n          this.allContentElements = contentElements;\r\n\r\n          this.groupedContents = _.groupBy(this.allContentElements, elements => elements.Category.Nickname);\r\n          const groupedContentKeys = Object.keys(this.groupedContents);\r\n\r\n          this.navbarElements = [];\r\n          this.allContentCategories.forEach(category => {\r\n            if (groupedContentKeys.includes(category.Nickname)) {\r\n              this.navbarElements.push(category);\r\n            }\r\n          });\r\n\r\n          this.setContentCategories(this.navbarElements);\r\n          this.setPopularContentElements(contentElements);\r\n          this.setFavouriteContentElements();\r\n        } else {\r\n          this.toastr.clear();\r\n          this.toastr.info(`No content found for current settings. Please select a different location and/or persona.`);\r\n          this.router.navigate(['/settings']);\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.contentElementSubscription.unsubscribe();\r\n    this.currentUserSettingsSubscription.unsubscribe();\r\n    this.contentElementsSubscription.unsubscribe();\r\n  }\r\n\r\n  openContent(content: ContentElement) {\r\n    if (this.router.url === '/') {\r\n      this.dataService.setContentElements(content);\r\n    } else {\r\n      this.storageData.storage = content;\r\n      this.router.navigate(['/']);\r\n    }\r\n  }\r\n\r\n  getContentElements(userSettings) {\r\n    // Pass this to set unique HTTP request to prevent browser caching\r\n    const currentTimeMs = new Date().getTime();\r\n\r\n    const categoriesApiUrl = `${this.storageUrl}${ApiTemplates.CONFIG_CATEGORIES.expand()}?v=${currentTimeMs}`;\r\n    const contentElementsApiUrl = `${this.storageUrl}${ApiTemplates.CONFIG_CONTENTELEMENTS.expand()}?v=${currentTimeMs}`;\r\n\r\n    return this.http.get<any[]>(categoriesApiUrl)\r\n      .flatMap(categories => {\r\n        categories = ListHelper.sortByOrder(categories);\r\n\r\n        // Keep record of all categories for later reference\r\n        this.allContentCategories = categories;\r\n\r\n        return this.http.get<ContentElement[]>(contentElementsApiUrl)\r\n          .flatMap(result => {\r\n            let filteredContentElements = ContentElementHelper.filterContentElementsByUserSettings(result, userSettings);\r\n            filteredContentElements = ContentElementHelper.filterContentElementsByValidDate(filteredContentElements);\r\n\r\n            let categoryMappedContentElements = ContentElementHelper.mapCategoryNames(filteredContentElements, categories);\r\n            categoryMappedContentElements = ListHelper.sortByOrder(categoryMappedContentElements);\r\n\r\n            return Observable.of(categoryMappedContentElements);\r\n          });\r\n      });\r\n  }\r\n\r\n  setContentCategories(categoryList) {\r\n    this.contentCategories = [];\r\n    categoryList.forEach(item => {\r\n      const category = this.allContentCategories.filter(c => c.Nickname === item.Nickname)[0];\r\n\r\n      if (category) {\r\n        const currentTimeMin = Math.round(new Date().getTime() / 60000);\r\n        category.BackgroundImageUrl = `${this.storageUrl}Images/${category.BackgroundImage}?v=${currentTimeMin}`;\r\n        this.contentCategories.push(category);\r\n      }\r\n    });\r\n  }\r\n\r\n  setPopularContentElements(contentElements: ContentElement[]) {\r\n    this.popularContentElements = contentElements.filter(c => c.IsPopular);\r\n  }\r\n\r\n  setFavouriteContentElements() {\r\n    const favContentIdsLocalStorageKey = `favContentIds${this.currentUserSettings.location}${this.currentUserSettings.persona}`;\r\n    const favContentIds = localStorage.getItem(favContentIdsLocalStorageKey);\r\n    const favouriteContentElementIds = JSON.parse(favContentIds) as string[];\r\n\r\n    const favouriteContentElements: ContentElement[] = [];\r\n\r\n    if (favouriteContentElementIds !== null) {\r\n      favouriteContentElementIds.forEach(id => {\r\n        const element = this.allContentElements.filter(c => c.Id === id)[0];\r\n        if (element) {\r\n          favouriteContentElements.push(element);\r\n          element.IsFavourite = true;\r\n        }\r\n      });\r\n    }\r\n\r\n    this.favouriteContentElements = favouriteContentElements;\r\n  }\r\n\r\n  viewCategoryContentElements(category, template: TemplateRef<any>) {\r\n    this.initializeSearcheableGroupedContents();\r\n\r\n    this.selectedCategoryName = category.Name;\r\n    this.selectedCategoryContentElements = this.groupedContents[category.Nickname];\r\n\r\n    this.modalRef = this.modalService.show(template, this.modalOptions);\r\n  }\r\n\r\n  viewAllContentElements(template: TemplateRef<any>) {\r\n    this.initializeSearcheableGroupedContents();\r\n    this.modalRef = this.modalService.show(template, this.modalOptions);\r\n  }\r\n\r\n  searchContentElement(searchValue) {\r\n    this.initializeSearcheableGroupedContents();\r\n    const categories = Object.keys(this.searcheableGroupedContents);\r\n\r\n    for (const category of categories) {\r\n      let isDisplayCategory = false;\r\n      if (category.toLowerCase().includes(searchValue)) {\r\n        isDisplayCategory = true;\r\n      }\r\n\r\n      if (!isDisplayCategory) {\r\n        this.searcheableGroupedContents[category] = this.searcheableGroupedContents[category]\r\n          .filter(c => c.Name.toLowerCase().includes(searchValue));\r\n      }\r\n    }\r\n  }\r\n\r\n  toggleFavouriteContentElement(content: ContentElement) {\r\n    if (!content.IsFavourite) {\r\n      this.saveFavouriteContentElement(content);\r\n    } else {\r\n      this.removeFavouriteContentElement(content);\r\n    }\r\n  }\r\n\r\n  getFormattedFontAwesomeIcon(faCode) {\r\n    return faCode ? faCode.replace('\\\\u', '&#x') : null;\r\n  }\r\n\r\n  private initializeSearcheableGroupedContents() {\r\n    this.searcheableGroupedContents = JSON.parse(JSON.stringify(this.groupedContents));\r\n  }\r\n\r\n  private saveFavouriteContentElement(content: ContentElement) {\r\n    const favContentIdsLocalStorageKey = `favContentIds${this.currentUserSettings.location}${this.currentUserSettings.persona}`;\r\n\r\n    const favContentIds = localStorage.getItem(favContentIdsLocalStorageKey);\r\n    let favouriteContentElementIds = JSON.parse(favContentIds) as string[];\r\n\r\n    if (favouriteContentElementIds === null) {\r\n      favouriteContentElementIds = [];\r\n    }\r\n\r\n    // 1. Add new favourite content element to local storage\r\n    favouriteContentElementIds.push(content.Id);\r\n    localStorage.setItem(favContentIdsLocalStorageKey, JSON.stringify(favouriteContentElementIds));\r\n\r\n    // 2. Update IsFavourite property for selected content element in ALL content elements\r\n    this.allContentElements.forEach(element => {\r\n      if (element.Id === content.Id) {\r\n        element.IsFavourite = true;\r\n      }\r\n    });\r\n\r\n    // 3. Update IsFavourite property for selected content element in SEARCHED content elements\r\n    this.searcheableGroupedContents[content.Category.Nickname].forEach(element => {\r\n      if (element.Id === content.Id) {\r\n        element.IsFavourite = true;\r\n      }\r\n    });\r\n\r\n    // 4. Add new favourite content element to array object\r\n    this.favouriteContentElements.push(content);\r\n\r\n    this.toastr.success(`${content.Name} is added to your Favourites`);\r\n  }\r\n\r\n  private removeFavouriteContentElement(content: ContentElement) {\r\n    const favContentIdsLocalStorageKey = `favContentIds${this.currentUserSettings.location}${this.currentUserSettings.persona}`;\r\n\r\n    const favContentIds = localStorage.getItem(favContentIdsLocalStorageKey);\r\n    let favouriteContentElementIds = JSON.parse(favContentIds) as string[];\r\n\r\n    if (favouriteContentElementIds === null) {\r\n      favouriteContentElementIds = [];\r\n    }\r\n\r\n    // 1. Remove content element from local storage\r\n    favouriteContentElementIds = favouriteContentElementIds.filter(c => c !== content.Id);\r\n    localStorage.setItem(favContentIdsLocalStorageKey, JSON.stringify(favouriteContentElementIds));\r\n\r\n    // 2. Update IsFavourite property for selected content element in ALL content elements\r\n    this.allContentElements.forEach(element => {\r\n      if (element.Id === content.Id) {\r\n        element.IsFavourite = false;\r\n      }\r\n    });\r\n\r\n    // 3. Update IsFavourite property for selected content element in SEARCHED content elements\r\n    this.searcheableGroupedContents[content.Category.Nickname].forEach(element => {\r\n      if (element.Id === content.Id) {\r\n        element.IsFavourite = false;\r\n      }\r\n    });\r\n\r\n    // 4. Remove content element from array object\r\n    this.favouriteContentElements = this.favouriteContentElements.filter(c => c.Id !== content.Id);\r\n\r\n    this.toastr.info(`${content.Name} is removed from your Favourites`);\r\n  }\r\n\r\n  track(content: ContentElement) {\r\n    this.appInsightsService.logEvent(content.Category.Nickname + \" - \" + content.Name,\r\n      {\r\n        id: content.Id,\r\n        category: content.Category.Nickname,\r\n        isLink: content.IsLink,\r\n        location: this.currentUserSettings.location,\r\n        persona: this.currentUserSettings.persona\r\n      });\r\n  }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/home/home.component.ts","module.exports = \"/* MY RCSI With Red Bar On Top Beside Logo */\\r\\n.my-rcsi {\\r\\n  position: absolute;\\r\\n  top: 23px;\\r\\n  left: 86px;\\r\\n  z-index: 999;\\r\\n  color: #777;\\r\\n}\\r\\n.my-rcsi a {\\r\\n    color: #777;\\r\\n  }\\r\\n.my-rcsi a:hover {\\r\\n      text-decoration: none;\\r\\n      color: #DE1834;\\r\\n    }\\r\\n.my-rcsi a:focus {\\r\\n      text-decoration: none;\\r\\n      color: #777;\\r\\n    }\\r\\n.my-rcsi span {\\r\\n    position: relative;\\r\\n  }\\r\\n.my-rcsi span:before {\\r\\n      content: \\\"\\\";\\r\\n      position: absolute;\\r\\n      top: -8px;\\r\\n      height: 4px;\\r\\n      width: 100%;\\r\\n      background-color: #DE1834;\\r\\n    }\\r\\n/* RCSI Logo Main Nav Left */\\r\\n.navbar-brand {\\r\\n  padding: 10px 2px 10px 14px;\\r\\n}\\r\\n.navbar-brand > img {\\r\\n    width: 56px;\\r\\n    margin-right: 14px;\\r\\n    margin-top: 6px;\\r\\n  }\\r\\n/* Top Menu Position And Styles */\\r\\n.navbar-nav i.fa {\\r\\n    width: 1.5em;\\r\\n  }\\r\\n.navbar-nav > li > a {\\r\\n  padding-top: 56px;\\r\\n  padding-bottom: 10px;\\r\\n}\\r\\n.navbar-default .navbar-nav > li > a:focus,\\r\\n.navbar-default .navbar-nav > li > a:hover {\\r\\n  color: #DE1834;\\r\\n}\\r\\n.navbar-nav li.active > a {\\r\\n  background-color: transparent;\\r\\n}\\r\\n.navbar-default {\\r\\n  background-color: #fff;\\r\\n  border: none;\\r\\n  border-bottom: 1px solid #e6e6e6;\\r\\n  border-radius: 0px;\\r\\n}\\r\\n.navbar-default .navbar-toggle,\\r\\n  .navbar-default .navbar-toggle:hover {\\r\\n    border-color: transparent;\\r\\n    background-color: transparent;\\r\\n  }\\r\\n.navbar-default .navbar-nav > .open > a {\\r\\n    position: relative;\\r\\n  }\\r\\n.navbar-fixed-top .navbar-collapse {\\r\\n  max-height: 394px;\\r\\n}\\r\\n@media (max-width: 768px) {\\r\\n  .navbar-nav > li > a {\\r\\n    padding: 10px 22px !important;\\r\\n  }\\r\\n}\\r\\n/* Big Red Ribbon Mega Menu Dropdown */\\r\\n.red-ribbon {\\r\\n  padding: 30px 0px 30px 0px;\\r\\n}\\r\\n.red-ribbon a {\\r\\n    color: #fff;\\r\\n    line-height: 2.4em;\\r\\n  }\\r\\n.red-ribbon-link a:focus,\\r\\n.red-ribbon-link a:hover {\\r\\n  text-decoration: none;\\r\\n}\\r\\n.red-ribbon-link:hover > div {\\r\\n  background-color: #ef6a84;\\r\\n}\\r\\n.dropdown.open {\\r\\n  position: relative;\\r\\n}\\r\\n.dropdown-menu {\\r\\n  position: fixed;\\r\\n  top: 86px;\\r\\n  left: 0;\\r\\n  min-width: 100vw;\\r\\n  min-height: 200px;\\r\\n  background-color: #DE1834;\\r\\n  border: none;\\r\\n  border-radius: 0;\\r\\n  -webkit-transform-origin: top;\\r\\n  transform-origin: top;\\r\\n  -webkit-animation: anim-down 0.4s both;\\r\\n  animation: anim-down 0.4s both;\\r\\n  -webkit-animation-timing-function: ease-out;\\r\\n  animation-timing-function: ease-out;\\r\\n}\\r\\n@-webkit-keyframes anim-down {\\r\\n  0% {\\r\\n    -webkit-transform: scaleY(0.5);\\r\\n    transform: scaleY(0.5);\\r\\n    opacity: 0;\\r\\n  }\\r\\n\\r\\n  60% {\\r\\n    -webkit-transform: scaleY(1);\\r\\n    transform: scaleY(1);\\r\\n  }\\r\\n\\r\\n  100% {\\r\\n    opacity: 1;\\r\\n  }\\r\\n}\\r\\n@keyframes anim-down {\\r\\n  0% {\\r\\n    -webkit-transform: scaleY(0.5);\\r\\n    transform: scaleY(0.5);\\r\\n    opacity: 0;\\r\\n  }\\r\\n\\r\\n  60% {\\r\\n    -webkit-transform: scaleY(1);\\r\\n    transform: scaleY(1);\\r\\n  }\\r\\n\\r\\n  100% {\\r\\n    opacity: 1;\\r\\n  }\\r\\n}\\r\\n.dropdown.open > a:after {\\r\\n  content: \\\"\\\";\\r\\n  position: absolute;\\r\\n  bottom: -12px;\\r\\n  left: 50%;\\r\\n  -webkit-transform: translateX(-50%);\\r\\n  transform: translateX(-50%);\\r\\n  border-left: 10px solid transparent;\\r\\n  border-right: 10px solid transparent;\\r\\n  border-bottom: 10px solid #DE1834;\\r\\n}\\r\\n/* Animated Menu Open Close Hamburger */\\r\\n.navbar-toggle {\\r\\n  padding: 4px 4px;\\r\\n  margin-right: 16px;\\r\\n  margin-bottom: 4px;\\r\\n  margin-top: 4px;\\r\\n}\\r\\n.menu-toggle .menu-close {\\r\\n  cursor: pointer;\\r\\n  width: 28px;\\r\\n  height: auto;\\r\\n}\\r\\n.menu-toggle .menu-close .bar {\\r\\n    margin: 7px auto;\\r\\n    display: block;\\r\\n    background-color: #DE1834;\\r\\n    width: 100%;\\r\\n    height: 2px;\\r\\n    -webkit-transition: all 0.25s linear;\\r\\n    transition: all 0.25s linear;\\r\\n  }\\r\\n.bar {\\r\\n  margin: 7px auto;\\r\\n  display: block;\\r\\n  background-color: #DE1834;\\r\\n  width: 100%;\\r\\n  height: 2px;\\r\\n  -webkit-transition: all 0.25s linear;\\r\\n  transition: all 0.25s linear;\\r\\n}\\r\\n.menu-toggle .menu-close.open .bar:nth-child(2) {\\r\\n  opacity: 0;\\r\\n}\\r\\n.menu-toggle .menu-close.open .bar:nth-child(3) {\\r\\n  -webkit-transform: rotate(43deg);\\r\\n  transform: rotate(43deg);\\r\\n  -webkit-transform-origin: bottom right;\\r\\n  transform-origin: bottom right;\\r\\n}\\r\\n.menu-toggle .menu-close.open .bar:nth-child(1) {\\r\\n  -webkit-transform: rotate(-43deg);\\r\\n  transform: rotate(-43deg);\\r\\n  -webkit-transform-origin: top right;\\r\\n  transform-origin: top right;\\r\\n}\\r\\n.display-menu {\\r\\n  display: block !important;\\r\\n}\\r\\n.hide-menu {\\r\\n  display: none !important;\\r\\n}\\r\\n/* Media Queries For the Top Links On Desktop */\\r\\n@media screen and (min-width: 1200px) {\\r\\n  .navbar-default .navbar-nav > .open > a,\\r\\n  .navbar-default .navbar-nav > .open > a:focus,\\r\\n  .navbar-default .navbar-nav > .open > a:hover {\\r\\n    background-color: transparent;\\r\\n    color: #e82d51;\\r\\n  }\\r\\n}\\r\\n@media (max-width: 767px) {\\r\\n  .navbar-nav .open .dropdown-menu {\\r\\n    float: left;\\r\\n  }\\r\\n}\\r\\n/* Media Queries For The Dropdown On Mobile */\\r\\n@media (max-width: 1200px) {\\r\\n  .navbar-header {\\r\\n    float: none;\\r\\n  }\\r\\n  .collapse {\\r\\n    overflow-y: scroll !important;\\r\\n    overflow-x: hidden !important;\\r\\n  }\\r\\n  .navbar-toggle {\\r\\n    display: block;\\r\\n  }\\r\\n\\r\\n  .navbar-collapse {\\r\\n    border-top: 1px solid rgba(0, 0, 0, 0.24);\\r\\n    -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\\r\\n            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\\r\\n  }\\r\\n\\r\\n  .navbar-nav.navbar-right {\\r\\n    border-top: 1px solid rgba(0, 0, 0, 0.2);\\r\\n    padding-top: 8px;\\r\\n  }\\r\\n\\r\\n  .navbar-nav {\\r\\n    float: none !important;\\r\\n    margin: 7.5px -15px;\\r\\n  }\\r\\n\\r\\n    .navbar-nav > li {\\r\\n      float: none;\\r\\n      clear: both;\\r\\n    }\\r\\n\\r\\n      .navbar-nav > li > a {\\r\\n        padding: 10px 35px;    \\r\\n      }\\r\\n\\r\\n  .navbar-brand {\\r\\n    display: none;\\r\\n  }\\r\\n\\r\\n  .navbar-nav .open .dropdown-menu {\\r\\n    position: static;\\r\\n    background-color: #DE1834;\\r\\n  }\\r\\n\\r\\n  .navbar-default .navbar-nav > .open > a,\\r\\n  .navbar-default .navbar-nav > .open > a:focus,\\r\\n  .navbar-default .navbar-nav > .open > a:hover {\\r\\n    background-color: #f7f7f7;\\r\\n  }\\r\\n\\r\\n  .dropdown.open > a:after {\\r\\n    left: 36px;\\r\\n    bottom: -1px;\\r\\n  }\\r\\n\\r\\n  .navbar-nav > li > a {\\r\\n    padding-top: 12px;\\r\\n  }\\r\\n\\r\\n  .my-rcsi {\\r\\n    top: 23px;\\r\\n    left: 20px;\\r\\n  }\\r\\n\\r\\n  .red-ribbon {\\r\\n    padding: 10px 15px 10px 15px;\\r\\n  }\\r\\n}\\r\\n@media (min-width: 1200px) {\\r\\n  .navbar-collapse.collapse {\\r\\n    display: block !important;\\r\\n  }\\r\\n  .nav>li>a {\\r\\n    padding: 0;\\r\\n    margin: 56px 22px 10px 0px;\\r\\n  }\\r\\n  .dropdown.open a::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 3px;\\r\\n    background-color: #DE1834;\\r\\n    width: 100%;\\r\\n    position: absolute;\\r\\n    bottom: 23px;\\r\\n  }\\r\\n}\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/nav-menu/nav-menu.component.css\n// module id = ./src/app/nav-menu/nav-menu.component.css\n// module chunks = main","module.exports = \"<nav class=\\\"navbar navbar-default navbar-fixed-top\\\">\\r\\n    <div class=\\\"my-rcsi\\\"><a href='#' (click)=\\\"clearContent()\\\"><span>MyRCSI</span></a></div>\\r\\n    <div class=\\\"navbar-header\\\">\\r\\n      <div class=\\\"navbar-toggle collapsed menu-toggle\\\"  aria-expanded=\\\"false\\\">\\r\\n        <div class=\\\"menu-close\\\" (click)=\\\"onToggleMenu()\\\" [ngClass]=\\\"toggleMenu ? 'open' : ''\\\">\\r\\n          <span class=\\\"bar\\\"></span>\\r\\n          <span class=\\\"bar\\\"></span>\\r\\n          <span class=\\\"bar\\\"></span>\\r\\n        </div>\\r\\n      </div>\\r\\n      <a class=\\\"navbar-brand hidden-xs\\\" href=\\\"#\\\" (click)=\\\"clearContent()\\\"><img src=\\\"../../assets/Icon180.png\\\"></a>\\r\\n    </div>\\r\\n\\r\\n    <!-- Collect the nav links, forms, and other content for toggling -->\\r\\n    <div class=\\\"collapse navbar-collapse\\\" [ngClass]=\\\"toggleMenu?'display-menu':'hide-menu'\\\">\\r\\n      <ul class=\\\"nav navbar-nav\\\">\\r\\n        <li class=\\\"dropdown\\\" dropdown *ngFor=\\\"let category of navbarElements\\\" [routerLinkActive]='[\\\"link-active\\\"]' [routerLinkActiveOptions]='{ exact: true }'>\\r\\n          <a dropdownToggle class=\\\"dropdown-toggle menu-toggle\\\" data-toggle=\\\"dropdown\\\" role=\\\"button\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">{{category.Name}}</a>\\r\\n          <ul *dropdownMenu class=\\\"dropdown-menu\\\">\\r\\n            <li>\\r\\n              <div class=\\\"container red-ribbon\\\">\\r\\n                <div class=\\\"row\\\">\\r\\n                  <div *ngFor=\\\"let element of groupedContents[category.Nickname]\\\">\\r\\n                    <a *ngIf=\\\"element.IsLink\\\" class=\\\"red-ribbon-link\\\" target=\\\"_blank\\\" href=\\\"{{element.Link}}\\\" (click)=\\\"track(element)\\\">\\r\\n                      <div class=\\\"col-xs-12 col-sm-4 col-md-3\\\">\\r\\n                        <i class=\\\"fa\\\" [innerHTML]=\\\"getFormattedFontAwesomeIcon(element.Icon)\\\" aria-hidden=\\\"true\\\"></i> {{element.Name}}\\r\\n                      </div>\\r\\n                    </a>\\r\\n                    <a *ngIf=\\\"!element.IsLink\\\" class=\\\"red-ribbon-link\\\" href=\\\"#\\\" (click)=\\\"openContent(element); track(element); onToggleMenu();\\\">\\r\\n                      <div class=\\\"col-xs-12 col-sm-4 col-md-3\\\">\\r\\n                        <i class=\\\"fa\\\" [innerHTML]=\\\"getFormattedFontAwesomeIcon(element.Icon)\\\" aria-hidden=\\\"true\\\"></i> {{element.Name}}\\r\\n                      </div>\\r\\n                    </a>\\r\\n                  </div>\\r\\n                </div>\\r\\n              </div>\\r\\n            </li>\\r\\n          </ul>\\r\\n        </li>\\r\\n      </ul>\\r\\n      <ul class=\\\"nav navbar-nav navbar-right\\\">\\r\\n        <li [routerLinkActive]='[\\\"link-active\\\"]' [routerLinkActiveOptions]='{ exact: true }'>\\r\\n          <a [routerLink]='[\\\"/settings\\\"]' (click)=\\\"onToggleMenu()\\\"><i class=\\\"fa fa-cog\\\" aria-hidden=\\\"true\\\"></i> Setttings</a>\\r\\n        </li>\\r\\n      </ul>\\r\\n    </div>\\r\\n</nav>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/nav-menu/nav-menu.component.html\n// module id = ./src/app/nav-menu/nav-menu.component.html\n// module chunks = main","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription, Observable } from 'rxjs';\r\nimport * as _ from 'underscore';\r\n\r\nimport { DataService } from '../shared/services/data.service';\r\nimport { ConfigurationService } from '../shared/services/configuration.service';\r\nimport { AppInsightsService } from '../shared/services/app-insights.service';\r\n\r\nimport { ContentElement } from '../shared/models/content-elements';\r\nimport { StorageData } from '../shared/models/storage-data';\r\nimport { UserSettings } from '../shared/models/user-settings';\r\n\r\nimport { ApiTemplates } from '../shared/utils/api-templates';\r\nimport { ContentElementHelper } from '../shared/utils/content-element-helpers';\r\nimport { ListHelper } from '../shared/utils/list-helpers';\r\n\r\n\r\n@Component({\r\n  selector: 'app-nav-menu',\r\n  templateUrl: './nav-menu.component.html',\r\n  styleUrls: ['./nav-menu.component.css']\r\n})\r\nexport class NavMenuComponent implements OnInit, OnDestroy {\r\n\r\n  toggleMenu = false;\r\n\r\n  currentUserSettings: UserSettings;\r\n\r\n  private contentElements: ContentElement[];\r\n  groupedContents: _.Dictionary<ContentElement[]>;\r\n  navbarElements: any[];\r\n\r\n  currentUserSettingsSubscription: Subscription;\r\n  contentElementsSubscription: Subscription;\r\n\r\n  constructor(\r\n    private http: HttpClient,\r\n    private dataService: DataService,\r\n    private storageData: StorageData,\r\n    private router: Router,\r\n    private configService: ConfigurationService,\r\n    private appInsightsService: AppInsightsService) { }\r\n\r\n  ngOnInit() {\r\n    this.currentUserSettingsSubscription = this.dataService.currentUserSettings.subscribe(userSettings => {\r\n      this.currentUserSettings = userSettings;\r\n      this.contentElementsSubscription = this.getContentElements(userSettings).subscribe();\r\n    });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.currentUserSettingsSubscription.unsubscribe();\r\n    this.contentElementsSubscription.unsubscribe();\r\n  }\r\n\r\n  onToggleMenu() {\r\n    this.toggleMenu = !this.toggleMenu;\r\n  }\r\n\r\n  getContentElements(userSettings) {\r\n    // Pass this to set unique HTTP request to prevent browser caching\r\n    const currentTimeMs = new Date().getTime();\r\n\r\n    const categoriesApiUrl = `${this.configService.config.storageUrl}${ApiTemplates.CONFIG_CATEGORIES.expand()}?v=${currentTimeMs}`;\r\n    const contentElementsApiUrl = `${this.configService.config.storageUrl}${ApiTemplates.CONFIG_CONTENTELEMENTS.expand()}?v=${currentTimeMs}`;\r\n\r\n    return this.http.get<any[]>(categoriesApiUrl)\r\n      .flatMap(categories => {\r\n        categories = ListHelper.sortByOrder(categories);\r\n\r\n        return this.http.get<ContentElement[]>(contentElementsApiUrl)\r\n          .flatMap(result => {\r\n          let filteredContentElements = ContentElementHelper.filterContentElementsByUserSettings(result, userSettings);\r\n          filteredContentElements = ContentElementHelper.filterContentElementsByValidDate(filteredContentElements);\r\n\r\n          this.contentElements = ContentElementHelper.mapCategoryNames(filteredContentElements, categories);\r\n          this.contentElements = ListHelper.sortByOrder(this.contentElements);\r\n\r\n          this.groupedContents = _.groupBy(this.contentElements, elements => elements.Category.Nickname);\r\n          const groupedContentKeys = Object.keys(this.groupedContents);\r\n\r\n          this.navbarElements = [];\r\n          categories.forEach(category => {\r\n            if (groupedContentKeys.includes(category.Nickname)) {\r\n              this.navbarElements.push(category);\r\n            }\r\n          });\r\n\r\n          return Observable.of(true);\r\n        });\r\n    });\r\n  }\r\n\r\n  openContent(content: ContentElement) {\r\n    if (this.router.url === '/') {\r\n      this.dataService.setContentElements(content);\r\n    } else {\r\n      this.storageData.storage = content;\r\n      this.router.navigate(['/']);\r\n    }\r\n  }\r\n\r\n  clearContent() {\r\n    if (this.router.url === '/') {\r\n      this.dataService.setContentElements(null);\r\n    } else {\r\n      this.storageData.storage = null;\r\n      this.router.navigate(['/']);\r\n    }\r\n  }\r\n\r\n  getFormattedFontAwesomeIcon(faCode) {\r\n    return faCode ? faCode.replace('\\\\u', '&#x') : null;\r\n  }\r\n\r\n  track(content: ContentElement) {\r\n    this.appInsightsService.logEvent(content.Category.Nickname + \" - \" + content.Name,\r\n      {\r\n        id: content.Id,\r\n        category: content.Category.Nickname,\r\n        isLink: content.IsLink,\r\n        location: this.currentUserSettings.location,\r\n        persona: this.currentUserSettings.persona\r\n      });\r\n  }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/nav-menu/nav-menu.component.ts","module.exports = \".settings-container {\\r\\n  padding: 20px;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/settings/settings.component.css\n// module id = ./src/app/settings/settings.component.css\n// module chunks = main","module.exports = \"<div class=\\\"container-fluid settings-container\\\">\\r\\n  <div class=\\\"row\\\">\\r\\n    <div class=\\\"col-lg-4\\\">\\r\\n      <form [formGroup]=\\\"settingForm\\\" (ngSubmit)=\\\"onSubmit()\\\">\\r\\n        <h3>Settings</h3>\\r\\n          <div class=\\\"form-group\\\">\\r\\n            <label>Select Location</label>\\r\\n            <select formControlName=\\\"location\\\" class=\\\"form-control\\\" (change)=\\\"setLocation($event.target.value)\\\">\\r\\n              <option [ngValue]=\\\"null\\\">Select Location</option>\\r\\n              <option *ngFor=\\\"let location of locations\\\" value=\\\"{{location}}\\\">\\r\\n                {{location}}\\r\\n              </option>\\r\\n            </select>\\r\\n          </div>\\r\\n          <div class=\\\"form-group\\\" *ngIf=\\\"personae?.length > 0\\\">\\r\\n            <label>Select Persona</label>\\r\\n            <select formControlName=\\\"persona\\\" class=\\\"form-control\\\">\\r\\n              <option [ngValue]=\\\"null\\\">Select Persona</option>\\r\\n              <option *ngFor=\\\"let persona of personae\\\" value=\\\"{{persona}}\\\">\\r\\n                {{persona}}\\r\\n              </option>\\r\\n            </select>\\r\\n          </div>\\r\\n          <button [disabled]=\\\"loading\\\" class=\\\"btn btn-success\\\" *ngIf=\\\"settingForm.valid\\\">Save</button>\\r\\n      </form>\\r\\n    </div>\\r\\n  </div>\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/settings/settings.component.html\n// module id = ./src/app/settings/settings.component.html\n// module chunks = main","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { DataService } from '../shared/services/data.service';\r\nimport { ConfigurationService } from '../shared/services/configuration.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { ContentElement } from '../shared/models/content-elements';\r\nimport { UserSettings } from '../shared/models/user-settings';\r\nimport { Locations } from '../shared/models/locations';\r\n\r\nimport { ApiTemplates } from '../shared/utils/api-templates';\r\nimport { ContentElementHelper } from '../shared/utils/content-element-helpers';\r\n\r\n@Component({\r\n  selector: 'app-settings',\r\n  templateUrl: './settings.component.html',\r\n  styleUrls: ['./settings.component.css']\r\n})\r\n\r\nexport class SettingsComponent implements OnInit, OnDestroy {\r\n  settingForm: FormGroup;\r\n  loading: boolean;\r\n  getAllLocations: boolean;\r\n  locations: any[];\r\n  personae: any[];\r\n  contentElements: ContentElement[];\r\n  subscription: Subscription;\r\n\r\n  constructor(\r\n    private formBuilder: FormBuilder,\r\n    private http: HttpClient,\r\n    private dataService: DataService,\r\n    private configService: ConfigurationService,\r\n    private toastr: ToastrService,\r\n    private router: Router) { }\r\n\r\n  ngOnInit() {\r\n    // Pass this to set unique HTTP request to prevent browser caching\r\n    const currentTimeMs = new Date().getTime();\r\n\r\n    const contentElementsApiUrl = `${this.configService.config.storageUrl}${ApiTemplates.CONFIG_CONTENTELEMENTS.expand()}?v=${currentTimeMs}`;\r\n    const countriesApiUrl = `${this.configService.config.storageUrl}${ApiTemplates.CONFIG_COUNTRIES.expand()}?v=${currentTimeMs}`;\r\n\r\n    this.subscription = this.http.get<ContentElement[]>(contentElementsApiUrl)\r\n      .subscribe(contentElements => {\r\n        this.contentElements = ContentElementHelper.filterContentElementsByValidDate(contentElements);\r\n\r\n        // Get all locations if any content is set for all\r\n        this.getAllLocations = contentElements.filter(content => content.Countries.length === 0).length > 0;\r\n\r\n        if (this.getAllLocations) {\r\n          this.http.get<Locations[]>(countriesApiUrl).subscribe(countries => {\r\n            this.locations = countries.map(country => country.Name);\r\n          }, error => console.error(error));\r\n        } else {\r\n          const locationList = [].concat(...this.contentElements.map(content => content.Countries));\r\n          this.locations = Array.from(new Set(locationList));\r\n        }\r\n\r\n        if (currentUserSettings) {\r\n          this.setLocation(currentUserSettings.location);\r\n          this.settingForm.controls['persona'].setValue(currentUserSettings.persona);\r\n        }\r\n      }, error => console.error(error));\r\n\r\n      this.settingForm = this.formBuilder.group({\r\n        location: [null, Validators.required],\r\n        persona: [null, Validators.required]\r\n      });\r\n\r\n      const currentUserSettings = this.dataService.storedSettings();\r\n      if (currentUserSettings) {\r\n        this.settingForm.controls['location'].setValue(currentUserSettings.location);\r\n      } else {\r\n        this.personae = [];\r\n      }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.subscription.unsubscribe();\r\n  }\r\n\r\n  setLocation(location: string) {\r\n    const personaeList = [].concat(...this.contentElements\r\n      .filter(content => content.Countries.length === 0 || content.Countries\r\n      .includes(location))\r\n      .map(content => content.Personae));\r\n\r\n    this.personae = Array.from(new Set(personaeList));\r\n  }\r\n\r\n  get settings() {\r\n    return this.settingForm.controls;\r\n  }\r\n\r\n  onSubmit() {\r\n    this.loading = true;\r\n\r\n    if (this.settingForm.invalid) {\r\n      this.toastr.error('Failed to save your settings. Please ensure that your browser\\'s cookies have been enabled');\r\n      return;\r\n    }\r\n\r\n    const userSettings = new UserSettings();\r\n    userSettings.location = this.settings.location.value;\r\n    userSettings.persona = this.settings.persona.value;\r\n\r\n    this.dataService.setUserSettings(userSettings);\r\n\r\n    this.toastr.clear();\r\n    this.toastr.success('Your settings have been saved successfully');\r\n    this.router.navigate(['/']);\r\n\r\n    this.loading = false;\r\n  }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/settings/settings.component.ts","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router } from '@angular/router';\r\nimport { UserSettings } from '../models/user-settings';\r\n\r\n@Injectable()\r\nexport class SettingsGuard implements CanActivate {\r\n  constructor(private router: Router) { }\r\n\r\n  canActivate() {\r\n    try {\r\n      const storageSettings = JSON.parse(localStorage.getItem('settings'));\r\n      const userSettings: UserSettings = Object.assign(new UserSettings, storageSettings);\r\n\r\n      if (userSettings.location && userSettings.persona) {\r\n          return true;\r\n      } else {\r\n          this.router.navigate(['/settings']);\r\n      }\r\n    } catch (error) { }\r\n\r\n    localStorage.clear();\r\n    return false;\r\n  }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/guards/settings.guard.ts","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class StorageData {\r\n  public storage: any;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/models/storage-data.ts","export class UserSettings {\r\n  location: string;\r\n  persona: string;\r\n\r\n  constructor() {\r\n    this.location = '';\r\n    this.persona = '';\r\n  }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/models/user-settings.ts","import { Injectable } from '@angular/core';\r\nimport { AppInsights } from 'applicationinsights-js';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\n@Injectable()\r\nexport class AppInsightsService {\r\n  private config: Microsoft.ApplicationInsights.IConfig;\r\n\r\n  constructor(private configService: ConfigurationService) {\r\n    if (!AppInsights.config) {\r\n      this.config = {\r\n        instrumentationKey: this.configService.config.appInsightsInstrumentationKey\r\n      };\r\n\r\n      AppInsights.downloadAndSetup(this.config);\r\n    }\r\n  }\r\n\r\n  logPageView(name?: string, url?: string, properties?: any, measurements?: any, duration?: number) {\r\n    AppInsights.trackPageView(name, url, properties, measurements, duration);\r\n  }\r\n\r\n  logEvent(name: string, properties?: any, measurements?: any) {\r\n    AppInsights.trackEvent(name, properties, measurements);\r\n  }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/app-insights.service.ts","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport 'rxjs/add/operator/toPromise';\r\nimport { Configuration } from '../models/configuration';\r\nimport { ApiTemplates } from '../utils/api-templates';\r\n\r\n@Injectable()\r\nexport class ConfigurationService {\r\n  private configData: Configuration;\r\n\r\n  constructor(\r\n    private http: HttpClient) { }\r\n\r\n  loadConfigurationData(): Promise<Configuration> {\r\n    return this.http.get(ApiTemplates.API_CONFIG.expand())\r\n      .toPromise()\r\n      .then((result: Configuration) => {\r\n          this.configData = result;\r\n          return this.configData;\r\n      })\r\n      .catch(err => {\r\n          return Promise.reject(err);\r\n      });\r\n  }\r\n  get config(): Configuration {\r\n    return this.configData;\r\n  }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/configuration.service.ts","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { ContentElement } from '../models/content-elements';\r\nimport { UserSettings } from '../models/user-settings';\r\n\r\n@Injectable()\r\nexport class DataService {\r\n\r\n  private observedElementContent = new Subject<ContentElement>();\r\n\r\n  contentElement = this.observedElementContent.asObservable();\r\n\r\n  private observedUserSettings = new BehaviorSubject<UserSettings>(this.storedSettings());\r\n\r\n  currentUserSettings = this.observedUserSettings.asObservable();\r\n\r\n  setUserSettings(userSettings: UserSettings) {\r\n    localStorage.setItem('settings', JSON.stringify(userSettings));\r\n    this.observedUserSettings.next(userSettings);\r\n  }\r\n\r\n\r\n  setContentElements(content: ContentElement) {\r\n    this.observedElementContent.next(content);\r\n  }\r\n\r\n  public storedSettings(): UserSettings {\r\n    try {\r\n      const userSettings = JSON.parse(localStorage.getItem('settings'));\r\n\r\n      if (!userSettings) {\r\n        return new UserSettings();\r\n      }\r\n      return userSettings;\r\n    } catch {\r\n      localStorage.clear();\r\n    }\r\n\r\n    return null;\r\n  }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/data.service.ts","import * as template from 'url-template';\r\n\r\nexport class ApiTemplates {\r\n  public static API_CONFIG = template.parse('/api/configuration');\r\n\r\n  public static CONFIG_CATEGORIES = template.parse('Configurations/Categories.json');\r\n  public static CONFIG_CONTENTELEMENTS = template.parse('Configurations/ContentElement.json');\r\n  public static CONFIG_COUNTRIES = template.parse('Configurations/Countries.json');\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/utils/api-templates.ts","import { ContentElement } from '../models/content-elements';\r\n\r\nexport class ContentElementHelper {\r\n  static filterContentElementsByUserSettings(contentElements, userSettings) {\r\n    return contentElements.filter(content =>\r\n      (content.Countries.length === 0 && content.Personae.length === 0)\r\n      ||\r\n      (content.Personae.includes(userSettings.persona) && content.Countries.includes(userSettings.location))\r\n      ||\r\n      (content.Personae.length === 0 && content.Countries.includes(userSettings.location))\r\n      ||\r\n      (content.Countries.length === 0 && content.Personae.includes(userSettings.persona)));\r\n  }\r\n\r\n  static filterContentElementsByValidDate(contentElements: ContentElement[]) {\r\n    return contentElements.filter(content => {\r\n      const startDate = new Date(content.StartDate);\r\n      const endDate = new Date(content.EndDate);\r\n\r\n      return startDate < new Date() && endDate > new Date();\r\n    });\r\n  }\r\n\r\n  static mapCategoryNames(contentElements, categories) {\r\n    contentElements.forEach(element => {\r\n      const category = categories.filter(c => c.Nickname === element.Category)[0];\r\n\r\n      if (category) {\r\n        element.Category = {\r\n          Name: category.Name,\r\n          Nickname: category.Nickname\r\n        };\r\n      }\r\n    });\r\n\r\n    return contentElements;\r\n  }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/utils/content-element-helpers.ts","export class ListHelper {\r\n  static sortByOrder(list: any[]) {\r\n    if (list) {\r\n      return list.sort((a, b) => {\r\n        const orderDiff = b.Order - a.Order;\r\n        if (orderDiff) {\r\n          return orderDiff;\r\n        }\r\n\r\n        return a.Name < b.Name ? 1 : -1;\r\n      }).reverse();\r\n    }\r\n\r\n    return [];\r\n  }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/utils/list-helpers.ts","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/terms-and-conditions/terms-and-conditions.component.css\n// module id = ./src/app/terms-and-conditions/terms-and-conditions.component.css\n// module chunks = main","module.exports = \"<div class=\\\"row row-no-topmargin\\\">\\r\\n  <div class=\\\"col-lg-12 col-md-12 col-sm-12\\\">\\r\\n    <div class=\\\"col-lg-1 col-md-1 col-sm-1\\\"></div>\\r\\n    <div class=\\\"col-lg-10 col-md-10 col-sm-11\\\">\\r\\n      <h1>MyRCSI - Terms &amp; Conditions</h1>\\r\\n      <h2>Introduction</h2>\\r\\n      <p>MyRCSI APP and website (known as MyRCSI) provides RCSI students with one central location to easily access their digital services and useful third party websites.</p>\\r\\n      <h2>Disclaimer of Warranties</h2>\\r\\n      <p>The information contained in MyRCSI and third party websites is for information purposes only and is provided \\\"as is\\\" and \\\"as available\\\" and without warranties or conditions of any kind either express or implied. RCSI does not warrant or represent that the use or the results of the use of the materials and/or information available through third party websites will be correct, accurate, timely, reliable or otherwise. RCSI accepts no liability in relation to any of the above other than as may be provided for under your statutory rights.</p>\\r\\n      <h2>Limitation of Liability</h2>\\r\\n      <p>To the fullest extent permitted by applicable law, under no circumstances, including, but not limited to, negligence, shall RCSI be liable to you for any direct, indirect, incidental, special or consequential damages that result from the use of, or inability to use, MyRCSI, any changes to MyRCSI, or for any of the above-mentioned damages that result from the use or inability to use MyRCSI.</p>\\r\\n      <h2>Modification of Terms</h2>\\r\\n      <p>RCSI reserves the right to change the terms of use or policies regarding the use of MyRCSI at any time.</p>\\r\\n      <h2>Laws</h2>\\r\\n      <p>The terms of use shall be governed by and construed fully in accordance with the laws of Ireland. You and we agree to submit to the exclusive jurisdiction of the courts located in Ireland. If any provision(s) of the terms of use is held by a court of competent jurisdiction to be contrary to law, then such provision(s) shall be construed, as nearly as possible, to reflect the intentions of the parties with the other provisions remaining in full force and effect.</p>\\r\\n      <h2>Termination</h2>\\r\\n      <p>RCSI may terminate the MyRCSI with or without cause at any time and effective immediately.</p>\\r\\n      <h2>Information collected about you</h2>\\r\\n      <p>We use your IP address to help diagnose problems with our server, and to administer MyRCSI. Your IP address is used to gather broad demographic information to help us with the support and development of this app, but we cannot use this information to identify you personally. An IP address is a number that is automatically assigned to your end device when you use the internet.</p>\\r\\n      <p>We may collect non-personal information about you that cannot be used to identify you using tracking technology such as cookies which we use to collect anonymised, demographical data to statistically analyse usage of this app which will aid further development of this app to improve the end user's experience.</p>\\r\\n      <p>You may also choose to share details of this app with others by linking the app through your social media profile e.g. Facebook, Twitter etc. but by doing so you will not be sharing any information on the content that you have accessed, nor will this share any of the Personally Identifiable Information that you have input into the app.</p>\\r\\n      <p>By choosing to submit a review of the app on the Google Play Store or the Apple App Store, you can choose whether to identify yourself or not.</p>\\r\\n      <h3>How do we secure your information?</h3>\\r\\n      <p>RCSI is committed to complying with the General Data Protection Regulation 2018 and The Data Protection Act 2018 and has put adequate organisational and technical security measures in place to ensure your information is kept secure at all times.</p>\\r\\n      <h3>Retention of information</h3>\\r\\n      <p>Aggregate, anonymised information collected by this app will be kept for as long is required to ensure technical functioning and to support further development of the app and will be securely disposed of thereafter.</p>\\r\\n      <h2>Acceptance of Privacy Policy</h2>\\r\\n      <p>By using MyRCSI you signify acceptance of this privacy statement. If you do not agree or are not comfortable with any policy described in this privacy statement, your only remedy is to discontinue use of the MyRCSI. RCSI reserves the right to modify this privacy statement at any time. Your continued use of MyRCSI following notification or posting of such changes will constitute your acceptance of those changes.</p>\\r\\n      <h2>Feedback</h2>\\r\\n      <p>If you want to express a view direct to RCSI then please email us at <a href=\\\"mailto:Applications@rcsi.com\\\" title=\\\"Email RCSI\\\">Applications@rcsi.com</a> referencing MyRCSI.</p>\\r\\n    </div>\\r\\n    <div class=\\\"col-lg-1 col-md-1 col-sm-1\\\"></div>\\r\\n  </div>\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/terms-and-conditions/terms-and-conditions.component.html\n// module id = ./src/app/terms-and-conditions/terms-and-conditions.component.html\n// module chunks = main","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'app-terms-and-conditions',\r\n  templateUrl: './terms-and-conditions.component.html',\r\n  styleUrls: ['./terms-and-conditions.component.css']\r\n})\r\nexport class TermsAndConditionsComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/terms-and-conditions/terms-and-conditions.component.ts","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\n\r\nconst providers = [\r\n\r\n];\r\n\r\nif (!window.location.href.toLowerCase().includes('localhost') &&\r\n    !window.location.href.toLowerCase().includes('dev')) {\r\n  enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n  .catch(err => console.log(err));\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.ts"],"sourceRoot":"webpack:///"}