1(self["webpackChunkvirtrolio_site"] = self["webpackChunkvirtrolio_site"] || []).push([["main"],{ 2 3/***/ 98255: 4/*!*******************************************************!*\ 5 !*** ./$_lazy_route_resources/ lazy namespace object ***! 6 \*******************************************************/ 7/***/ (function(module) { 8 9function webpackEmptyAsyncContext(req) { 10 // Here Promise.resolve().then() is used instead of new Promise() to prevent 11 // uncaught exception popping up in devtools 12 return Promise.resolve().then(function() { 13 var e = new Error("Cannot find module '" + req + "'"); 14 e.code = 'MODULE_NOT_FOUND'; 15 throw e; 16 }); 17} 18webpackEmptyAsyncContext.keys = function() { return []; }; 19webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext; 20webpackEmptyAsyncContext.id = 98255; 21module.exports = webpackEmptyAsyncContext; 22 23/***/ }), 24 25/***/ 90158: 26/*!***************************************!*\ 27 !*** ./src/app/app-routing.module.ts ***! 28 \***************************************/ 29/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 30 31"use strict"; 32__webpack_require__.r(__webpack_exports__); 33/* harmony export */ __webpack_require__.d(__webpack_exports__, { 34/* harmony export */ "AppRoutingModule": function() { return /* binding */ AppRoutingModule; } 35/* harmony export */ }); 36/* harmony import */ var _angular_fire_auth_guard__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @angular/fire/auth-guard */ 68386); 37/* harmony import */ var _core_pending_changes_guard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/pending-changes.guard */ 88989); 38/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @angular/router */ 39895); 39/* harmony import */ var _pages_about_about_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pages/about/about.component */ 73794);
40/* harmony import */ var _pages_access_denied_beta_access_denied_beta_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pages/access-denied-beta/access-denied-beta.component */ 40970); 41/* harmony import */ var _pages_access_denied_access_denied_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pages/access-denied/access-denied.component */ 91452); 42/* harmony import */ var _pages_contact_contact_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pages/contact/contact.component */ 45996); 43/* harmony import */ var _pages_faq_faq_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./pages/faq/faq.component */ 16459); 44/* harmony import */ var _pages_home_home_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pages/home/home.component */ 25245); 45/* harmony import */ var _pages_invalid_link_invalid_link_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./pages/invalid-link/invalid-link.component */ 84892); 46/* harmony import */ var _pages_msg_sent_msg_sent_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./pages/msg-sent/msg-sent.component */ 88198); 47/* harmony import */ var _pages_my_virtrolio_my_virtrolio_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./pages/my-virtrolio/my-virtrolio.component */ 32093); 48/* harmony import */ var _pages_page_not_found_page_not_found_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./pages/page-not-found/page-not-found.component */ 78340); 49/* harmony import */ var _pages_privacy_policy_privacy_policy_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./pages/privacy-policy/privacy-policy.component */ 3654); 50/* harmony import */ var _pages_settings_settings_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./pages/settings/settings.component */ 65814); 51/* harmony import */ var _pages_signing_auth_redirect_signing_auth_redirect_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./pages/signing-auth-redirect/signing-auth-redirect.component */ 83964); 52/* harmony import */ var _pages_signing_signing_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./pages/signing/signing.component */ 63168); 53/* harmony import */ var _pages_terms_of_service_terms_of_service_component__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./pages/terms-of-service/terms-of-service.component */ 21912); 54/* harmony import */ var _pages_viewing_viewing_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./pages/viewing/viewing.component */ 68106); 55/* harmony import */ var _core_login_resolver__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./core/login-resolver */ 55249); 56/* harmony import */ var _pages_maintenance_maintenance_component__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./pages/maintenance/maintenance.component */ 20479); 57/* harmony import */ var _pages_rejecc_rejecc_component__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./pages/rejecc/rejecc.component */ 79668); 58/* harmony import */ var _core_signing_guard__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./core/signing.guard */ 49001); 59/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @angular/core */ 37716); 60 61 62 63// Pages 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80// Services & Guards 81 82 83 84 85 86 87const redirectUnauthorized = () => (0,_angular_fire_auth_guard__WEBPACK_IMPORTED_MODULE_21__.redirectUnauthorizedTo)(['/access-denied']); 88const routes = [ 89 { 90 path: '', 91 component: _pages_home_home_component__WEBPACK_IMPORTED_MODULE_6__.HomeComponent, 92 resolve: { user: _core_login_resolver__WEBPACK_IMPORTED_MODULE_17__.LoginResolver }, 93 }, 94 { path: 'about', component: _pages_about_about_component__WEBPACK_IMPORTED_MODULE_1__.AboutComponent }, 95 { path: 'access-denied-beta', component: _pages_access_denied_beta_access_de
95nied_beta_component__WEBPACK_IMPORTED_MODULE_2__.AccessDeniedBetaComponent }, 96 { path: 'access-denied', component: _pages_access_denied_access_denied_component__WEBPACK_IMPORTED_MODULE_3__.AccessDeniedComponent }, 97 { path: 'contact', component: _pages_contact_contact_component__WEBPACK_IMPORTED_MODULE_4__.ContactComponent }, 98 { path: 'faq', component: _pages_faq_faq_component__WEBPACK_IMPORTED_MODULE_5__.FaqComponent }, 99 { 100 path: 'invalid-link', 101 component: _pages_invalid_link_invalid_link_component__WEBPACK_IMPORTED_MODULE_7__.InvalidLinkComponent, 102 // canActivate: [ PreventURLAccessGuard ] 103 }, 104 { 105 path: 'maintenance', 106 component: _pages_maintenance_maintenance_component__WEBPACK_IMPORTED_MODULE_18__.MaintenanceComponent, 107 // canActivate: [ PreventURLAccessGuard ] 108 }, 109 { 110 path: 'msg-sent', 111 component: _pages_msg_sent_msg_sent_component__WEBPACK_IMPORTED_MODULE_8__.MsgSentComponent, 112 // canActivate: [ PreventURLAccessGuard ], 113 }, 114 { 115 path: 'my-virtrolio', 116 component: _pages_my_virtrolio_my_virtrolio_component__WEBPACK_IMPORTED_MODULE_9__.MyVirtrolioComponent, 117 canActivate: [_angular_fire_auth_guard__WEBPACK_IMPORTED_MODULE_21__.AngularFireAuthGuard], 118 data: { authGuardPipe: redirectUnauthorized }, 119 resolve: { user: _core_login_resolver__WEBPACK_IMPORTED_MODULE_17__.LoginResolver }, 120 }, 121 { path: 'privacy-policy', component: _pages_privacy_policy_privacy_policy_component__WEBPACK_IMPORTED_MODULE_11__.PrivacyPolicyComponent }, 122 { 123 path: 'rejecc', 124 component: _pages_rejecc_rejecc_component__WEBPACK_IMPORTED_MODULE_19__.RejeccComponent, 125 // canActivate: [ PreventURLAccessGuard ] 126 }, 127 { 128 path: 'settings', 129 component: _pages_settings_settings_component__WEBPACK_IMPORTED_MODULE_12__.SettingsComponent, 130 canActivate: [_angular_fire_auth_guard__WEBPACK_IMPORTED_MODULE_21__.AngularFireAuthGuard], 131 data: { authGuardPipe: redirectUnauthorized }, 132 resolve: { user: _core_login_resolver__WEBPACK_IMPORTED_MODULE_17__.LoginResolver }, 133 }, 134 { 135 path: 'signing', 136 component: _pages_signing_signing_component__WEBPACK_IMPORTED_MODULE_14__.SigningComponent, 137 canActivate: [_core_signing_guard__WEBPACK_IMPORTED_MODULE_20__.SigningGuard], 138 resolve: { user: _core_login_resolver__WEBPACK_IMPORTED_MODULE_17__.LoginResolver }, 139 canDeactivate: [_core_pending_changes_guard__WEBPACK_IMPORTED_MODULE_0__.PendingChangesGuard], 140 }, 141 { 142 path: 'signing-auth-redirect', 143 component: _pages_signing_auth_redirect_signing_auth_redirect_component__WEBPACK_IMPORTED_MODULE_13__.SigningAuthRedirectComponent, 144 // canActivate: [ PreventURLAccessGuard ] 145 }, 146 { path: 'terms-of-service', component: _pages_terms_of_service_terms_of_service_component__WEBPACK_IMPORTED_MODULE_15__.TermsOfServiceComponent }, 147 { 148 path: 'viewing', 149 component: _pages_viewing_viewing_component__WEBPACK_IMPORTED_MODULE_16__.ViewingComponent, 150 canActivate: [_angular_fire_auth_guard__WEBPACK_IMPORTED_MODULE_21__.AngularFireAuthGuard], 151 data: { authGuardPipe: redirectUnauthorized }, 152 resolve: { user: _core_login_resolver__WEBPACK_IMPORTED_MODULE_17__.LoginResolver }, 153 }, 154 { path: 'page-not-found', component: _pages_page_not_found_page_not_found_component__WEBPACK_IMPORTED_MODULE_10__.PageNotFoundComponent }, 155 { path: '**', pathMatch: 'full', redirectTo: '/page-not-found' }, 156]; 157class AppRoutingModule { 158} 159AppRoutingModule.ɵfac = function AppRoutingModule_Factory(t) { return new (t || AppRoutingModule)(); }; 160AppRoutingModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_22__["ɵɵdefineNgModule"]({ type: AppRoutingModule }); 161AppRoutingModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_22__["ɵɵdefineInjector"]({ imports: [[ 162 _angular_router__WEBPACK_IMPORTED_MODULE_23__.RouterModule.forRoot(routes, { 163 scrollPositionRestoration: 'enabled', 164 anchorScrolling: 'enabled', 165 onSameUrlNavigation: 'reload', 166 relativeLinkResolution: 'legacy', 167 }), 168 ], _angular_router__WEBPACK_IMPORTED_MODULE_23__.RouterModule] }); 169(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_22__["ɵɵsetNgModuleScope"](AppRoutingModule, { imports: [_angular_router__WEBPACK_IMPORTED_MODULE_23__.RouterModule], exports: [_angular_router__WEBPACK_IMPORTED_MODULE_23__.RouterModule] }); })();
170 171 172/***/ }), 173 174/***/ 55041: 175/*!**********************************!*\ 176 !*** ./src/app/app.component.ts ***! 177 \**********************************/ 178/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 179 180"use strict"; 181__webpack_require__.r(__webpack_exports__); 182/* harmony export */ __webpack_require__.d(__webpack_exports__, { 183/* harmony export */ "AppComponent": function() { return /* binding */ AppComponent; } 184/* harmony export */ }); 185/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 37716); 186/* harmony import */ var ngx_cookie_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ngx-cookie-service */ 31584); 187 188 189function AppComponent_div_5_Template(rf, ctx) { if (rf & 1) { 190 const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); 191 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 4); 192 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div"); 193 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2, " Virtrolio uses cookies to enhance the user experience. By continuing to use our website, you consent to our use of cookies. See our "); 194 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "a", 5); 195 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](4, "Terms of Service"); 196 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 197 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](5, " for more information. "); 198 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 199 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "button", 6); 200 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function AppComponent_div_5_Template_button_click_6_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r2); const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r1.cookieService.set("new-user-cookie", "false", 365); }); 201 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](7, "span", 7); 202 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](8, "\u00D7"); 203 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 204 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 205 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 206} } 207/** 208 * Controls 'new user' cookie, displaying an alert if their browser hasn't visited the site before. 209 */ 210class AppComponent { 211 constructor(cookieService) { 212 this.cookieService = cookieService; 213 this.title = 'virtrolio-site'; 214 } 215 ngOnInit() { 216 // Generate new-user-cookie if it does not exist 217 if (this.cookieService.check('new-user-cookie') === false) { 218 this.cookieService.set('new-user-cookie', 'true', 365); 219 } 220 } 221} 222AppComponent.BETA = false; 223AppComponent.ɵfac = function AppComponent_Factory(t) { return new (t || AppComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](ngx_cookie_service__WEBPACK_IMPORTED_MODULE_1__.CookieService)); }; 224AppComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: AppComponent, selectors: [["app-root"]], decls: 7, vars: 1, consts: [["id", "navbar-filler"], ["id", "content-wrapper"], [1, "col-12", "justify-content-center"], ["class", "alert alert-primary col-sm-8 align-items-center d-flex", "id", "cookie-alert", "role", "alert", 4, "ngIf"], ["id", "cookie-alert", "role", "alert", 1, "alert", "alert-primary", "col-sm-8", "align-items-center", "d-flex"], ["routerLink", "/terms-of-service"], ["id", "cookie-alert-button", "type", "button", 1, "close", "ml-2", 3, "click"], ["aria-hidden", "true"]], template: function AppComponent_Template(rf, ctx) { if (rf & 1) { 225 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](0, "app-navbar"); 226 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "div", 0); 227 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "div", 1); 228 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](3, "router-outlet"); 229 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 230 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "div", 2); 231 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](5, AppComponent_div_5_Template, 9, 0, "div", 3); 232 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 233 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](6, "app-footer"); 234 } if (rf & 2) { 235 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](5); 236 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.cookieService.get("new-user-cookie")
236== "true"); 237 } }, styles: ["#navbar-filler[_ngcontent-%COMP%] {\n \n height: var(--navbar-height);\n}\n\n#cookie-alert[_ngcontent-%COMP%] {\n position: fixed;\n left: 50%;\n transform: translate(-50%, -50%);\n bottom: 1em;\n z-index: 2000;\n}\n\n#cookie-alert-button[_ngcontent-%COMP%] {\n padding-bottom: 0.15em;\n}\n\n#content-wrapper[_ngcontent-%COMP%] {\n \n min-height: calc(100vh - var(--footer-height) - var(--navbar-height));\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsNERBQTREO0VBQzVELDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFLGVBQWU7RUFDZixTQUFTO0VBQ1QsZ0NBQWdDO0VBQ2hDLFdBQVc7RUFDWCxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxvRUFBb0U7RUFDcEUscUVBQXFFO0FBQ3ZFIiwiZmlsZSI6ImFwcC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI25hdmJhci1maWxsZXIge1xuICAvKiBUcmFuc3BhcmVudCBkaXYgdG8gcHVzaCByb3V0ZXItb3V0bGV0IGNvbnRlbnQgZG93bndhcmRzICovXG4gIGhlaWdodDogdmFyKC0tbmF2YmFyLWhlaWdodCk7XG59XG5cbiNjb29raWUtYWxlcnQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGJvdHRvbTogMWVtO1xuICB6LWluZGV4OiAyMDAwO1xufVxuXG4jY29va2llLWFsZXJ0LWJ1dHRvbiB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjE1ZW07XG59XG5cbiNjb250ZW50LXdyYXBwZXIge1xuICAvKiBQcmV2ZW50cyBmb290ZXIgY29sbGFwc2UgdG8gdG9wIG9mIHNjcmVlbiB3aGlsZSBjb21wb25lbnQgbG9hZHMgKi9cbiAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLWZvb3Rlci1oZWlnaHQpIC0gdmFyKC0tbmF2YmFyLWhlaWdodCkpO1xufVxuIl19 */"] }); 238 239 240/***/ }), 241 242/***/ 36747: 243/*!*******************************!*\ 244 !*** ./src/app/app.module.ts ***! 245 \*******************************/ 246/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 247 248"use strict"; 249__webpack_require__.r(__webpack_exports__); 250/* harmony export */ __webpack_require__.d(__webpack_exports__, { 251/* harmony export */ "AppModule": function() { return /* binding */ AppModule; } 252/* harmony export */ }); 253/* harmony import */ var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! @angular/platform-browser/animations */ 75835); 254/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 255/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! @angular/common */ 38583); 256/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! @angular/forms */ 3679); 257/* harmony import */ var _angular_fire__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! @angular/fire */ 50057); 258/* harmony import */ var _angular_fire_analytics__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! @angular/fire/analytics */ 71037); 259/* harmony import */ var _angular_fire_firestore__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! @angular/fire/firestore */ 56717); 260/* harmony import */ var _angular_fire_auth__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! @angular/fire/auth */ 49743); 261/* harmony import */ var _angular_fire_storage__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! @angular/fire/storage */ 68274); 262/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../environments/environment */ 92340); 263/* harmony import */ var ngx_cookie_service__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ngx-cookie-service */ 31584); 264/* harmony import */ var ngx_markdown__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ngx-markdown */ 76715); 265/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ngx-toastr */ 49344); 266/* harmony import */ var _app_routing_module__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app-routing.module */ 90158); 267/* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./app.component */ 55041); 268/* harmony import */ var _core_core_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./core/core.module */ 40294); 269/* harmony import */ var _shared_shared_module__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./shared/shared.module */ 44466); 270/* harmony import */ var _pages_about_about_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./pages/about/about.component */ 73794);
271/* harmony import */ var _pages_access_denied_beta_access_denied_beta_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pages/access-denied-beta/access-denied-beta.component */ 40970); 272/* harmony import */ var _pages_access_denied_access_denied_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./pages/access-denied/access-denied.component */ 91452); 273/* harmony import */ var _pages_contact_contact_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./pages/contact/contact.component */ 45996); 274/* harmony import */ var _pages_faq_faq_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./pages/faq/faq.component */ 16459); 275/* harmony import */ var _pages_home_home_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./pages/home/home.component */ 25245); 276/* harmony import */ var _pages_viewing_messages_image_footer_image_footer_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./pages/viewing/messages/image-footer/image-footer.component */ 46438); 277/* harmony import */ var _pages_signing_image_modal_image_modal_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./pages/signing/image-modal/image-modal.component */ 16843); 278/* harmony import */ var _pages_invalid_link_invalid_link_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./pages/invalid-link/invalid-link.component */ 84892); 279/* harmony import */ var _pages_maintenance_maintenance_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./pages/maintenance/maintenance.component */ 20479); 280/* harmony import */ var _pages_viewing_message_modal_message_modal_component__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./pages/viewing/message-modal/message-modal.component */ 1641); 281/* harmony import */ var _pages_viewing_messages_messages_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./pages/viewing/messages/messages.component */ 2360); 282/* harmony import */ var _pages_msg_sent_msg_sent_component__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./pages/msg-sent/msg-sent.component */ 88198); 283/* harmony import */ var _pages_my_virtrolio_my_virtrolio_component__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./pages/my-virtrolio/my-virtrolio.component */ 32093); 284/* harmony import */ var _pages_page_not_found_page_not_found_component__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./pages/page-not-found/page-not-found.component */ 78340); 285/* harmony import */ var _pages_privacy_policy_privacy_policy_component__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./pages/privacy-policy/privacy-policy.component */ 3654); 286/* harmony import */ var _pages_rejecc_rejecc_component__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./pages/rejecc/rejecc.component */ 79668); 287/* harmony import */ var _pages_viewing_responses_list_responses_list_component__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./pages/viewing/responses-list/responses-list.component */ 39161); 288/* harmony import */ var _pages_settings_settings_component__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./pages/settings/settings.component */ 65814); 289/* harmony import */ var _pages_signing_auth_redirect_signing_auth_redirect_component__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./pages/signing-auth-redirect/signing-auth-redirect.component */ 83964); 290/* harmony import */ var _pages_signing_signing_component__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./pages/signing/signing.component */ 63168); 291/* harmony import */ var _pages_viewing_single_message_single_message_component__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./pages/viewing/single-message/single-message.component */ 60189); 292/* harmony import */ var _pages_terms_of_service_terms_of_service_component__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./pages/terms-of-service/terms-of-service.component */ 21912); 293/* harmony import */ var _pages_viewing_viewing_component__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./pages/viewing/viewing.component */ 68106); 294/* harmony import */ var ngx_bootstrap_alert__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ngx-bootstrap/alert */ 33947); 295/* harmony import */ var _core_login_resolver__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./core/login-resolver */ 55249); 296/* harmony import */ var ngx_bootstrap_modal__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ngx-bootstrap/modal */ 63301); 297/* harmony import */ var _core_pending_changes_guard__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./core/pending-changes.guard */ 88989); 298/* harmony import */ var _pages_signing_error_alert_error_alert_component__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./pages/signing/error-alert/error-alert.component */ 27286); 299/* harmony import */ var ngx_bootstrap_tooltip__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ngx-bootstrap/tooltip */ 25575); 300/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! @angular/core */ 37716); 301/* harmony import */ var _core_navbar_navbar_component__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./core/navbar/navbar.component */ 1239); 302/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! @angular/router */ 39895); 303/* harmony import */ var _core_footer_footer_component__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./core/footer/footer.component */ 91229); 304// Angular 305 306 307 308 309// Firebase 310 311 312 313 314 315 316// External Libraries 317 318 319 320// App 321 322 323 324 325// Pages 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350// Services 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367class AppModule { 368} 369AppModule.ɵfac = function AppModule_Factory(t) { return new (t || AppModule)(); }; 370AppModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_37__["ɵɵdefineNgModule"]({ type: AppModule, bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_2__.AppComponent] }); 371AppModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_37__["ɵɵdefineInjector"]({ providers: [ngx_cookie_service__WEBPACK_IMPORTED_MODULE_38__.CookieService, _core_login_resolver__WEBPACK_IMPORTED_MODULE_30__.LoginResolver, _core_pending_changes_guard__WEBPACK_IMPORTED_MODULE_32__.PendingChangesGuard], imports: [[ 372 ngx_bootstrap_alert__WEBPACK_IMPORTED_MODULE_29__.AlertModule.forRoot(), 373 _angular_fire_analytics__WEBPACK_IMPORTED_MODULE_39__.AngularFireAnalyticsModule, 374 _angular_fire_auth__WEBPACK_IMPORTED_MODULE_40__.AngularFireAuthModule, 375 _angular_fire__WEBPACK_IMPORTED_MODULE_41__.AngularFireModule.initializeApp(_environments_environment__WEBPACK_IMPORTED_MODULE_0__.environment.firebase), 376 _angular_fire_firestore__WEBPACK_IMPORTED_MODULE_42__.AngularFirestoreModule, 377 _angular_fire_storage__WEBPACK_IMPORTED_MODULE_43__.AngularFireStorageModule, 378 _app_routing_module__WEBPACK_IMPORTED_MODULE_1__.AppRoutingModule, 379 _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_44__.BrowserAnimationsModule, 380 _angular_platform_browser__WEBPACK_IMPORTED_MODULE_45__.BrowserModule, 381 _angular_common__WEBPACK_IMPORTED_MODULE_46__.CommonModule, 382 _core_core_module__WEBPACK_IMPORTED_MODULE_3__.CoreModule, 383 _angular_forms__WEBPACK_IMPORTED_MODULE_47__.FormsModule, 384 ngx_markdown__WEBPACK_IMPORTED_MODULE_48__.MarkdownModule.forRoot({ 385 // set various markdown options 386 markedOptions: { 387 provide: ngx_markdown__WEBPACK_IMPORTED_MODULE_48__.MarkedOptions, 388 useValue: { 389 // makes having 2 newlines for a line break unnecessary 390 breaks: true, 391 }, 392 }, 393 }), 394 ngx_bootstrap_modal__WEBPACK_IMPORTED_MODULE_31__.ModalModule.forRoot(), 395 _shared_shared_module__WEBPACK_IMPORTED_MODULE_4__.SharedModule, 396 ngx_toastr__WEBPACK_IMPORTED_MODULE_49__.ToastrModule.forRoot(), 397 ngx_bootstrap_tooltip__WEBPACK_IMPORTED_MODULE_34__.TooltipModule, 398 ]] }); 399(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_37__["ɵɵsetNgModuleScope"](AppModule, { declarations: [_pages_access_de
399nied_beta_access_denied_beta_component__WEBPACK_IMPORTED_MODULE_6__.AccessDeniedBetaComponent, 400 _pages_access_denied_access_denied_component__WEBPACK_IMPORTED_MODULE_7__.AccessDeniedComponent, 401 _app_component__WEBPACK_IMPORTED_MODULE_2__.AppComponent, 402 _pages_about_about_component__WEBPACK_IMPORTED_MODULE_5__.AboutComponent, 403 _pages_contact_contact_component__WEBPACK_IMPORTED_MODULE_8__.ContactComponent, 404 _pages_signing_error_alert_error_alert_component__WEBPACK_IMPORTED_MODULE_33__.ErrorAlertComponent, 405 _pages_faq_faq_component__WEBPACK_IMPORTED_MODULE_9__.FaqComponent, 406 _pages_home_home_component__WEBPACK_IMPORTED_MODULE_10__.HomeComponent, 407 _pages_viewing_messages_messages_component__WEBPACK_IMPORTED_MODULE_16__.MessagesComponent, 408 _pages_msg_sent_msg_sent_component__WEBPACK_IMPORTED_MODULE_17__.MsgSentComponent, 409 _pages_my_virtrolio_my_virtrolio_component__WEBPACK_IMPORTED_MODULE_18__.MyVirtrolioComponent, 410 _pages_viewing_messages_image_footer_image_footer_component__WEBPACK_IMPORTED_MODULE_11__.ImageFooterComponent, 411 _pages_signing_image_modal_image_modal_component__WEBPACK_IMPORTED_MODULE_12__.ImageModalComponent, 412 _pages_invalid_link_invalid_link_component__WEBPACK_IMPORTED_MODULE_13__.InvalidLinkComponent, 413 _pages_viewing_message_modal_message_modal_component__WEBPACK_IMPORTED_MODULE_15__.MessageModalComponent, 414 _pages_maintenance_maintenance_component__WEBPACK_IMPORTED_MODULE_14__.MaintenanceComponent, 415 _pages_page_not_found_page_not_found_component__WEBPACK_IMPORTED_MODULE_19__.PageNotFoundComponent, 416 _pages_privacy_policy_privacy_policy_component__WEBPACK_IMPORTED_MODULE_20__.PrivacyPolicyComponent, 417 _pages_rejecc_rejecc_component__WEBPACK_IMPORTED_MODULE_21__.RejeccComponent, 418 _pages_viewing_responses_list_responses_list_component__WEBPACK_IMPORTED_MODULE_22__.ResponsesListComponent, 419 _pages_settings_settings_component__WEBPACK_IMPORTED_MODULE_23__.SettingsComponent, 420 _pages_signing_auth_redirect_signing_auth_redirect_component__WEBPACK_IMPORTED_MODULE_24__.SigningAuthRedirectComponent, 421 _pages_signing_signing_component__WEBPACK_IMPORTED_MODULE_25__.SigningComponent, 422 _pages_viewing_single_message_single_message_component__WEBPACK_IMPORTED_MODULE_26__.SingleMessageComponent, 423 _pages_terms_of_service_terms_of_service_component__WEBPACK_IMPORTED_MODULE_27__.TermsOfServiceComponent, 424 _pages_viewing_viewing_component__WEBPACK_IMPORTED_MODULE_28__.ViewingComponent], imports: [ngx_bootstrap_alert__WEBPACK_IMPORTED_MODULE_29__.AlertModule, _angular_fire_analytics__WEBPACK_IMPORTED_MODULE_39__.AngularFireAnalyticsModule, 425 _angular_fire_auth__WEBPACK_IMPORTED_MODULE_40__.AngularFireAuthModule, _angular_fire__WEBPACK_IMPORTED_MODULE_41__.AngularFireModule, _angular_fire_firestore__WEBPACK_IMPORTED_MODULE_42__.AngularFirestoreModule, 426 _angular_fire_storage__WEBPACK_IMPORTED_MODULE_43__.AngularFireStorageModule, 427 _app_routing_module__WEBPACK_IMPORTED_MODULE_1__.AppRoutingModule, 428 _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_44__.BrowserAnimationsModule, 429 _angular_platform_browser__WEBPACK_IMPORTED_MODULE_45__.BrowserModule, 430 _angular_common__WEBPACK_IMPORTED_MODULE_46__.CommonModule, 431 _core_core_module__WEBPACK_IMPORTED_MODULE_3__.CoreModule, 432 _angular_forms__WEBPACK_IMPORTED_MODULE_47__.FormsModule, ngx_markdown__WEBPACK_IMPORTED_MODULE_48__.MarkdownModule, ngx_bootstrap_modal__WEBPACK_IMPORTED_MODULE_31__.ModalModule, _shared_shared_module__WEBPACK_IMPORTED_MODULE_4__.SharedModule, ngx_toastr__WEBPACK_IMPORTED_MODULE_49__.ToastrModule, ngx_bootstrap_tooltip__WEBPACK_IMPORTED_MODULE_34__.TooltipModule] }); })(); 433_angular_core__WEBPACK_IMPORTED_MODULE_37__["ɵɵsetComponentScope"](_app_component__WEBPACK_IMPORTED_MODULE_2__.AppComponent, [_core_navbar_navbar_component__WEBPACK_IMPORTED_MODULE_35__.NavbarComponent, _angular_router__WEBPACK_IMPORTED_MODULE_50__.RouterOutlet, _angular_common__WEBPACK_IMPORTED_MODULE_46__.NgIf, _angular_router__WEBPACK_IMPORTED_MODULE_50__.RouterLinkWithHref, _core_footer_footer_component__WEBPACK_IMPORTED_MODULE_36__.FooterComponent], []); 434 435 436/***/ }), 437 438/***/ 87341: 439/*!**************************************!*\ 440 !*** ./src/app/core/auth.service.ts ***! 441 \**************************************/ 442/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 443 444"use strict"; 445__webpack_require__.r(__webpack_exports__); 446/* harmony export */ __webpack_require__.d(__webpack_exports__, { 447/* harmony export */ "AuthService": function() { return /* binding */ AuthService; }
448/* harmony export */ }); 449/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ 64762); 450/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs/operators */ 15257); 451/* harmony import */ var _common_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common.service */ 80150); 452/* harmony import */ var firebase_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/app */ 42329); 453/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! firebase/auth */ 71952); 454/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 37716); 455/* harmony import */ var _angular_fire_auth__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/fire/auth */ 49743); 456/* harmony import */ var _angular_fire_firestore__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/fire/firestore */ 56717); 457/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/router */ 39895); 458/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/common */ 38583); 459/* harmony import */ var ngx_device_detector__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ngx-device-detector */ 1135); 460 461 462 463 464 465var auth = firebase_app__WEBPACK_IMPORTED_MODULE_1__.default.auth; 466 467 468 469 470 471 472class AuthService { 473 constructor(afa, afs, router, location, deviceDetectorService) { 474 this.afa = afa; 475 this.afs = afs; 476 this.router = router; 477 this.location = location; 478 this.deviceDetectorService = deviceDetectorService; 479 this.afa.user.subscribe((user) => (this.user = user)); 480 } 481 /** 482 * Generates a random string of characters of length AppAuthService.keyLength using the characters in 483 * AppAuthService.keyOptions. 484 */ 485 static generateKey() { 486 let key = ''; 487 for (let i = 0; i < AuthService.KEY_LENGTH; i++) { 488 key += AuthService.KEY_OPTIONS.charAt(Math.floor(Math.random() * AuthService.KEY_OPTIONS.length)); 489 } 490 return key; 491 } 492 /** 493 * Combines the desired routerLink and queryParams into one string, adding all necessary ?, = and &. 494 * Used to create a path param for this.location.go(). 495 * @param path - the desired routerLink 496 * @param queryParams - all query params to be added onto the routerLink 497 */ 498 static parseQueryParams(path, queryParams) { 499 let redirectPath = path; 500 if (queryParams) { 501 redirectPath += '?'; 502 for (const param in queryParams) { 503 if (queryParams.hasOwnProperty(param)) { 504 redirectPath += param + '=' + queryParams[param] + '&'; 505 } 506 } 507 // Remove the extra ampersand at the end 508 return redirectPath.slice(0, -1); 509 } 510 else { 511 return path; 512 } 513 } 514 /** 515 * @param uid - Optional - The user ID of the user's data to retrieve. Defaults to the current user. 516 * @returns The Firestore document containing the user's data. 517 */ 518 getUserData(uid = this.uid()) { 519 return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () { 520 const userRef = this.afs 521 .collection('users') 522 .doc(uid); 523 return yield userRef 524 .valueChanges() 525 .pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.take)(1)) 526 .toPromise() 527 .catch((error) => { 528 _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(error); 529 }); 530 }); 531 } 532 /** 533 * Displays an error using an alert, then logs the user out, and then redirects them to the access-denied page. 534 * @param error - The error to be displayed 535 */ 536 errorLogout(error) { 537 _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(error); 538 return this.afa 539 .signOut() 540 .then(() => this.router.navigate(['/access-denied'])) 541 .catch((soError) => _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(soError)); 542 } 543 /** 544 * @returns The current User object. 545 */ 546 getUser() { 547 this.throwErrorIfLoggedOut('access your user data'); 548 return this.user; 549 } 550 /** 551 * Logs the user into the website using Firebase Authentication and the specified provider. 552 * User data creation is handled ONLY for desktop devices. 553 * Any page calling login **must** call AuthService.redirectLoginUserCreation() in ngOnInit() of the page that it 554 * redirects to, which is the routeTo param. Otherwise, mobile users will not be able to create a user. Upon login, 555 * the user will be redirected to a new page as defined in routeTo. 556 * @param routeTo - The routerLink that the user will be redirected to on a successful login. 557 * @param queryParams - Optional - Any query params to be passed during navigation after successful navigation. 558 * @returns A promise evaluating to true if the redirect is successful (only returned on desktop devices). 559 * @throws Error - If the login fails 560 */ 561 login(routeTo, queryParams) { 562 return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () { 563 if (typeof routeTo === 'undefined' || !routeTo) { 564 throw new Error('Route was not provided'); 565 } 566 // Prepare sign-in provider(s) 567 const googleAuthProvider = new auth.GoogleAuthProvider(); 568 // Check device type 569 if (this.deviceDetectorService.isDesktop()) { 570 // Device is desktop, so use sign-in with popup 571 return this.afa 572 .signInWithPopup(new auth.GoogleAuthProvider()) 573 .then((userCredentials) => { 574 if (userCredentials.user) { 575 // If user is not null 576 return this.createUser(userCredentials.user).then(() => { 577 return this.router.navigate([routeTo], { queryParams }); 578 }); 579 } 580 else { 581 return this.errorLogout('Null User Credentials on login: ' + userCredentials); 582 } 583 }) 584 .catch((error) => { 585 this.errorLogout(error); 586 }); 587 } 588 else { 589 // Device is phone/tablet, so use sign-in with redirect 590 const redirectPath = AuthService.parseQueryParams(routeTo, queryParams); 591 this.location.go(redirectPath); 592 // Sign-in with Redirect is necessary to support popup browsers which do not have support for multiple tabs) 593 return this.afa.signInWithRedirect(googleAuthProvider).catch((error) => { 594 this.errorLogout(error); 595 }); 596 } 597 }); 598 } 599 /** 600 * Logs the user out of the website using Firebase Authentication. 601 * Upon successful logout, the user will be redirected to the home page. 602 * @returns A promise evaluating to true if the redirect is successful. 603 * @throws Error - If the logout fails 604 */ 605 logout() { 606 return this.afa 607 .signOut() 608 .then(() => { 609 return this.router.navigate(['/']); 610 }) 611 .catch((error) => { 612 _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(error); 613 return this.router.navigate(['/']); 614 }); 615 } 616 /** 617 * Creates a new VirtrolioUser document in the 'users' collection of the database only if the document for the 618 * currently logged in user doesn't exist. 619 * @param user: The user object returned by the Firebase Authentication login process. 620 * @throws ReferenceError - If the Firestore documents for the user or list of beta tester
620s is missing 621 * @throws Error - If a write to Firestore fails 622 */ 623 createUser(user) { 624 return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () { 625 // Not using this.getUserData() because userRef is required 626 const userRef = this.afs 627 .collection('users') 628 .doc(user.uid); 629 const userDoc = yield userRef 630 .valueChanges() 631 .pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.take)(1)) 632 .toPromise() 633 .catch((error) => { 634 throw new Error('User Creation Error:' + error); 635 }); 636 if (!userDoc) { 637 // User doesn't exist in database 638 const userData = { 639 displayName: user.displayName, 640 key: AuthService.generateKey(), 641 profilePic: user.photoURL, 642 }; 643 yield userRef.set(userData).catch((error) => { 644 throw new Error('User Creation Error:' + error); 645 }); 646 } 647 else { 648 // User exists in database, make sure all fields are present 649 if (!('key' in userDoc)) { 650 yield userRef 651 .update({ key: AuthService.generateKey() }) 652 .catch((error) => { 653 throw new Error('User Creation Error:' + error); 654 }); 655 } 656 if (!('displayName' in userDoc)) { 657 yield userRef 658 .update({ displayName: user.displayName }) 659 .catch((error) => { 660 throw new Error('User Creation Error:' + error); 661 }); 662 } 663 if (!('profilePic' in userDoc)) { 664 yield userRef.update({ profilePic: user.photoURL }).catch((error) => { 665 throw new Error('User Creation Error:' + error); 666 }); 667 } 668 } 669 }); 670 } 671 /** 672 * Handles the user creation if the user was signed in using signInWithRedirect() (called on mobile devices) instead 673 * of signInWithPopup(). Should be called on any page that could potentially be a page that the user is redirected to 674 * after calling AuthService.login(). User creation for devices using signInWithPopup() (desktops) is handled in 675 * AuthService.login(). 676 */ 677 redirectLoginUserCreation() { 678 return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () { 679 const userCredentials = yield this.afa.getRedirectResult(); 680 // user will be null if signInWithRedirect wasn't called right before 681 if (userCredentials.user) { 682 yield this.createUser(userCredentials.user).catch((error) => { 683 return this.errorLogout(error); 684 }); 685 } 686 }); 687 } 688 /** 689 * Should not be used on pages/guards that are not protected by the LoginResolver. 690 * If async functionality is required, use asyncIsLoggedIn() instead. 691 * @returns True if the user is logged in. 692 */ 693 isLoggedIn() { 694 return this.user != null; 695 } 696 /** 697 * Identical to isLoggedIn(), except using a promise. Allows the caller to utilize .then() or await. 698 * If the usage of .then() or await by the caller is not required, isLoggedIn() should be used instead. 699 * @returns a Promise evaluating to True if the user is logged in. 700 */ 701 asyncIsLoggedIn() { 702 return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () { 703 const user = yield this.afa.user.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.take)(1)).toPromise(); 704 return !!user; 705 }); 706 } 707 /** 708 * Throws a ReferenceError if the user is logged out instead of returning false (that's isLoggedIn()). 709 * Does nothing if the user is logged in. 710 * The Error is designed in such a way that the error message can be displayed to the user using a Modal or an Alert. 711 * @param attemptedOperation - The operation that is not permitted if the user is logged out, such as 'send a 712 * message'. Should be in present tense and be in user-friendly language. 713 * @throws ReferenceError - If the user is not logged in 714 */ 715 asyncThrowErrorIfLoggedOut(attemptedOperation) { 716 return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () { 717 if (!(yield this.asyncIsLoggedIn())) { 718 throw new ReferenceError('Cannot ' + attemptedOperation + ' because you are not logged in.'); 719 } 720 }); 721 } 722 /** 723 * Throws a ReferenceError if the user is logged out instead of returning false (that's isLoggedIn()). 724 * Does nothing if the user is logged in. 725 * The Error is designed in such a way that the error message can be displayed to the user using a Modal or an Alert. 726 * @param attemptedOperation - The operation that is not permitted if the user is logged out, such as 'send a 727 * message'. Should be in present tense and be in user-friendly language. 728 * @throws ReferenceError - If the user is not logged in 729 */ 730 throwErrorIfLoggedOut(attemptedOperation) { 731 if (!this.isLoggedIn()) { 732 throw new ReferenceError('Cannot ' + attemptedOperation + ' because you are not logged in.'); 733 } 734 } 735 /** 736 * @param uid - The uid to get the profile picture of. Defaults to the current user if not provided. 737 * @returns The URL to the user's profile picture. 738 * @throws ReferenceError - If the user is not logged in or doesn't exist 739 */ 740 profilePictureLink(uid = this.uid()) { 741 return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () { 742 yield this.asyncThrowErrorIfLoggedOut('get your profile picture'); 743 // noinspection DuplicatedCode 744 if (uid === this.uid()) { 745 // Avoid unnecessary database reads by getting current user data directly from Firebase Authentication 746 return this.user.photoURL; 747 } 748 else { 749 const userDoc = yield this.getUserData(uid); 750 if (userDoc) { 751 return userDoc.profilePic; 752 } 753 else { 754 throw new ReferenceError("User document doesn't exist"); 755 } 756 } 757 }); 758 } 759 /** 760 * Same as profilePictureLink, except not async to avoid the navbar trying to load the picture before the async call 761 * completes. This method should <u>**NOT**</u> be called by anything except the navbar. Use profilePictureLink() 762 * instead. 763 * @returns The URL to the user's profile picture. 764 * @throws ReferenceError - If the user is not logged in 765 */ 766 notAsyncProfilePictureLink() { 767 return this.user.photoURL; 768 } 769 /** 770 * @param uid - The uid to get the display name of. Defaults to the current user if not provided. 771 * @returns The Display Name of the user as defined in the account that they use to sign in. 772 * @throws ReferenceError - If the user is not logged in or doesn't exist 773 */ 774 displayName(uid = this.uid()) { 775 return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () { 776 yield this.asyncThrowErrorIfLoggedOut('get your name'); 777 // noinspection DuplicatedCode 778 if (uid === this.uid()) { 779 // Avoid unnecessary database reads by getting current user data directly from Firebase Authentication 780 return this.user.displayName; 781 } 782 else { 783 const userDoc = yield this.getUserData(uid); 784 if (userDoc) { 785 return userDoc.displayName; 786 } 787 else { 788 throw new ReferenceError("User document doesn't exist"); 789 } 790 } 791 }); 792 } 793 /** 794 * @returns The user's Firebase Authentication User ID. 795 * @throws ReferenceError - If the user is not logged in 796 */ 797 uid() { 798 this.throwErrorIfLoggedOut('get your user ID'); 799 return this.user.uid; 800 } 801 /** 802 * Checks if the provided user exists in the Users collection in the database. 803 * This method should only be called if the user has logged in at least once before. 804 * @param uid - The UID of the user to check 805 * @throws Error - If the argument is blank, null or undefined. 806 */ 807 userExists(uid) { 808 return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () { 809 if (typeof uid === 'undefined' || !uid) { 810 throw new Error('Argument UID was not provided'); 811 } 812 const userRef = this.afs.collection('users').doc(uid); 813 return userRef 814 .snapshotChanges() 815 .pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.take)(1)) 816 .toPromise() 817 .then((userDoc) => { 818 return userDoc.payload.exists; 819 }) 820 .catch((error) => alert(error)); 821 }); 822 } 823} 824AuthService.KEY_LENGTH = 7; 825AuthService.KEY_OPTIONS = 'qwertyuipasdfghjkzxcvbnmQWERTYUPASDFGHJKLZXCVBNM123456789'; 826AuthService.ɵfac = function AuthService_Factory(t) { return new (t || AuthService)(_angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵinject"](_angular_fire_auth__WEBPACK_IMPORTED_MODULE_6__.AngularFireAuth), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵinject"](_angular_fire_firestore__WEBPACK_IMPORTED_MODULE_7__.AngularFirestore), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵinject"](_angular_router__WEBPACK_IMPORTED_MODULE_8__.Router), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵinject"](_angular_common__WEBPACK_IMPORTED_MODULE_9__.Location), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵinject"](ngx_device_detector__WEBPACK_IMPORTED_MODULE_10__.DeviceDetectorService)); }; 827AuthService.ɵprov = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdefineInjectable"]({ token: AuthService, factory: AuthService.ɵfac, providedIn: 'root' }); 828 829 830/***/ }), 831 832/***/ 80150: 833/*!****************************************!*\ 834 !*** ./src/app/core/common.service.ts ***! 835 \****************************************/ 836/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 837 838"use strict"; 839__webpack_require__.r(__webpack_exports__); 840/* harmony export */ __webpack_require__.d(__webpack_exports__, { 841/* harmony export */ "CommonService": function() { return /* binding */ CommonService; }
842/* harmony export */ }); 843/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ 64762); 844/* harmony import */ var yaml__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! yaml */ 53782); 845/* harmony import */ var yaml__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(yaml__WEBPACK_IMPORTED_MODULE_0__); 846/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 37716); 847/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common/http */ 91841); 848 849 850 851 852class CommonService { 853 constructor(http) { 854 this.http = http; 855 } 856 /** 857 * Displays an error to the user using an alert and a human-readable prefix. 858 * @param error - The error to display to the user. 859 */ 860 static displayError(error) { 861 alert("An error occurred. Here are the details that you can report to our team through the 'Contact Us' page:\n" + 862 error); 863 } 864 parseYAMLFromFile(path) { 865 return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__awaiter)(this, void 0, void 0, function* () { 866 const yamlText = yield this.http 867 .get(path, { 868 observe: 'body', 869 responseType: 'text', 870 }) 871 .toPromise(); 872 return yaml__WEBPACK_IMPORTED_MODULE_0___default().parse(yamlText); 873 }); 874 } 875} 876CommonService.CURRENT_YEAR = new Date().getFullYear(); 877CommonService.ɵfac = function CommonService_Factory(t) { return new (t || CommonService)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵinject"](_angular_common_http__WEBPACK_IMPORTED_MODULE_3__.HttpClient)); }; 878CommonService.ɵprov = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjectable"]({ token: CommonService, factory: CommonService.ɵfac, providedIn: 'root' }); 879 880 881/***/ }), 882 883/***/ 40294: 884/*!*************************************!*\ 885 !*** ./src/app/core/core.module.ts ***! 886 \*************************************/ 887/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 888 889"use strict"; 890__webpack_require__.r(__webpack_exports__); 891/* harmony export */ __webpack_require__.d(__webpack_exports__, { 892/* harmony export */ "CoreModule": function() { return /* binding */ CoreModule; } 893/* harmony export */ }); 894/* harmony import */ var _navbar_navbar_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./navbar/navbar.component */ 1239); 895/* harmony import */ var _footer_footer_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./footer/footer.component */ 91229); 896/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/router */ 39895); 897/* harmony import */ var _app_routing_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../app-routing.module */ 90158); 898/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/common */ 38583); 899/* harmony import */ var _angular_fire__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/fire */ 50057); 900/* harmony import */ var _environments_environment_prod__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../environments/environment.prod */ 89019); 901/* harmony import */ var _angular_fire_storage__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/fire/storage */ 68274); 902/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/common/http */ 91841); 903/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 37716); 904 905 906 907 908 909 910 911 912 913 914 915class CoreModule { 916} 917CoreModule.ɵfac = function CoreModule_Factory(t) { return new (t || CoreModule)(); }; 918CoreModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdefineNgModule"]({ type: CoreModule }); 919CoreModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdefineInjector"]({ providers: [], imports: [[ 920 _angular_fire__WEBPACK_IMPORTED_MODULE_5__.AngularFireModule.initializeApp(_environments_environment_prod__WEBPACK_IMPORTED_MODULE_3__.environment.firebase), 921 _angular_fire_storage__WEBPACK_IMPORTED_MODULE_6__.AngularFireStorageModule, 922 _angular_router__WEBPACK_IMPORTED_MODULE_7__.RouterModule, 923 _app_routing_module__WEBPACK_IMPORTED_MODULE_2__.AppRoutingModule, 924 _angular_common__WEBPACK_IMPORTED_MODULE_8__.CommonModule, 925 _angular_common_http__WEBPACK_IMPORTED_MODULE_9__.HttpClientModule, 926 ]] }); 927(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵsetNgModuleScope"](CoreModule, { declarations: [_navbar_navbar_component__WEBPACK_IMPORTED_MODULE_0__.NavbarComponent, _footer_footer_component__WEBPACK_IMPORTED_MODULE_1__.FooterComponent], imports: [_angular_fire__WEBPACK_IMPORTED_MODULE_5__.AngularFireModule, _angular_fire_storage__WEBPACK_IMPORTED_MODULE_6__.AngularFireStorageModule, 928 _angular_router__WEBPACK_IMPORTED_MODULE_7__.RouterModule, 929 _app_routing_module__WEBPACK_IMPORTED_MODULE_2__.AppRoutingModule, 930 _angular_common__WEBPACK_IMPORTED_MODULE_8__.CommonModule, 931 _angular_common_http__WEBPACK_IMPORTED_MODULE_9__.HttpClientModule], exports: [_navbar_navbar_component__WEBPACK_IMPORTED_MODULE_0__.NavbarComponent, _footer_footer_component__WEBPACK_IMPORTED_MODULE_1__.FooterComponent] }); })();
932 933 934/***/ }), 935 936/***/ 87181: 937/*!**************************************!*\ 938 !*** ./src/app/core/font.service.ts ***! 939 \**************************************/ 940/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 941 942"use strict"; 943__webpack_require__.r(__webpack_exports__); 944/* harmony export */ __webpack_require__.d(__webpack_exports__, { 945/* harmony export */ "FontService": function() { return /* binding */ FontService; } 946/* harmony export */ }); 947/* harmony import */ var _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/interfaces/fonts */ 74743); 948/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 37716); 949 950 951class FontService { 952 constructor() { } 953} 954// Note how you don't have to override the default values if you don't want to 955FontService.Arial = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Arial', 'sans-serif'); 956FontService.ComicSansMS = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Comic Sans MS', 'sans-serif'); 957FontService.CourierNew = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Courier New', 'monospace'); 958FontService.DancingScript = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Dancing Script', 'cursive'); 959FontService.Montserrat = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Montserrat', 'sans-serif'); 960FontService.Roboto = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Roboto', 'sans-serif'); 961FontService.Merriweather = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Merriweather', 'serif'); 962FontService.Lobster = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Lobster', 'sans-serif'); 963FontService.IndieFlower = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Indie Flower', 'sans-serif'); 964FontService.PatrickHand = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Patrick Hand', 'sans-serif'); 965FontService.PermanentMarker = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Permanent Marker', 'sans-serif'); 966FontService.Sacramento = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Sacramento', 'cursive'); 967FontService.SpecialElite = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Special Elite', 'sans-serif'); 968FontService.TimesNewRoman = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Times New Roman', 'serif'); 969FontService.PoiretOne = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Poiret One', 'sans-serif'); 970FontService.PressStart = new _shared_interfaces_fonts__WEBPACK_IMPORTED_MODULE_0__.Font('Press Start', 'sans-serif'); 971FontService.FONTS = { 972 Arial: FontService.Arial, 973 'Comic Sans MS': FontService.ComicSansMS, 974 'Courier New': FontService.CourierNew, 975 'Dancing Script': FontService.DancingScript, 976 'Indie Flower': FontService.IndieFlower, 977 Lobster: FontService.Lobster, 978 Merriweather: FontService.Merriweather, 979 Montserrat: FontService.Montserrat, 980 'Patrick Hand': FontService.PatrickHand, 981 'Permanent Marker': FontService.PermanentMarker, 982 'Poiret One': FontService.PoiretOne, 983 'Press Start': FontService.PressStart, 984 Roboto: FontService.Roboto, 985 Sacramento: FontService.Sacramento, 986 'Special Elite': FontService.SpecialElite, 987 'Times New Roman': FontService.TimesNewRoman, 988}; 989FontService.ɵfac = function FontService_Factory(t) { return new (t || FontService)(); }; 990FontService.ɵprov = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjectable"]({ token: FontService, factory: FontService.ɵfac, providedIn: 'root' }); 991 992 993/***/ }), 994 995/***/ 91229: 996/*!*************************************************!*\ 997 !*** ./src/app/core/footer/footer.component.ts ***! 998 \*************************************************/ 999/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1000 1001"use strict"; 1002__webpack_require__.r(__webpack_exports__); 1003/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1004/* harmony export */ "FooterComponent": function() { return /* binding */ FooterComponent; } 1005/* harmony export */ }); 1006/* harmony import */ var _common_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common.service */ 80150); 1007/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 37716); 1008 1009 1010class FooterComponent { 1011 constructor() { 1012 this.currentYear = _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.CURRENT_YEAR; 1013 } 1014 ngOnInit() { } 1015} 1016FooterComponent.ɵfac = function FooterComponent_Factory(t) { return new (t || FooterComponent)(); }; 1017FooterComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: FooterComponent, selectors: [["app-footer"]], decls: 15, vars: 1, consts: [["id", "footer",
10171, "vertical-center", "align-items-center"], ["href", "https://www.facebook.com/virtrolio/", "target", "_blank", 1, "m-4"], ["src", "../../../assets/images/icons/facebook.svg", "alt", "Our Facebook", 1, "social-icon"], ["href", "https://www.instagram.com/virtrolio/", "target", "_blank", 1, "m-4"], ["src", "../../../assets/images/icons/instagram.svg", "alt", "Our Instagram", 1, "social-icon"], ["href", "mailto:[email protected]", "target", "_blank", 1, "m-4"], ["src", "../../../assets/images/icons/mail.svg", "alt", "Our Email", 1, "social-icon"], ["id", "legal"], ["href", "/terms-of-service"], ["href", "/privacy-policy"]], template: function FooterComponent_Template(rf, ctx) { if (rf & 1) { 1018 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "footer", 0); 1019 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](1, "div"); 1020 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](2, "a", 1); 1021 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](3, "img", 2); 1022 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 1023 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](4, "a", 3); 1024 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](5, "img", 4); 1025 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 1026 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](6, "a", 5); 1027 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](7, "img", 6); 1028 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 1029 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 1030 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](8, "div", 7); 1031 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](9, "a", 8); 1032 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](10, "Terms of Service"); 1033 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 1034 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](11, " | "); 1035 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](12, "a", 9); 1036 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](13, "Privacy Policy"); 1037 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 1038 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](14); 1039 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 1040 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 1041 } if (rf & 2) { 1042 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](14); 1043 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"](" | \u00A9 Virtrolio 2020-", ctx.currentYear, " "); 1044 } }, styles: ["footer[_ngcontent-%COMP%] {\n left: 0;\n bottom: 0;\n margin-bottom: 0;\n width: 100%;\n background-color: var(--darkest-accent);\n color: white;\n position: relative;\n height: var(--footer-height);\n display: flex;\n flex-direction: column;\n z-index: 1000;\n}\n\nfooter[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] {\n margin: 0.3em 0;\n}\n\n#legal[_ngcontent-%COMP%] {\n text-align: center;\n font-size: 0.8em;\n}\n\na[_ngcontent-%COMP%] {\n color: white;\n}\n\n.social-icon[_ngcontent-%COMP%] {\n height: 2em;\n width: 2em;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvb3Rlci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsT0FBTztFQUNQLFNBQVM7RUFDVCxnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLHVDQUF1QztFQUN2QyxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLDRCQUE0QjtFQUM1QixhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLGFBQWE7QUFDZjs7QUFFQTtFQUNFLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsV0FBVztFQUNYLFVBQVU7QUFDWiIsImZpbGUiOiJmb290ZXIuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbImZvb3RlciB7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhcmtlc3QtYWNjZW50KTtcbiAgY29sb3I6IHdoaXRlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogdmFyKC0tZm9vdGVyLWhlaWdodCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHotaW5kZXg6IDEwMDA7XG59XG5cbmZvb3RlciA+ICoge1xuICBtYXJnaW46IDAuM2VtIDA7XG59XG5cbiNsZWdhbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjhlbTtcbn1cblxuYSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnNvY2lhbC1pY29uIHtcbiAgaGVpZ2h0OiAyZW07XG4gIHdpZHRoOiAyZW07XG59XG4iXX0= */"] }); 1045 1046 1047/***/ }), 1048 1049/***/ 55249: 1050/*!****************************************!*\ 1051 !*** ./src/app/core/login-resolver.ts ***! 1052 \****************************************/ 1053/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1054 1055"use strict"; 1056__webpack_require__.r(__webpack_exports__); 1057/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1058/* harmony export */ "LoginResolver": function() { return /* binding */ LoginResolver; }
1059/* harmony export */ }); 1060/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ 15257); 1061/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! firebase/auth */ 71952); 1062/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 37716); 1063/* harmony import */ var _angular_fire_auth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/fire/auth */ 49743); 1064 1065 1066 1067 1068class LoginResolver { 1069 constructor(angularFireAuth) { 1070 this.angularFireAuth = angularFireAuth; 1071 } 1072 // noinspection JSUnusedLocalSymbols 1073 resolve(route, state) { 1074 return this.angularFireAuth.user.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_1__.take)(1)); 1075 } 1076} 1077LoginResolver.ɵfac = function LoginResolver_Factory(t) { return new (t || LoginResolver)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵinject"](_angular_fire_auth__WEBPACK_IMPORTED_MODULE_3__.AngularFireAuth)); }; 1078LoginResolver.ɵprov = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjectable"]({ token: LoginResolver, factory: LoginResolver.ɵfac }); 1079 1080 1081/***/ }), 1082 1083/***/ 84468: 1084/*!****************************************!*\ 1085 !*** ./src/app/core/msg-io.service.ts ***! 1086 \****************************************/ 1087/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1088 1089"use strict"; 1090__webpack_require__.r(__webpack_exports__); 1091/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1092/* harmony export */ "MsgIoService": function() { return /* binding */ MsgIoService; } 1093/* harmony export */ }); 1094/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! tslib */ 64762); 1095/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 37716); 1096/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs/operators */ 88002); 1097/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! rxjs/operators */ 15257); 1098/* harmony import */ var _common_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common.service */ 80150); 1099/* harmony import */ var _font_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./font.service */ 87181); 1100/* harmony import */ var firebase_app__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! firebase/app */ 42329); 1101/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! firebase/firestore */ 72491); 1102/* harmony import */ var _shared_interfaces_messages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/interfaces/messages */ 38031); 1103/* harmony import */ var _storage_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./storage.service */ 66498); 1104/* harmony import */ var _angular_fire_firestore__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/fire/firestore */ 56717); 1105/* harmony import */ var _auth_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./auth.service */ 87341); 1106/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 1107/* harmony import */ var _sharing_link_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./sharing-link.service */ 84157); 1108/* harmony import */ var _signing_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./signing.service */ 89214); 1109 1110 1111 1112 1113 1114 1115 1116 1117var firestore = firebase_app__WEBPACK_IMPORTED_MODULE_2__.default.firestore; 1118var Timestamp = firestore.Timestamp; 1119 1120 1121 1122 1123 1124 1125 1126 1127class MsgIoService { 1128 constructor(afs, authService, sanitizer, sharingLinkService, signingService, storageService) { 1129 this.afs = afs; 1130 this.authService = authService; 1131 this.sanitizer = sanitizer; 1132 this.sharingLinkService = sharingLinkService; 1133 this.signingService = signingService; 1134 this.storageService = storageService; 1135 this.messagesCollection = afs.collection('messages'); 1136 } 1137 /** 1138 * Helper method for sendMessage(). Checks the contents of the provided message to verify that there are no errors, 1139 * and that all required fields were provided. Throws an error if any field is incorrect or not provided. 1140 * @param message - The message to be checked. 1141 * @throws Error - If any field is blank, null, undefined or otherwise invalid. 1142 * @throws RangeError - If the contents of the message exceed the value of the maxMessageLength constant defined 1143 * in MsgIoService. 1144 */ 1145 verifyMessage(message) { 1146 const sanitizedContents = this.sanitizer.sanitize(_angular_core__WEBPACK_IMPORTED_MODULE_9__.SecurityContext.HTML, message.contents); 1147 if (typeof message.to === 'undefined' || !message.to) { 1148 // This condition (used several times below) checks for undefined, null or empty strings 1149 throw new Error('Recipient UID was not provided'); 1150 } 1151 else if (typeof message.contents === 'undefined' || !message.contents) { 1152 throw new Error('Message contents were not provided'); 1153 } 1154 else if (!/\S+/.test(message.contents)) { 1155 // Ensure messages does not solely consist of whitespace 1156 throw new Error('Message contents cannot solely consist of whitespace/blanks'); 1157 } 1158 else if (typeof message.backColor === 'undefined' || !message.backColor) {
1159 throw new Error('Background color was not provided'); 1160 } 1161 else if (typeof message.fontColor === 'undefined' || !message.fontColor) { 1162 throw new Error('Font color was not provided'); 1163 } 1164 else if (typeof message.fontFamily === 'undefined' || 1165 !message.fontFamily) { 1166 throw new Error('Font family was not provided'); 1167 } 1168 else if (sanitizedContents.length > MsgIoService.MAX_MSG_LENGTH) { 1169 throw new RangeError('Message is too long. The max length is ' + 1170 MsgIoService.MAX_MSG_LENGTH + 1171 ' characters, ' + 1172 'and the provided message is ' + 1173 sanitizedContents.length + 1174 ' characters long.\n' + 1175 'Remember that some character such as line breaks, emojis and other languages have a length longer than one per character.'); 1176 } 1177 else if (!/^#(?:[0-9a-fA-F]{3}){1,2}$/.test(message.fontColor)) { 1178 // Match for hex code such as: #FFFFFF 1179 throw new Error("Provided font color is not a valid hex code. Did you forget to include '#'?" + 1180 ' Provided color code: ' + 1181 message.fontColor); 1182 } 1183 else if (!/^#(?:[0-9a-fA-F]{3}){1,2}$/.test(message.backColor)) { 1184 // Match for hex code such as: #FFFFFF 1185 throw new Error("Provided background color is not a valid hex code. Did you forget to include '#'?" + 1186 ' Provided color code: ' + 1187 message.backColor); 1188 } 1189 else if (!(message.fontFamily in _font_service__WEBPACK_IMPORTED_MODULE_1__.FontService.FONTS)) { 1190 throw new Error("Provided font family is not supported or doesn't exist: " + 1191 message.fontFamily); 1192 } 1193 // Return not needed as an error will be thrown if something is wrong 1194 } 1195 /** 1196 * @returns A blank VirtrolioMessageTemplate, which should be modified the returned template to fill in the user data 1197 * and then passed into MsgIoService.sendMessage(). 1198 */ 1199 createBlankMessage() { 1200 return new _shared_interfaces_messages__WEBPACK_IMPORTED_MODULE_4__.VirtrolioMessageTemplate(); 1201 } 1202 /** 1203 * Collects ALL messages from the Firestore messages database that were sent to a particular user. 1204 * Pay careful attention to the fields that are returned in a VirtrolioMessage by reading 1205 * shared/interfaces/messages.ts. A VirtrolioMessage is NOT identical to a VirtrolioMessageTemplate. 1206 * @returns An Observable that will contain an array of all messages sent to uid, including the message IDs. 1207 * @throws Error - If the argument is blank, null or undefined. 1208 */ 1209 getMessages() { 1210 this.authService.throwErrorIfLoggedOut('get your messages'); 1211 return this.afs 1212 .collection('messages', (ref) => ref 1213 .where('to', '==', this.authService.uid()) 1214 .orderBy('timestamp', 'desc')) 1215 .snapshotChanges() 1216 .pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_10__.map)((actions) => actions.map((a) => { 1217 const data = a.payload.doc.data(); 1218 const id = a.payload.doc.id; 1219 return Object.assign({ id }, data); 1220 }))); 1221 } 1222 /** 1223 * Collects a SINGLE message from the Firestore messages database based on a message ID. 1224 * Pay careful attention to the fields that are returned in a VirtrolioMessage by reading 1225 * shared/interfaces/messages.ts. A VirtrolioMessage is NOT identical to a VirtrolioMessageTemplate. 1226 * @param msgID - The ID of the message to be received. 1227 */ 1228 getMessage(msgID) { 1229 this.authService.throwErrorIfLoggedOut('fetch a message'); 1230 const msgRef = this.afs 1231 .collection('messages') 1232 .doc(msgID); 1233 return msgRef.snapshotChanges().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_10__.map)((document) => { 1234 const data = document.payload.data(); 1235 const id = document.payload.id; 1236 return Object.assign({ id }, data); 1237 })); 1238 } 1239 /** 1240 * Marks the specified message as read by changing the isRead property of the message. 1241 * To avoid unnecessary writes, the caller of this method should check the isRead property prior to calling 1242 * this method. If that property is already true, this method should not be called. 1243 * The check should be done using the local copy of the message object that is used to display that message. 1244 * DO NOT get a new copy of the message - that would increase reads. 1245 * Assumes the message exists. 1246 * @param id - The ID of the message to mark as read. 1247 */ 1248 markAsRead(id) { 1249 return (0,tslib__WEBPACK_IMPORTED_MODULE_11__.__awaiter)(this, void 0, void 0, function* () { 1250 yield this.afs 1251 .collection('messages') 1252 .doc(id) 1253 .update({ isRead: true }) 1254 .catch((error) => { 1255 _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(error); 1256 }); 1257 }); 1258 } 1259 /** 1260 * Checks to see if the current user has already signed another user's virtrolio. 1261 * Assumes the UIDs were already checked to be valid. 1262 * @param toUID - The recipient of the message. 1263 * @returns true - If the current user has already signed the virtrolio of toUID. 1264 */ 1265 checkForMessage(toUID) { 1266 return (0,tslib__WEBPACK_IMPORTED_MODULE_11__.__awaiter)(this, void 0, void 0, function* () { 1267 const msgRef = yield this.afs 1268 .collection('messages') 1269 .doc(this.authService.uid() +
1270 '-' + 1271 toUID + 1272 '-' + 1273 MsgIoService.CURRENT_VERSION); 1274 const msgDoc = yield msgRef 1275 .valueChanges() 1276 .pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_12__.take)(1)) 1277 .toPromise(); 1278 return !!msgDoc; 1279 }); 1280 } 1281 /** 1282 * Used to send a Virtrolio message (defined by VirtrolioMessageTemplate) by adding it to the Firestore database. 1283 * @param messageTemplate - The contents and settings of the message. This should be a VirtrolioMessageTemplate that 1284 * was created by MsgIoService.createBlankMessage and then modified to fill in the user data. You should **NOT** try 1285 * to pass in a VirtrolioMessageTemplate that you create yourself. 1286 * @param key - The key of the recipient of the message. This should be extracted from the URL provided by the sender. 1287 * @throws RangeError - Thrown by helper method this.verifyMessage() 1288 * @throws Error - Thrown by helper method this.verifyMessage() 1289 * @throws TypeError - If the key is incorrect 1290 * @throws ReferenceError - If this method is called when logged out 1291 */ 1292 sendMessage(messageTemplate, key) { 1293 return (0,tslib__WEBPACK_IMPORTED_MODULE_11__.__awaiter)(this, void 0, void 0, function* () { 1294 // Check message object contents for validity 1295 this.verifyMessage(messageTemplate); 1296 // Verify user is logged in 1297 yield this.authService.asyncThrowErrorIfLoggedOut('send a message'); 1298 // Verify the virtrolio has not already been signed 1299 if (yield this.checkForMessage(messageTemplate.to)) { 1300 throw new Error("You have already signed this person's virtrolio. If you want to sign it again," + 1301 " you'll have to ask them to delete your original message first."); 1302 } 1303 // Verify correct key 1304 const keyIsCorrect = yield this.sharingLinkService.checkKey(messageTemplate.to, key); 1305 if (keyIsCorrect) { 1306 // Remove XSS content from message contents 1307 messageTemplate.contents = this.sanitizer.sanitize(_angular_core__WEBPACK_IMPORTED_MODULE_9__.SecurityContext.HTML, messageTemplate.contents); 1308 // Generate target message id 1309 const messageId = this.authService.uid() + 1310 '-' + 1311 messageTemplate.to + 1312 '-' + 1313 MsgIoService.CURRENT_VERSION; 1314 // Upload images 1315 const images = yield this.storageService.uploadImages(messageId, this.signingService.images); 1316 // Add remaining autogenerated fields 1317 const message = Object.assign(Object.assign({}, messageTemplate), { from: this.authService.uid(), timestamp: Timestamp.now(), images, isRead: false, year: _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.CURRENT_YEAR, fromName: yield this.authService.displayName(), fromPic: yield this.authService.profilePictureLink(), key }); 1318 // Send the message 1319 const msgRef = this.messagesCollection.doc(messageId); 1320 yield msgRef.set(message).catch((error) => { 1321 _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(error); 1322 }); 1323 } 1324 else { 1325 throw new TypeError('Incorrect key'); 1326 } 1327 }); 1328 } 1329 /** 1330 * Deletes a message PERMANENTLY. The caller of this method is responsible for alerting the user that the deletion is 1331 * irreversible. 1332 * It is highly suggested that the caller display a confirmation dialog to confirm the deletion before calling this 1333 * method, as there is no way to reverse this operation. Not even if you say 'please'. 1334 * @param mID - The message/document ID of the message to be deleted. 1335 */ 1336 deleteMessage(mID) { 1337 return (0,tslib__WEBPACK_IMPORTED_MODULE_11__.__awaiter)(this, void 0, void 0, function* () { 1338 yield this.storageService.deleteFiles(`${_storage_service__WEBPACK_IMPORTED_MODULE_5__.StorageService.MESSAGE_IMG_BASE_PATH}/${mID}`); 1339 yield this.afs.collection('messages').doc(mID).delete(); 1340 }); 1341 } 1342} 1343MsgIoService.CURRENT_VERSION = '2021.1'; 1344MsgIoService.MAX_MSG_LENGTH = 15000; 1345MsgIoService.ɵfac = function MsgIoService_Factory(t) { return new (t || MsgIoService)(_angular_core__WEBPACK_IMPORTED_MODULE_9__["ɵɵinject"](_angular_fire_firestore__WEBPACK_IMPORTED_MODULE_13__.AngularFirestore), _angular_core__WEBPACK_IMPORTED_MODULE_9__["ɵɵinject"](_auth_service__WEBPACK_IMPORTED_MODULE_6__.AuthService), _angular_core__WEBPACK_IMPORTED_MODULE_9__["ɵɵinject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_14__.DomSanitizer), _angular_core__WEBPACK_IMPORTED_MODULE_9__["ɵɵinject"](_sharing_link_service__WEBPACK_IMPORTED_MODULE_7__.SharingLinkService), _angular_core__WEBPACK_IMPORTED_MODULE_9__["ɵɵinject"](_signing_service__WEBPACK_IMPORTED_MODULE_8__.SigningService), _angular_core__WEBPACK_IMPORTED_MODULE_9__["ɵɵinject"](_storage_service__WEBPACK_IMPORTED_MODULE_5__.StorageService)); }; 1346MsgIoService.ɵprov = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_9__["ɵɵdefineInjectable"]({ token: MsgIoService, factory: MsgIoService.ɵfac, providedIn: 'root' }); 1347 1348 1349/***/ }), 1350 1351/***/ 1239: 1352/*!*************************************************!*\ 1353 !*** ./src/app/core/navbar/navbar.component.ts ***! 1354 \*************************************************/ 1355/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1356 1357"use strict"; 1358__webpack_require__.r(__webpack_exports__); 1359/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1360/* harmony export */ "NavbarComponent": function() { return /* binding */ NavbarComponent; } 1361/* harmony export */ }); 1362/* harmony import */ var _changelog_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./changelog.json */ 80925); 1363/* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../app.component */ 55041); 1364/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/router */ 39895); 1365/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 37716); 1366/* harmony import */ var _auth_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../auth.service */ 87341); 1367/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/common */ 38583); 1368 1369 1370 1371 1372 1373 1374 1375function NavbarComponent_li_26_Template(rf, ctx) { if (rf & 1) { 1376 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](0, "li", 37); 1377} } 1378function NavbarComponent_div_36_Template(rf, ctx) { if (rf & 1) { 1379 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 38); 1380 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](1, "img", 39); 1381 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1382} if (rf & 2) { 1383 const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); 1384 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); 1385 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpropertyInterpolate"]("src", ctx_r1.authService.n
1385otAsyncProfilePictureLink(), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵsanitizeUrl"]); 1386} } 1387function NavbarComponent_ng_container_60_div_1_span_4_Template(rf, ctx) { if (rf & 1) { 1388 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "span"); 1389 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](1, "br"); 1390 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](2, "small"); 1391 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](3, "em"); 1392 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](4, "You can send one new message to each of your friends with this update! "); 1393 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1394 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](5, "\uD83D\uDC8C"); 1395 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1396 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1397} } 1398function NavbarComponent_ng_container_60_div_1_ng_container_6_li_1_Template(rf, ctx) { if (rf & 1) { 1399 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "li"); 1400 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](1, "span"); 1401 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](2); 1402 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1403 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](3, "\u00A0"); 1404 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](4, "u"); 1405 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](5); 1406 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1407 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](6); 1408 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1409} if (rf & 2) { 1410 const item_r7 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"]().$implicit; 1411 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); 1412 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵattribute"]("class", item_r7.typeCSS); 1413 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); 1414 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate1"]("[", item_r7.type, "]"); 1415 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](3); 1416 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate"](item_r7.location); 1417 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); 1418 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate1"](": ", item_r7.content, " "); 1419} } 1420function NavbarComponent_ng_container_60_div_1_ng_container_6_Template(rf, ctx) { if (rf & 1) { 1421 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerStart"](0); 1422 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](1, NavbarComponent_ng_container_60_div_1_ng_container_6_li_1_Template, 7, 4, "li", 40); 1423 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerEnd"](); 1424} if (rf & 2) { 1425 const item_r7 = ctx.$implicit; 1426 const ctx_r6 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](3); 1427 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); 1428 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", item_r7.betaFlag === false || ctx_r6.beta === true); 1429} } 1430function NavbarComponent_ng_container_60_div_1_Template(rf, ctx) { if (rf & 1) { 1431 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div"); 1432 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](1, "p"); 1433 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](2, "strong"); 1434 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](3); 1435 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1436 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](4, NavbarComponent_ng_container_60_div_1_span_4_Template, 6, 0, "span", 40); 1437 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1438 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](5, "ul"); 1439 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](6, NavbarComponent_ng_container_60_div_1_ng_container_6_Template, 2, 1, "ng-container", 34); 1440 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1441 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1442} if (rf & 2) { 1443 const version_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"]().$implicit; 1444 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](3); 1445 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate2"]("v", version_r3.versionNumber, " | ", version_r3.releaseDate, ""); 1446 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); 1447 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", version_r3.newMessageAvailable); 1448 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](2); 1449 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngForOf", version_r3.items); 1450} } 1451function NavbarComponent_ng_container_60_Template(rf, ctx) { if (rf & 1) { 1452 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerStart"](0); 1453 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](1, NavbarC
1453omponent_ng_container_60_div_1_Template, 7, 4, "div", 40); 1454 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerEnd"](); 1455} if (rf & 2) { 1456 const version_r3 = ctx.$implicit; 1457 const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); 1458 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); 1459 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", version_r3.betaUpdate === false || ctx_r2.beta === true); 1460} } 1461const _c0 = function () { return { exact: true }; }; 1462class NavbarComponent { 1463 constructor(authService, router) { 1464 this.authService = authService; 1465 this.router = router; 1466 this.changelog = _changelog_json__WEBPACK_IMPORTED_MODULE_0__; 1467 this.beta = _app_component__WEBPACK_IMPORTED_MODULE_1__.AppComponent.BETA; 1468 router.events.subscribe((event) => { 1469 if (event instanceof _angular_router__WEBPACK_IMPORTED_MODULE_4__.NavigationStart) { 1470 $('#changelog').modal('hide'); 1471 } 1472 }); 1473 } 1474 ngOnInit() { 1475 /* Make hamburger menu collapse on item click */ 1476 $('.navbar-nav>li>a').on('click', () => { 1477 $('.navbar-collapse').collapse('hide'); 1478 }); 1479 } 1480 ngOnDestroy() { 1481 $('#changelog').modal('hide'); 1482 } 1483} 1484NavbarComponent.ɵfac = function NavbarComponent_Factory(t) { return new (t || NavbarComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_auth_service__WEBPACK_IMPORTED_MODULE_2__.AuthService), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_4__.Router)); }; 1485NavbarComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdefineComponent"]({ type: NavbarComponent, selectors: [["app-navbar"]], decls: 64, vars: 8, consts: [[1, "navbar", "navbar-expand-md", "navbar-dark", "bg-light"], ["id", "navbar_title", "routerLink", "", 1, "navbar-brand"], ["alt", "Virtrolio Logo", "height", "30", "src", "../../../assets/images/logo_inverted-circle.png", "width", "30", 1, "d-inline-block", "align-top"], ["aria-controls", "navbarNav", "aria-expanded", "false", "aria-label", "Toggle navigation", "data-target", "#navbarNav", "data-toggle", "collapse", "type", "button", 1, "navbar-toggler"], [1, "navbar-toggler-icon"], ["id", "navbarNav", 1, "collapse", "navbar-collapse"], [1, "navbar-nav", "ml-2"], [1, "nav-item"], ["routerLink", "", "routerLinkActive", "navbar-nav-active", 1, "nav-link", 3, "routerLinkActiveOptions"], ["routerLink", "my-virtrolio", "routerLinkActive", "navbar-nav-active", 1, "nav-link", 3, "hidden"], ["routerLink", "about", "routerLinkActive", "navbar-nav-active", 1, "nav-link"], ["routerLink", "faq", "routerLinkActive", "navbar-nav-active", 1, "nav-link"], ["routerLink", "contact", "routerLinkActive", "navbar-nav-active", 1, "nav-link"], ["role", "button", "data-toggle", "modal", "data-target", "#changelog", 1, "nav-link"], ["class", "dropdown-divider d-block d-sm-block d-md-none", 4, "ngIf"], [1, "nav-item", "d-block", "d-sm-block", "d-md-none"], ["routerLink", "settings", 1, "nav-link", 3, "hidden"], ["href", "#", 1, "nav-link", 3, "hidden", "click"], [1, "float-right", "d-none", "d-md-block", "d-lg-block", "d-xl-block"], [1, "dropdown", "dropleft"], ["aria-expanded", "false", "aria-haspopup", "true", "data-toggle", "dropdown", "href", "#", "id", "dropdownMenuLink", "role", "button"], ["class", "float-right profile-pic-container", 4, "ngIf"], ["aria-labelledby", "dropdownMenuButton", 1, "dropdown-menu"], ["routerLink", "settings", 1, "dropdown-item"], ["href", "#", "id", "logout-text", 1, "dropdown-item", 3, "click"], ["id", "changelog", "tabindex", "-1", "role", "dialog", "aria-labelledby", "changelog-label", "aria-hidden", "true", 1, "modal", "fade"], [1, "modal-dialog", "modal-dialog-centered", "modal-lg"], [1, "modal-content"], [1, "modal-header"], ["id", "changelog-label", 1, "modal-title"], ["type", "button", "data-dismiss", "modal", "aria-label", "Close", 1, "close"], ["aria-hidden", "true"], ["id", "changelog-body", 1, "modal-body"], ["id", "changelog-note"], [4, "ngFor", "ngForOf"], [1, "modal-footer"], ["type", "button", "data-dismiss", "modal", 1, "btn", "btn-secondary"], [1, "dropdown-divider", "d-block", "d-sm-block", "d-md-none"], [1, "float-right", "profile-pic-container"], ["alt", "profile-pic", 1, "profile-pic", 3, "src"], [4, "ngIf"]], template: function NavbarComponent_Template(rf, ctx) { if (rf & 1) { 1486 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "nav", 0); 1487 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](1, "a", 1); 1488 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](2, "img", 2); 1489 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](3, " Virtrolio "); 1490 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1491 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](4, "button", 3); 1492 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](5, "span", 4); 1493 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1494 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](6, "div", 5); 1495 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](7, "ul", 6); 1496 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](8, "li", 7); 1497 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](9, "a", 8); 1498 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](10, "Home"); 1499 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1500 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1501 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](11, "li", 7); 1502 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](12, "a", 9); 1503 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](13, "My virtrolio"); 1504 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1505 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1506 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](14, "li", 7); 1507 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](15, "a", 10); 1508 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](16, "About Us"); 1509 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1510 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1511 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](17, "li", 7); 1512 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](18, "a", 11); 1513 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](19, "FAQ"); 1514 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1515 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1516 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](20, "li", 7); 1517 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](21, "a", 12); 1518 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](22, "Contact Us"); 1519 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1520 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1521 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](23, "li", 7); 1522 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](24, "a", 13); 1523 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](25, "What's New?"); 1524 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1525 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1526 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](26, NavbarC
1526omponent_li_26_Template, 1, 0, "li", 14); 1527 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](27, "li", 15); 1528 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](28, "a", 16); 1529 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](29, "Settings"); 1530 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1531 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1532 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](30, "li", 15); 1533 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](31, "a", 17); 1534 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function NavbarComponent_Template_a_click_31_listener() { return ctx.authService.logout(); }); 1535 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](32, "Logout"); 1536 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1537 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1538 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1539 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1540 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](33, "div", 18); 1541 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](34, "div", 19); 1542 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](35, "a", 20); 1543 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](36, NavbarComponent_div_36_Template, 2, 1, "div", 21); 1544 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1545 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](37, "div", 22); 1546 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](38, "a", 23); 1547 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](39, "Settings"); 1548 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1549 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](40, "a", 24); 1550 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function NavbarComponent_Template_a_click_40_listener() { return ctx.authService.logout(); }); 1551 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](41, "Logout"); 1552 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1553 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1554 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1555 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1556 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1557 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](42, "div", 25); 1558 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](43, "div", 26); 1559 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](44, "div", 27); 1560 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](45, "div", 28); 1561 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](46, "h5", 29); 1562 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](47, "Changelog"); 1563 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1564 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](48, "button", 30); 1565 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](49, "span", 31); 1566 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](50, "\u00D7"); 1567 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1568 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1569 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1570 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](51, "div", 32); 1571 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](52, "p"); 1572 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](53, " New features, fixes, and updates will be posted here whenever we update the website! "); 1573 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1574 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](54, "p", 33); 1575 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](55, "small"); 1576 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](56, "Note: Whenever we release an update to the 'signing' page, we may, at our discretion, allow you to send "); 1577 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](57, "em"); 1578 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](58, "another"); 1579 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1580 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](59, " message to each of your friends' virtrolios as if it were a new year! This ensures that you will be able to enjoy any new features that we develop. Keep an eye out for versions with a \uD83D\uDC8C emoji next to them to see if you're allowed to send an extra message!"); 1581 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1582 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1583 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](60, NavbarC
1583omponent_ng_container_60_Template, 2, 1, "ng-container", 34); 1584 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1585 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](61, "div", 35); 1586 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](62, "button", 36); 1587 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](63, " Close "); 1588 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1589 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1590 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1591 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1592 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 1593 } if (rf & 2) { 1594 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](9); 1595 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("routerLinkActiveOptions", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpureFunction0"](7, _c0)); 1596 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](3); 1597 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("hidden", !ctx.authService.isLoggedIn()); 1598 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](14); 1599 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx.authService.isLoggedIn()); 1600 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](2); 1601 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("hidden", !ctx.authService.isLoggedIn()); 1602 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](3); 1603 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("hidden", !ctx.authService.isLoggedIn()); 1604 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](5); 1605 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx.authService.isLoggedIn()); 1606 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](24); 1607 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngForOf", ctx.changelog); 1608 } }, directives: [_angular_router__WEBPACK_IMPORTED_MODULE_4__.RouterLinkWithHref, _angular_router__WEBPACK_IMPORTED_MODULE_4__.RouterLinkActive, _angular_common__WEBPACK_IMPORTED_MODULE_5__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_5__.NgForOf], styles: [".navbar[_ngcontent-%COMP%] {\r\n background: var(--accent);\r\n background: linear-gradient(\r\n 90deg,\r\n var(--navbar-left) 0%,\r\n var(--navbar-right) 100%\r\n );\r\n position: fixed;\r\n top: 0;\r\n width: 100%;\r\n z-index: 1;\r\n height: var(--navbar-height);\r\n padding: 0;\r\n}\r\n\r\n#navbar_title[_ngcontent-%COMP%] {\r\n font-family: Montserrat, sans-serif;\r\n font-weight: 400;\r\n color: white;\r\n margin-left: 1em;\r\n}\r\n\r\n#logout-text[_ngcontent-%COMP%] {\r\n color: red;\r\n}\r\n\r\n.navbar-nav-active[_ngcontent-%COMP%] {\r\n color: #ffffff !important;\r\n -webkit-text-decoration: underline #ffffffbf !important;\r\n text-decoration: underline #ffffffbf !important;\r\n text-underline-offset: 0.2em;\r\n}\r\n\r\n.navbar-nav[_ngcontent-%COMP%] li[_ngcontent-%COMP%] a[_ngcontent-%COMP%] {\r\n color: #fefefe;\r\n opacity: 0.75;\r\n}\r\n\r\n.navbar-nav[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:hover a[_ngcontent-%COMP%]:hover {\r\n color: #ffffff;\r\n opacity: 1;\r\n}\r\n\r\n.profile-pic[_ngcontent-%COMP%] {\r\n width: 100%;\r\n}\r\n\r\n.profile-pic[_ngcontent-%COMP%]:hover {\r\n opacity: 0.75;\r\n}\r\n\r\n.profile-pic-container[_ngcontent-%COMP%] {\r\n margin-right: 1em;\r\n}\r\n\r\n.navbar-collapse[_ngcontent-%COMP%] {\r\n background: rgba(255, 255, 255, 0);\r\n padding: 0 1em;\r\n}\r\n\r\n.navbar-toggler[_ngcontent-%COMP%] {\r\n margin-right: 1em;\r\n border-color: rgba(255, 255, 255, 0.2);\r\n}\r\n\r\n.navbar-toggler-icon[_ngcontent-%COMP%] {\r\n \r\n background-image: url('hamburger-icon-custom-white.svg');\r\n}\r\n\r\n\r\n\r\n@media (max-width: 767px) {\r\n .navbar-collapse[_ngcontent-%COMP%] {\r\n background: var(--accent);\r\n background: linear-gradient(\r\n 90deg,\r\n rgba(250, 128, 114, 1) 0%,\r\n rgba(251, 91, 91, 1) 100%\r\n );\r\n box-shadow: 0 0.5em 1em -1em black;\r\n border-radius: 0 0 1em 1em;\r\n font-weight: bold;\r\n padding-bottom: 1em;\r\n }\r\n}\r\n\r\n\r\n\r\n#changelog-body[_ngcontent-%COMP%] {\r\n max-height: 25em;\r\n overflow: auto;\r\n}\r\n\r\n#changelog-note[_ngcontent-%COMP%] {\r\n line-height: 1em;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n.changelog-new[_ngcontent-%COMP%] {\r\n color: #41af14;\r\n font-weight: bold;\r\n}\r\n\r\n\r\n\r\n.changelog-upd[_ngcontent-%COMP%] {\r\n color: dodgerblue;\r\n font-weight: bold;\r\n}\r\n\r\n\r\n\r\n.changelog-fix[_ngcontent-%COMP%] {\r\n color: red;\r\n font-weight: bold;\r\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5hdmJhci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQXlCO0VBQ3pCOzs7O0dBSUM7RUFDRCxlQUFlO0VBQ2YsTUFBTTtFQUNOLFdBQVc7RUFDWCxVQUFVO0VBQ1YsNEJBQTRCO0VBQzVCLFVBQVU7QUFDWjs7QUFFQTtFQUNFLG1DQUFtQztFQUNuQyxnQkFBZ0I7RUFDaEIsWUFBWTtFQUNaLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLFVBQVU7QUFDWjs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6Qix1REFBK0M7VUFBL0MsK0NBQStDO0VBQy9DLDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxjQUFjO0VBQ2QsVUFBVTtBQUNaOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0Usa0NBQWtDO0VBQ2xDLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsc0NBQXNDO0FBQ3hDOztBQUVBO0VBQ0UsK0VBQStFO0VBQy9FLHdEQUE2RTtBQUMvRTs7QUFFQSwyQ0FBMkM7O0FBQzNDO0VBQ0U7SUFDRSx5QkFBeUI7SUFDekI7Ozs7S0FJQztJQUNELGtDQUFrQztJQUNsQywwQkFBMEI7SUFDMUIsaUJBQWlCO0lBQ2pCLG1CQUFtQjtFQUNyQjtBQUNGOztBQUVBLGNBQWM7O0FBQ2Q7RUFDRSxnQkFBZ0I7RUFDaEIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQSw2RkFBNkY7O0FBQzdGLCtCQUErQjs7QUFDL0I7RUFDRSxjQUFjO0VBQ2QsaUJBQWlCO0FBQ25COztBQUVBLCtCQUErQjs7QUFDL0I7RUFDRSxpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25COztBQUVBLCtCQUErQjs7QUFDL0I7RUFDRSxVQUFVO0VBQ1YsaUJBQWlCO0FBQ25CIiwiZmlsZSI6Im5hdmJhci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm5hdmJhciB7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXHJcbiAgICA5MGRlZyxcclxuICAgIHZhcigtLW5hdmJhci1sZWZ0KSAwJSxcclxuICAgIHZhcigtLW5hdmJhci1yaWdodCkgMTAwJVxyXG4gICk7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICB6LWluZGV4OiAxO1xyXG4gIGhlaWdodDogdmFyKC0tbmF2YmFyLWhlaWdodCk7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuI25hdmJhcl90aXRsZSB7XHJcbiAgZm9udC1mYW1pbHk6IE1vbnRzZXJyYXQsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDt
1608cclxuICBjb2xvcjogd2hpdGU7XHJcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcclxufVxyXG5cclxuI2xvZ291dC10ZXh0IHtcclxuICBjb2xvcjogcmVkO1xyXG59XHJcblxyXG4ubmF2YmFyLW5hdi1hY3RpdmUge1xyXG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgI2ZmZmZmZmJmICFpbXBvcnRhbnQ7XHJcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjJlbTtcclxufVxyXG5cclxuLm5hdmJhci1uYXYgbGkgYSB7XHJcbiAgY29sb3I6ICNmZWZlZmU7XHJcbiAgb3BhY2l0eTogMC43NTtcclxufVxyXG5cclxuLm5hdmJhci1uYXYgbGk6aG92ZXIgYTpob3ZlciB7XHJcbiAgY29sb3I6ICNmZmZmZmY7XHJcbiAgb3BhY2l0eTogMTtcclxufVxyXG5cclxuLnByb2ZpbGUtcGljIHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLnByb2ZpbGUtcGljOmhvdmVyIHtcclxuICBvcGFjaXR5OiAwLjc1O1xyXG59XHJcblxyXG4ucHJvZmlsZS1waWMtY29udGFpbmVyIHtcclxuICBtYXJnaW4tcmlnaHQ6IDFlbTtcclxufVxyXG5cclxuLm5hdmJhci1jb2xsYXBzZSB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcclxuICBwYWRkaW5nOiAwIDFlbTtcclxufVxyXG5cclxuLm5hdmJhci10b2dnbGVyIHtcclxuICBtYXJnaW4tcmlnaHQ6IDFlbTtcclxuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcclxufVxyXG5cclxuLm5hdmJhci10b2dnbGVyLWljb24ge1xyXG4gIC8qIFJlcGxhY2UgdGhlIGhhbWJ1cmdlciBpY29uIGltYWdlIHdpdGggYSBjdXN0b20gU1ZHIHRoYXQgaGFzIGN1c3RvbSBjb2xvdXJzICovXHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvaGFtYnVyZ2VyLWljb24tY3VzdG9tLXdoaXRlLnN2Zyk7XHJcbn1cclxuXHJcbi8qIEFsdGVybmF0ZSBmb3JtYXR0aW5nIGZvciBtb2JpbGUgbmF2YmFyICovXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xyXG4gIC5uYXZiYXItY29sbGFwc2Uge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgICAgOTBkZWcsXHJcbiAgICAgIHJnYmEoMjUwLCAxMjgsIDExNCwgMSkgMCUsXHJcbiAgICAgIHJnYmEoMjUxLCA5MSwgOTEsIDEpIDEwMCVcclxuICAgICk7XHJcbiAgICBib3gtc2hhZG93OiAwIDAuNWVtIDFlbSAtMWVtIGJsYWNrO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDFlbSAxZW07XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxZW07XHJcbiAgfVxyXG59XHJcblxyXG4vKiBDaGFuZ2Vsb2cgKi9cclxuI2NoYW5nZWxvZy1ib2R5IHtcclxuICBtYXgtaGVpZ2h0OiAyNWVtO1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG59XHJcblxyXG4jY2hhbmdlbG9nLW5vdGUge1xyXG4gIGxpbmUtaGVpZ2h0OiAxZW07XHJcbn1cclxuXHJcbi8qIFRoZXNlIGZvcm1hdCB0aGUgY2hhbmdlbG9nIGl0ZW1zIGFuZCBhcmUgdXNlZCBjb25kaXRpb25hbGx5LCBzbyBzdXBwcmVzc2lvbiBpcyBuZWNlc3NhcnkgKi9cclxuLypub2luc3BlY3Rpb24gQ3NzVW51c2VkU3ltYm9sKi9cclxuLmNoYW5nZWxvZy1uZXcge1xyXG4gIGNvbG9yOiAjNDFhZjE0O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4vKm5vaW5zcGVjdGlvbiBDc3NVbnVzZWRTeW1ib2wqL1xyXG4uY2hhbmdlbG9nLXVwZCB7XHJcbiAgY29sb3I6IGRvZGdlcmJsdWU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi8qbm9pbnNwZWN0aW9uIENzc1VudXNlZFN5bWJvbCovXHJcbi5jaGFuZ2Vsb2ctZml4IHtcclxuICBjb2xvcjogcmVkO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcbiJdfQ== */"] }); 1609 1610 1611/***/ }), 1612 1613/***/ 88989: 1614/*!***********************************************!*\ 1615 !*** ./src/app/core/pending-changes.guard.ts ***! 1616 \***********************************************/ 1617/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1618 1619"use strict"; 1620__webpack_require__.r(__webpack_exports__); 1621/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1622/* harmony export */ "PendingChangesGuard": function() { return /* binding */ PendingChangesGuard; } 1623/* harmony export */ }); 1624/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 37716); 1625 1626class PendingChangesGuard { 1627 /** 1628 * Returns a warning if a user attempts to navigate away and canDeactivate() is false 1629 * Note that the warning message specified will only show when navigating within the angular app. 1630 * When navigating outside the app, the browser will show a generic confirm dialogue. 1631 * @param component - the component that will get deactivated 1632 */ 1633 canDeactivate(component) { 1634 return component.canDeactivate() 1635 ? true 1636 : confirm('WARNING: Your message has not been sent yet. Press Cancel to go back to complete and send your message, or OK to discard your message.'); 1637 } 1638} 1639PendingChangesGuard.ɵfac = function PendingChangesGuard_Factory(t) { return new (t || PendingChangesGuard)(); }; 1640PendingChangesGuard.ɵprov = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: PendingChangesGuard, factory: PendingChangesGuard.ɵfac }); 1641 1642 1643/***/ }), 1644 1645/***/ 84157: 1646/*!**********************************************!*\ 1647 !*** ./src/app/core/sharing-link.service.ts ***! 1648 \**********************************************/ 1649/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1650 1651"use strict"; 1652__webpack_require__.r(__webpack_exports__); 1653/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1654/* harmony export */ "SharingLinkService": function() { return /* binding */ SharingLinkService; }
1655/* harmony export */ }); 1656/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ 64762); 1657/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ 15257); 1658/* harmony import */ var _auth_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./auth.service */ 87341); 1659/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 37716); 1660/* harmony import */ var _angular_fire_firestore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/fire/firestore */ 56717); 1661 1662 1663 1664 1665 1666 1667class SharingLinkService { 1668 constructor(authService, afs) { 1669 this.authService = authService; 1670 this.afs = afs; 1671 } 1672 /** 1673 * Generates the shareable signing link for the current user. The signing link has two query parameters that are used 1674 * by Angular routerLink. The first is 'uid', which is the current user's Firebase Authentication User ID. 1675 * The second is 'key', which is generated by AppAuthService.changeKey(). 1676 * @returns The sharable signing link for the current user, usable by FriendLinkComponent. 1677 * @throws ReferenceError - If the user is not logged in 1678 */ 1679 getLink() { 1680 return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__awaiter)(this, void 0, void 0, function* () { 1681 yield this.authService.asyncThrowErrorIfLoggedOut('get your sharing link'); 1682 let link = 'https://virtrolio.web.app/signing?uid='; 1683 const user = this.authService.uid(); 1684 link += user + '&key='; 1685 const userRef = this.afs 1686 .collection('users') 1687 .doc(user); 1688 let userDoc = yield userRef 1689 .valueChanges() 1690 .pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_2__.take)(1)) 1691 .toPromise(); 1692 if (!userDoc) { 1693 yield this.authService.createUser(this.authService.getUser()); 1694 userDoc = yield userRef.valueChanges().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_2__.take)(1)).toPromise(); 1695 } 1696 let key = userDoc.key; 1697 if (typeof key === 'undefined' || !key) { 1698 yield this.changeKey(); 1699 key = (yield userRef.valueChanges().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_2__.take)(1)).toPromise()).key; 1700 } 1701 link += key; 1702 return link; 1703 }); 1704 } 1705 /** 1706 * Verifies if the provided key matches the key for the provided user in the database. 1707 * Used to verify a correct link before allowing a user to sign someone else's Virtrolio. 1708 * @param uid - The user ID of the user to check the key against. Usually the **recipient** of the message. 1709 * @param key - The key provided by the sender to verify. Should be obtained from the provided 'key' query parameter 1710 * in the URL. 1711 * @returns - A promise evaluating to true if the key is correct, false if the key is incorrect. 1712 * @throws Error - If either argument is blank, null or undefined. 1713 * @throws ReferenceError - if the UID does not exist or the user is logged out. 1714 */ 1715 checkKey(uid, key) { 1716 return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__awaiter)(this, void 0, void 0, function* () { 1717 if (typeof uid === 'undefined' || !uid) { 1718 throw new Error('Argument UID was not provided'); 1719 } 1720 else if (typeof key === 'undefined' || !key) { 1721 throw new Error('Argument Key was not provided'); 1722 } 1723 yield this.authService.asyncThrowErrorIfLoggedOut('verify the key that you provided'); 1724 return this.authService.userExists(uid).then((userExists) => (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__awaiter)(this, void 0, void 0, function* () { 1725 if (userExists) { 1726 const userRef = this.afs 1727 .collection('users') 1728 .doc(uid); 1729 const userDoc = yield userRef.valueChanges().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_2__.take)(1)).toPromise(); 1730 return key === userDoc.key; 1731 } 1732 else { 1733 throw new ReferenceError("User does not exist in the 'users' database"); 1734 } 1735 })); 1736 }); 1737 } 1738 /** 1739 * Replaces the current user's key with a new and randomly generated key. 1740 * No parameters are expected because only the key of the currently logged in user can be changed. 1741 * Assumes that the user is logged in (components using this method should be protected using AuthGuard) 1742 * @throws ReferenceError - If the user is not logged in 1743 */ 1744 changeKey() { 1745 return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__awaiter)(this, void 0, void 0, function* () { 1746 yield this.authService.asyncThrowErrorIfLoggedOut('change your key'); 1747 const user = this.authService.uid(); 1748 const userRef = this.afs 1749 .collection('users') 1750 .doc(user); 1751 const userDoc = yield userRef.valueChanges().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_2__.take)(1)).toPromise(); 1752 if (!('key' in userDoc)) { 1753 // This triggers if the key doesn't exist 1754 return userRef.update({ key: _auth_service__WEBPACK_IMPORTED_MODULE_0__.AuthService.generateKey() }); 1755 } 1756 else { 1757 // If the key does exist, need to make sure the new key is unique 1758 const oldKey = userDoc.key; 1759 let newKey = _auth_service__WEBPACK_IMPORTED_MODULE_0__.AuthService.generateKey(); 1760 while (oldKey === newKey) { 1761 newKey = _auth_service__WEBPACK_IMPORTED_MODULE_0__.AuthService.generateKey(); 1762 } 1763 return userRef.update({ key: newKey }); 1764 } 1765 }); 1766 } 1767} 1768SharingLinkService.ɵfac = function SharingLinkService_Factory(t) { return new (t || SharingLinkService)(_angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵinject"](_auth_service__WEBPACK_IMPORTED_MODULE_0__.AuthService), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵinject"](_angular_fire_firestore__WEBPACK_IMPORTED_MODULE_4__.AngularFirestore)); }; 1769SharingLinkService.ɵprov = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdefineInjectable"]({ token: SharingLinkService, factory: SharingLinkService.ɵfac, providedIn: 'root' }); 1770 1771 1772/***/ }), 1773 1774/***/ 49001: 1775/*!***************************************!*\ 1776 !*** ./src/app/core/signing.guard.ts ***! 1777 \***************************************/ 1778/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1779 1780"use strict"; 1781__webpack_require__.r(__webpack_exports__); 1782/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1783/* harmony export */ "SigningGuard": function() { return /* binding */ SigningGuard; } 1784/* harmony export */ }); 1785/* harmony import */ var _common_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common.service */ 80150); 1786/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 37716); 1787/* harmony import */ var _auth_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./auth.service */ 87341); 1788/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/router */ 39895); 1789/* harmony import */ var _msg_io_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./msg-io.service */ 84468); 1790/* harmony import */ var _sharing_link_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./sharing-link.service */ 84157); 1791 1792 1793 1794 1795 1796 1797/** 1798 * AuthGuard on all /signing pages. Redirects to /signing-auth-redirect if not signed in, redirect to /invalid-link 1799 * if invalid uid or key. 1800 * 1801 * @param uid - extracted from url manually using RegEx 1802 * @param key - extracted from url manually using RegEx 1803 * 1804 */ 1805class SigningGuard { 1806 constructor(authService, route, router, msgIOService, sharingLinkService) { 1807 this.authService = authService; 1808 this.route = route; 1809 this.router = router; 1810 this.msgIOService = msgIOService; 1811 this.sharingLinkService = sharingLinkService; 1812 this.maintenance = false; 1813 } 1814 // noinspection JSUnusedLocalSymbols 1815 canActivate(next, state) { 1816 if (this.maintenance) { 1817 this.router 1818 .navigate(['/maintenance']) 1819 .catch((e) => _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(e)); 1820 return false; 1821 } 1822 else { 1823 // Regex Extraction of 'uid' and 'key' params 1824 try { 1825 const linkStr = window.location.href; 1826 SigningGuard.uid = linkStr.match(/uid=([^&]*)/)[1]; 1827 SigningGuard.key = linkStr.match(/key=([^&]*)/)[1]; 1828 } 1829 catch (error) { 1830 // Displaying alert is not necessary since an error is only thrown when one of the query params is 1831 // missing/invalid = invalid link 1832 this.router 1833 .navigate(['/invalid-link']) 1834 .catch((error) => _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(error)); 1835 } 1836 // User must be signed in 1837 return this.authService.asyncIsLoggedIn().then((isLoggedIn) => { 1838 if (!isLoggedIn) { 1839 this.router 1840 .navigate(['/signing-auth-redirect'], { 1841 queryParams: { 1842 uid: SigningGuard.uid, 1843 key: SigningGuard.key, 1844 }, 1845 }) 1846 .catch((e) => _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(e)); 1847 return false; 1848 } 1849 else { 1850 // Sender must not have previously signed the recipient's virtrolio 1851 return this.sharingLinkService 1852 .checkKey(SigningGuard.uid, SigningGuard.key) 1853 .then((validKey) => { 1854 if (validKey === false) { 1855 this.router 1856 .navigate(['/invalid-link']) 1857 .catch((error) => _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(error)); 1858 return false; 1859 } 1860 this.msgIOService 1861 .checkForMessage(SigningGuard.uid) 1862 .then((signed) => { 1863 if (signed) { 1864 this.router 1865 .navigate(['/rejecc']) 1866 .catch((error) => _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(error)); 1867 return false; 1868 } 1869 else { 1870 return true; 1871 } 1872 }) 1873 .catch((error) => { 1874 // Only possibilities for a Firebase error getting thrown: 1875 // 1. Not logged in 1876 // 2. Requested message was NOT sent by current user (impossible based on logic of checkMessage() 1877 // unless someone modifies the source code) 1878 _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(error); 1879 this.router 1880 .navigate(['/signing-auth-redirect'], { 1881 queryParams: { 1882 uid: SigningGuard.uid, 1883 key: SigningGuard.key, 1884 }, 1885 }) 1886 .catch((navError) => _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(navError)); 1887 }); 1888 return true; 1889 }) 1890 .catch((error) => { 1891 _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(error); 1892 this.router 1893 .navigate(['/invalid-link']) 1894 .catch((e) => _common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(e)); 1895 return false; 1896 }); 1897 } 1898 }); 1899 } 1900 } 1901}
1902SigningGuard.uid = 'invalid'; 1903SigningGuard.key = 'invalid'; 1904SigningGuard.ɵfac = function SigningGuard_Factory(t) { return new (t || SigningGuard)(_angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵinject"](_auth_service__WEBPACK_IMPORTED_MODULE_1__.AuthService), _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵinject"](_angular_router__WEBPACK_IMPORTED_MODULE_5__.ActivatedRoute), _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵinject"](_angular_router__WEBPACK_IMPORTED_MODULE_5__.Router), _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵinject"](_msg_io_service__WEBPACK_IMPORTED_MODULE_2__.MsgIoService), _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵinject"](_sharing_link_service__WEBPACK_IMPORTED_MODULE_3__.SharingLinkService)); }; 1905SigningGuard.ɵprov = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdefineInjectable"]({ token: SigningGuard, factory: SigningGuard.ɵfac, providedIn: 'root' }); 1906 1907 1908/***/ }), 1909 1910/***/ 89214: 1911/*!*****************************************!*\ 1912 !*** ./src/app/core/signing.service.ts ***! 1913 \*****************************************/ 1914/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1915 1916"use strict"; 1917__webpack_require__.r(__webpack_exports__); 1918/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1919/* harmony export */ "SigningService": function() { return /* binding */ SigningService; } 1920/* harmony export */ }); 1921/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 37716); 1922/* harmony import */ var _msg_io_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./msg-io.service */ 84468); 1923/* harmony import */ var _font_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./font.service */ 87181); 1924/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 1925 1926 1927 1928 1929 1930class SigningService { 1931 constructor(sanitizer) { 1932 this.sanitizer = sanitizer; 1933 this.fontDict = _font_service__WEBPACK_IMPORTED_MODULE_1__.FontService.FONTS; 1934 this.maxCharCount = _msg_io_service__WEBPACK_IMPORTED_MODULE_0__.MsgIoService.MAX_MSG_LENGTH; 1935 } 1936 /** 1937 * Sets all class variables to their default values 1938 */ 1939 resetDefaultValues() { 1940 this.signingBoxText = ''; 1941 this.sanitizedText = ''; 1942 this.backgroundColor = '#ffffff'; 1943 this.textColor = '#000000'; 1944 this.canSend = false; 1945 this.charCount = 0; 1946 this.charCountColor = '#bbbbbb'; 1947 this.currentFont = 'Arial'; 1948 this.currentFontFamily = 'Arial, sans-serif'; 1949 this.currentFontDisplay = 'Arial'; 1950 this.images = []; 1951 this.imageURLs = []; 1952 } 1953 /** 1954 * @param font - Font selected from dropdown menu 1955 */ 1956 selectFont(font) { 1957 this.currentFont = font; 1958 this.currentFontFamily = font + ',' + this.fontDict[font].backupFont; 1959 this.currentFontDisplay = this.fontDict[font].fontFamily; 1960 } 1961 /** 1962 * Adds markdown formatting characters around selected text within textbox. 1963 * @param textbox - textbox in which user types. 1964 * @param formatChars - formatting character(s) to be placed around the selected text 1965 * @param endChars - Optional - The ending character, if different from the starting character 1966 */ 1967 addFormatting(textbox, formatChars, endChars) { 1968 const start = textbox.selectionStart; 1969 const end = textbox.selectionEnd; 1970 const text = textbox.value; 1971 const scrollPos = textbox.scrollTop; 1972 // If the end character was not provided, we assume it will be the same as the start character 1973 if (typeof endChars === 'undefined' || !endChars) { 1974 endChars = formatChars; 1975 } 1976 textbox.value = this.signingBoxText = 1977 text.slice(0, start) + 1978 formatChars + 1979 text.slice(start, end) + 1980 endChars + 1981 text.slice(end); 1982 // timeout so that it sets the selection range AFTER the textbox is modified 1983 setTimeout(() => { 1984 textbox.focus(); 1985 textbox.scrollTop = scrollPos; 1986 // special case for underline or if no text was highlighted 1987 // underline should always be on the outside (since it's html instead of markdown) 1988 if (formatChars === '<u>' || start === end) { 1989 textbox.setSelectionRange(start + formatChars.length, end + formatChars.length); 1990 } 1991 // otherwise keep the text highlighted 1992 else { 1993 textbox.setSelectionRange(start, end + formatChars.length + endChars.length); 1994 } 1995 }, 0); 1996 } 1997 /** 1998 * Update character count value and text colour 1999 * @param textbox - textbox in which user types. 2000 */ 2001 updateCount(textbox) { 2002 this.sanitizedText = this.sanitizer.sanitize(_angular_core__WEBPACK_IMPORTED_MODULE_2__.SecurityContext.HTML, this.signingBoxText); 2003 this.charCount = this.sanitizedText.length; 2004 this.charCountColor = 2005 this.charCount >
2005 this.maxCharCount ? '#EE1111' : '#b0b0b0'; 2006 this.canSend = 0 < this.charCount && this.charCount <= this.maxCharCount; 2007 } 2008} 2009SigningService.ɵfac = function SigningService_Factory(t) { return new (t || SigningService)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵinject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__.DomSanitizer)); }; 2010SigningService.ɵprov = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjectable"]({ token: SigningService, factory: SigningService.ɵfac, providedIn: 'root' }); 2011 2012 2013/***/ }), 2014 2015/***/ 66498: 2016/*!*****************************************!*\ 2017 !*** ./src/app/core/storage.service.ts ***! 2018 \*****************************************/ 2019/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 2020 2021"use strict"; 2022__webpack_require__.r(__webpack_exports__); 2023/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2024/* harmony export */ "StorageService": function() { return /* binding */ StorageService; } 2025/* harmony export */ }); 2026/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ 64762); 2027/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uuid */ 61319); 2028/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 37716); 2029/* harmony import */ var _angular_fire_storage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/fire/storage */ 68274); 2030 2031 2032 2033 2034class StorageService { 2035 constructor(storageService) { 2036 this.storageService = storageService; 2037 } 2038 static getFileExtension(file) { 2039 return file.name.split('.').pop(); 2040 } 2041 static generatePath(messageId, extension) { 2042 return `${StorageService.MESSAGE_IMG_BASE_PATH}/${messageId}/${(0,uuid__WEBPACK_IMPORTED_MODULE_0__.default)()}.${extension}`; 2043 } 2044 uploadImages(messageId, images) { 2045 return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__awaiter)(this, void 0, void 0, function* () { 2046 if (images.length === 0) { 2047 return []; 2048 } 2049 return Promise.all(images.map((imageFile) => (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__awaiter)(this, void 0, void 0, function* () { 2050 const extension = StorageService.getFileExtension(imageFile); 2051 const targetPath = StorageService.generatePath(messageId, extension); 2052 const targetStorageRef = this.storageService.ref(targetPath); 2053 const uploadTask = targetStorageRef.put(imageFile); 2054 // Wait for the upload to complete 2055 yield uploadTask.snapshotChanges().toPromise(); 2056 // Return the path 2057 return targetPath; 2058 }))); 2059 }); 2060 } 2061 /** 2062 * Delete all files in the folder provided. 2063 * 2064 * @param folderPath - The folder to delete. 2065 */ 2066 deleteFiles(folderPath) { 2067 return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__awaiter)(this, void 0, void 0, function* () { 2068 this.storageService 2069 .ref(folderPath) 2070 .listAll() 2071 .toPromise() 2072 .then((res) => res.items.forEach((file) => file.delete())); 2073 }); 2074 } 2075} 2076StorageService.MESSAGE_IMG_BASE_PATH = 'messages'; 2077StorageService.ɵfac = function StorageService_Factory(t) { return new (t || StorageService)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵinject"](_angular_fire_storage__WEBPACK_IMPORTED_MODULE_3__.AngularFireStorage)); }; 2078StorageService.ɵprov = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjectable"]({ token: StorageService, factory: StorageService.ɵfac, providedIn: 'root' }); 2079 2080 2081/***/ }), 2082 2083/***/ 91225: 2084/*!*****************************************!*\ 2085 !*** ./src/app/core/viewing.service.ts ***! 2086 \*****************************************/ 2087/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 2088 2089"use strict"; 2090__webpack_require__.r(__webpack_exports__); 2091/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2092/* harmony export */ "ViewingService": function() { return /* binding */ ViewingService; }
2093/* harmony export */ }); 2094/* harmony import */ var _font_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./font.service */ 87181); 2095/* harmony import */ var _common_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common.service */ 80150); 2096/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 37716); 2097/* harmony import */ var _msg_io_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./msg-io.service */ 84468); 2098/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/router */ 39895); 2099/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/common */ 38583); 2100/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ngx-toastr */ 49344); 2101 2102 2103 2104 2105 2106 2107 2108class ViewingService { 2109 /** 2110 * Retrieve message data from database 2111 */ 2112 constructor(msgIo, route, router, vps, toastr) { 2113 this.msgIo = msgIo; 2114 this.route = route; 2115 this.router = router; 2116 this.vps = vps; 2117 this.toastr = toastr; 2118 this.isCarouselView = false; 2119 this.fonts = _font_service__WEBPACK_IMPORTED_MODULE_0__.FontService.FONTS; 2120 } 2121 getMessageById(id) { 2122 this.msgIo.getMessage(id).subscribe((message) => { 2123 this.singleMessage = message; 2124 }); 2125 } 2126 decodeHtml(html) { 2127 const txt = document.createElement('textarea'); 2128 txt.innerHTML = html; 2129 return txt.value; 2130 } 2131 /** 2132 * Format the timestamp depending on how much time as elapsed 2133 * @param nowMillis time in milliseconds upon ngOnInit() 2134 * @param millis message Timestamp in milliseconds 2135 * @param date message Timestamp as a date 2136 */ 2137 timeSince(nowMillis, millis, date) { 2138 const secondsPast = (nowMillis - millis) / 1000; 2139 if (secondsPast < 1) { 2140 return 'Just now'; 2141 } 2142 if (secondsPast < 60) { 2143 return Math.round(secondsPast).toString() + 's ago'; 2144 } 2145 if (secondsPast < 3600) { 2146 return Math.round(secondsPast / 60).toString() + 'm ago'; 2147 } 2148 if (secondsPast < 86400) { 2149 return Math.round(secondsPast / 3600).toString() + 'h ago'; 2150 } 2151 if (secondsPast <= 172800) { 2152 return '1 day ago'; 2153 } 2154 if (secondsPast <= 604800) { 2155 return Math.round(secondsPast / 86400).toString() + ' days ago'; 2156 } 2157 if (secondsPast > 604800) { 2158 // Return the full date if the Timestamp is past a week ago 2159 return date; 2160 } 2161 } 2162 /** 2163 * Format the timestamp depending on how much time as elapsed 2164 * @param date message Timestamp as a date 2165 */ 2166 getDateSent(date) { 2167 return date; 2168 } 2169 /** 2170 * When you click 'x' on a message, messageToDelete will be assigned the value of that message's id 2171 * @param mID message id 2172 */ 2173 setMessageToDelete(mID) { 2174 this.messageToDelete = mID; 2175 } 2176 /** 2177 * Wrapper around deleteMessage() 2178 */ 2179 deleteMessage() { 2180 this.msgIo 2181 .deleteMessage(this.messageToDelete) 2182 .then(() => { 2183 this.toastr.success('Message deleted successfully', 'Poof!', { 2184 positionClass: 'toast-bottom-full-width', 2185 }); 2186 }) 2187 .catch((e) => { 2188 _common_service__WEBPACK_IMPORTED_MODULE_1__.CommonService.displayError(e); 2189 }); 2190 } 2191 /** 2192 * Append messageId query params to the url 2193 * @param id messageId 2194 */ 2195 bookmarkMessage(id) { } 2196} 2197ViewingService.ɵfac = function ViewingService_Factory(t) { return new (t || ViewingService)(_angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵinject"](_msg_io_service__WEBPACK_IMPORTED_MODULE_2__.MsgIoService), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵinject"](_angular_router__WEBPACK_IMPORTED_MODULE_4__.ActivatedRoute), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵinject"](_angular_router__WEBPACK_IMPORTED_MODULE_4__.Router), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵinject"](_angular_common__WEBPACK_IMPORTED_MODULE_5__.Vie
2197wportScroller), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵinject"](ngx_toastr__WEBPACK_IMPORTED_MODULE_6__.ToastrService)); }; 2198ViewingService.ɵprov = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdefineInjectable"]({ token: ViewingService, factory: ViewingService.ɵfac, providedIn: 'root' }); 2199 2200 2201/***/ }), 2202 2203/***/ 73794: 2204/*!************************************************!*\ 2205 !*** ./src/app/pages/about/about.component.ts ***! 2206 \************************************************/ 2207/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 2208 2209"use strict"; 2210__webpack_require__.r(__webpack_exports__); 2211/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2212/* harmony export */ "AboutComponent": function() { return /* binding */ AboutComponent; } 2213/* harmony export */ }); 2214/* harmony import */ var _contributors_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./contributors.json */ 53679); 2215/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 37716); 2216/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 2217/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ 39895); 2218/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common */ 38583); 2219 2220 2221 2222 2223 2224function AboutComponent_div_39_div_14_Template(rf, ctx) { if (rf & 1) { 2225 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div"); 2226 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](1, " GitHub: "); 2227 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](2, "a", 24); 2228 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](3); 2229 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2230 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2231} if (rf & 2) { 2232 const contributor_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"]().$implicit; 2233 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); 2234 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpropertyInterpolate1"]("href", "https://github.com/", contributor_r1.social.github, "", _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsanitizeUrl"]); 2235 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 2236 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate"](contributor_r1.social.github); 2237} } 2238function AboutComponent_div_39_div_15_a_2_Template(rf, ctx) { if (rf & 1) { 2239 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "a", 24); 2240 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](1); 2241 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2242} if (rf & 2) { 2243 const contributor_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](2).$implicit; 2244 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpropertyInterpolate1"]("href", "https://www.instagram.com/", contributor_r1.social.instagram, "", _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsanitizeUrl"]); 2245 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 2246 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"]("@", contributor_r1.social.instagram, ""); 2247} } 2248function AboutComponent_div_39_div_15_Template(rf, ctx) { if (rf & 1) { 2249 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div"); 2250 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](1, " Instagram: "); 2251 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](2, AboutComponent_div_39_div_15_a_2_Template, 2, 2, "a", 27); 2252 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2253} if (rf & 2) { 2254 const contributor_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"]().$implicit; 2255 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); 2256 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", contributor_r1.social.instagram); 2257} } 2258function AboutComponent_div_39_div_16_Template(rf, ctx) { if (rf & 1) { 2259 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div"); 2260 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](1, " LinkedIn: "); 2261 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](2, "a", 24); 2262 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](3); 2263 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2264 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2265} if (rf & 2) { 2266 const contributor_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"]().$implicit; 2267 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); 2268 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpropertyInterpolate"]("href", contributor_r1.social.linkedIn, _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsanitizeUrl"]); 2269 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 2270 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate"](contributor_r1.name); 2271} } 2272function AboutComponent_div_39_div_17_Template(rf, ctx) { if (rf & 1) { 2273 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div"); 2274 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](1, " Website: "); 2275 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](2, "a", 24); 2276 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](3); 2277 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2278 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2279} if (rf & 2) { 2280 const contributor_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"]().$implicit; 2281 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); 2282 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpropertyInterpolate1"]("href", "https://", contributor_r1.social.website, "", _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsanitizeUrl"]); 2283 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 2284 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate"](contributor_r1.social.website); 2285} } 2286function AboutComponent_div_39_Template(rf, ctx) { if (rf & 1) { 2287 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div"); 2288 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](1, "div", 18); 2289 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](2, "div", 19); 2290 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](3, "img", 20); 2291 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](4, "img", 21); 2292 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2293 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](5, "div", 22); 2294 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](6, "p", 23); 2295 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](7, "p", 5); 2296 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](8, "a", 24); 2297 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](9); 2298 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2299 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2300 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2301 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](10, "div", 25); 2302 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](11, "p"); 2303 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](12, "strong"); 2304 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](13); 2305 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2306 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2307 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](14, AboutComponent_div_39_div_14_Template, 4, 2, "div", 26); 2308 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](15, AboutComponent_div_39_div_15_Template, 3, 1, "div", 26); 2309 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](16, AboutComponent_div_39_div_16_Template, 4, 2, "div", 26); 2310 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](17, AboutComponent_div_39_div_17_Template, 4, 2, "div", 26); 2311 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2312 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2313 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](18, "hr"); 2314 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2315} if (rf & 2) { 2316 const contributor_r1 = ctx.$implicit; 2317 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](3); 2318 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpropertyInterpolate1"]("alt", "Picture of ", contributor_r1.name, ""); 2319 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpropertyInterpolate"]("src", contributor_r1.images.regular, _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsanitizeUrl"]); 2320 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 2321 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpropertyInterpolate1"]("alt", "Silly picture of ", contributor_r1.name, ""); 2322 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpropertyInterpolate"]("src", contributor_r1.images.silly, _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsanitizeUrl"]); 2323 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); 2324 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("innerHTML", contributor_r1.blurb, _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsanitizeHtml"]); 2325 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); 2326 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpropertyInterpolate"]("href", contributor_r1.sharingLink, _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsanitizeUrl"]); 2327 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 2328 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"]("Click here to sign ", contributor_r1.name, "'s virtrolio."); 2329 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](4); 2330 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"]("Contact ", contributor_r1.name, ""); 2331 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 2332 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", contributor_r1.social.github); 2333 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 2334 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", contributor_r1.social.instagram); 2335 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 2336 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", contributor_r1.social.linkedIn); 2337 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 2338 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", contributor_r1.social.website); 2339} } 2340/** 2341 * About component, with a short blurb at the top and a row for each contributor. 2342 */ 2343class AboutComponent { 2344 constructor(title) { 2345 this.title = title; 2346 this.contributors = _contributors_json__WEBPACK_IMPORTED_MODULE_0__; 2347 } 2348 ngOnInit() { 2349 this.title.setTitle('About Us | Virtrolio'); 2350 } 2351} 2352AboutComponent.ɵfac = function AboutComponent_Factory(t) { return new (t || AboutComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__.Title)); }; 2353AboutComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: AboutComponent, selectors: [["app-about"]], decls: 40, vars: 1, consts: [[1, "pt-5", "container"], [1, "about-us-section"], [1, "row"], [1, "col-12", "col-lg-8"], [1, "mb-3", "header-text"], [1, "about-us-body"], ["routerLink", "/contact"], ["href", "https://bit.ly/virtrolioYouT00b", "target", "_blank"], ["href", "/signing?uid=6sXs48Uwj3ZSPX7JUPsuvdosfRm1&key=VirtrolioTeam"], [1, "col-4", "d-none", "d-lg-block"], [1, "vertical-center", "about-us-img-container"], ["alt", "About us illustration", "src", "../../../assets/images/about.svg", 1, "about-us-img"], [1, "row", "mt-3", "mt-lg-5"], [1, "vertical-center", "about-us-img-container", "p-5"], ["alt", "About us illustration", "src", "../../../assets/images/charity.svg", 1, "about-us-img"], ["href", "https://www.who.int/emergencie
2353s/diseases/novel-coronavirus-2019/donate", "target", "_blank"], [1, "col-12"], [4, "ngFor", "ngForOf"], [1, "row", "d-flex", "my-2"], [1, "col-md-2", "order-md-2", "image-container", "vertical-center"], [1, "img-fluid", "regular-picture", 3, "alt", "src"], [1, "img-fluid", "silly-picture", 3, "alt", "src"], [1, "col-md-7", "order-md-3", "mt-3", "mt-md-0", "vertical-center"], [1, "text-justify", "about-us-body", 3, "innerHTML"], ["target", "_blank", 3, "href"], [1, "col-md-3", "order-md-1"], [4, "ngIf"], ["target", "_blank", 3, "href", 4, "ngIf"]], template: function AboutComponent_Template(rf, ctx) { if (rf & 1) { 2354 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 0); 2355 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](1, "div", 1); 2356 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](2, "div", 2); 2357 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](3, "div", 3); 2358 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](4, "h1", 4); 2359 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](5, "About us"); 2360 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2361 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](6, "p", 5); 2362 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](7, " We\u2019re a group of undergraduate university students who remember exactly what it was like back in high school (at The Woodlands Secondary School, to be exact, woot woot), and we especially remember what those last few months of senior year meant to many of us. With the COVID-19 pandemic leading to lockdowns and social distancing, we wanted to create an alternative way for graduating students (and others!) to be able to send each other messages in a medium that they can cherish with them as they continue on in their journeys. "); 2363 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](8, "br"); 2364 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](9, "br"); 2365 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](10, " Want to get in touch with us? Visit the "); 2366 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](11, "a", 6); 2367 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](12, "Contact Us"); 2368 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2369 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](13, " page or check out our "); 2370 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](14, "a", 7); 2371 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](15, "YouTube channel"); 2372 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2373 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](16, ". You can also sign the team's virtrolio by "); 2374 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](17, "a", 8); 2375 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](18, " clicking here"); 2376 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2377 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](19, ". "); 2378 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2379 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2380 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](20, "div", 9); 2381 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](21, "div", 10); 2382 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](22, "img", 11); 2383 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2384 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2385 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2386 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](23, "div", 12); 2387 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](24, "div", 9); 2388 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](25, "div", 13); 2389 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](26, "img", 14); 2390 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2391 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2392 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](27, "div", 3); 2393 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](28, "h3", 4); 2394 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](29, "Charity"); 2395 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2396 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](30, "p", 5); 2397 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](31, " COVID-19 has affected people around the world and it has created problems far more pressing than an absence of yearbook signing. With this in mind, Virtrolio has decided to donate 5 cents for each of the first 2000 Virtrolio accounts created between June 15th, 2021 and June 29th, 2021 to the "); 2398 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](32, "a", 15); 2399 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](33, "COVID-19 Solidarity Response Fund"); 2400 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2401 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](34, ". We personally guarantee that we will pay the full amount for the first 2000 accounts created in this period and if funds are available, we will try to match this amount for the next 1000 accounts. Thank y
2401ou for your support. "); 2402 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2403 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2404 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2405 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](35, "div", 12); 2406 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](36, "div", 16); 2407 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](37, "h3", 4); 2408 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](38, "Meet the Team!"); 2409 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2410 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](39, AboutComponent_div_39_Template, 19, 12, "div", 17); 2411 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2412 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2413 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2414 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2415 } if (rf & 2) { 2416 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](39); 2417 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngForOf", ctx.contributors); 2418 } }, directives: [_angular_router__WEBPACK_IMPORTED_MODULE_3__.RouterLinkWithHref, _angular_common__WEBPACK_IMPORTED_MODULE_4__.NgForOf, _angular_common__WEBPACK_IMPORTED_MODULE_4__.NgIf], styles: ["#title[_ngcontent-%COMP%] {\n text-align: center;\n font-size: 5em;\n}\n\n#title-blurb[_ngcontent-%COMP%] {\n border-left: 3px solid var(--accent);\n padding-left: 2em;\n}\n\n\n\n@media only screen and (max-width: 768px) {\n #title-blurb[_ngcontent-%COMP%] {\n border-left: none;\n padding-left: 0;\n }\n}\n\n#meet-the-team-title[_ngcontent-%COMP%] {\n text-align: center;\n}\n\n.jumbotron[_ngcontent-%COMP%] {\n padding-top: 2em;\n padding-bottom: 0;\n}\n\n.regular-picture[_ngcontent-%COMP%]:hover {\n opacity: 0;\n}\n\n.regular-picture[_ngcontent-%COMP%] {\n z-index: 0;\n width: 100%;\n}\n\n.silly-picture[_ngcontent-%COMP%] {\n position: absolute;\n z-index: -1;\n width: 100%;\n}\n\n.image-container[_ngcontent-%COMP%] {\n padding: 0;\n overflow: hidden;\n}\n\n.image-container[_ngcontent-%COMP%], .image-container[_ngcontent-%COMP%] > img[_ngcontent-%COMP%] {\n overflow: hidden !important;\n}\n\nul[_ngcontent-%COMP%] {\n word-break: break-word;\n}\n\n#special[_ngcontent-%COMP%] {\n flex-direction: row !important;\n}\n\n.about-us-img[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.about-us-img-container[_ngcontent-%COMP%] {\n height: 100%;\n}\n\n.about-us-body[_ngcontent-%COMP%] {\n font-family: 'Roboto', sans-serif;\n font-size: 1em;\n text-align: justify;\n}\n\n.contact-list[_ngcontent-%COMP%] {\n list-style-type: none;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFib3V0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCOztBQUVyQjtFQUNFLGtCQUFrQjtFQUNsQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usb0NBQW9DO0VBQ3BDLGlCQUFpQjtBQUNuQjs7QUFFQSxXQUFXOztBQUNYO0VBQ0U7SUFDRSxpQkFBaUI7SUFDakIsZUFBZTtFQUNqQjtBQUNGOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLFVBQVU7QUFDWjs7QUFFQTtFQUNFLFVBQVU7
2418RUFDVixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFVBQVU7RUFDVixnQkFBZ0I7QUFDbEI7O0FBRUE7O0VBRUUsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0Usc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsOEJBQThCO0FBQ2hDOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsaUNBQWlDO0VBQ2pDLGNBQWM7RUFDZCxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxxQkFBcUI7QUFDdkIiLCJmaWxlIjoiYWJvdXQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHx8IFRpdGxlIGNvbnRlbnQgKi9cblxuI3RpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDVlbTtcbn1cblxuI3RpdGxlLWJsdXJiIHtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1hY2NlbnQpO1xuICBwYWRkaW5nLWxlZnQ6IDJlbTtcbn1cblxuLyogTW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICN0aXRsZS1ibHVyYiB7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG59XG5cbiNtZWV0LXRoZS10ZWFtLXRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uanVtYm90cm9uIHtcbiAgcGFkZGluZy10b3A6IDJlbTtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5yZWd1bGFyLXBpY3R1cmU6aG92ZXIge1xuICBvcGFjaXR5OiAwO1xufVxuXG4ucmVndWxhci1waWN0dXJlIHtcbiAgei1pbmRleDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5zaWxseS1waWN0dXJlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAtMTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5pbWFnZS1jb250YWluZXIge1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uaW1hZ2UtY29udGFpbmVyLFxuLmltYWdlLWNvbnRhaW5lciA+IGltZyB7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxudWwge1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4jc3BlY2lhbCB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbn1cblxuLmFib3V0LXVzLWltZyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYWJvdXQtdXMtaW1nLWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmFib3V0LXVzLWJvZHkge1xuICBmb250LWZhbWlseTogJ1JvYm90bycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xufVxuXG4uY29udGFjdC1saXN0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuIl19 */"] }); 2419 2420 2421/***/ }), 2422 2423/***/ 40970: 2424/*!**************************************************************************!*\ 2425 !*** ./src/app/pages/access-denied-beta/access-denied-beta.component.ts ***! 2426 \**************************************************************************/ 2427/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 2428 2429"use strict"; 2430__webpack_require__.r(__webpack_exports__); 2431/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2432/* harmony export */ "AccessDeniedBetaComponent": function() { return /* binding */ AccessDeniedBetaComponent; } 2433/* harmony export */ }); 2434/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 37716); 2435/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 2436/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ 39895); 2437 2438 2439 2440class AccessDeniedBetaComponent { 2441 constructor(title) { 2442 this.title = title; 2443 } 2444 ngOnInit() { 2445 this.title.setTitle('Beta Website Access Denied | Virtrolio'); 2446 } 2447} 2448AccessDeniedBetaComponent.ɵfac = function AccessDeniedBetaComponent_Factory(t) { return new (t || AccessDeniedBetaComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__.Title)); }; 2449AccessDeniedBetaComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: AccessDeniedBetaComponent, selectors: [["app-access-denied-beta"]], decls: 25, vars: 0, consts: [[1, "container", "vertical-center", "montserrat", "align-items-center"], [1, "row", "mx-3", "mt-3"], [1, "display-text"], [1, "row", "mx-3", "col-md-7", "justify-content-center"], [1, "display-body-text"], ["href", "https://virtrolio.web.app"], [1, "row", "justify-content-center", "mx-3", "mt-3"], ["alt", "Padlock graphic", "id", "graphic", "src", "../../../assets/images/AccessDenied.svg"], [1, "row", "justify-content-center", "mt-5", "mb-3"], ["role", "button", "href", "https://virtrolio.web.app", 1, "btn", "btn-lg", "btn-primary", "mt-3", "mx-3"], ["routerLink", "", 1, "btn", "btn-lg", "btn-secondary", "mt-3"]], template: function AccessDeniedBetaComponent_Template(rf, ctx) { if (rf & 1) { 2450 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); 2451 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 1); 2452 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "h1", 2); 2453 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](3, "Access Denied - Not a Beta Tester"); 2454 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2455 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2456 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "div", 3); 2457 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](5, "p", 4); 2458 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](6, " Oops! You tried to login to the beta website, but you aren't a beta tester! "); 2459 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2460 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](7, "p", 4); 2461 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](8, "strong"); 2462 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](9, "If you are not a beta tester, please "); 2463 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](10, "a", 5); 2464 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](11, " click here"); 2465 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2466 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](12, " to use the public website."); 2467 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2468 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2469 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](13, "p", 4); 2470 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](14, " If you "); 2471 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](15, "strong"); 2472 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](16, "are"); 2473 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2474 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](17, " a beta tester and are seeing this message, please follow the instructions in the #instructions channel in the Beta Tester Discord to gain access. Message a Software Developer if you continue to experience problems. "); 2475 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2476 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2477 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](18, "div", 6); 2478 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](19, "img", 7);
2479 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2480 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](20, "div", 8); 2481 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](21, "a", 9); 2482 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](22, "Go to the Public Website"); 2483 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2484 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](23, "button", 10); 2485 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](24, " Back to Beta Website "); 2486 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2487 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2488 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2489 } }, directives: [_angular_router__WEBPACK_IMPORTED_MODULE_2__.RouterLink], styles: ["#graphic[_ngcontent-%COMP%] {\n height: 10em;\n}\n\n#title-text[_ngcontent-%COMP%] {\n font-size: 2.5em;\n text-align: center;\n}\n\n.subtitle-text[_ngcontent-%COMP%] {\n font-size: large;\n text-align: center;\n}\n\n\n\n@media only screen and (max-width: 768px) {\n #graphic[_ngcontent-%COMP%] {\n height: 5em;\n }\n\n #title-text[_ngcontent-%COMP%] {\n font-size: 2em;\n }\n\n #subtitle-text[_ngcontent-%COMP%] {\n font-size: 1em;\n }\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY2Vzcy1kZW5pZWQtYmV0YS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEI7O0FBRUEsV0FBVzs7QUFDWDtFQUNFO0lBQ0UsV0FBVztFQUNiOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7QUFDRiIsImZpbGUiOiJhY2Nlc3MtZGVuaWVkLWJldGEuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNncmFwaGljIHtcbiAgaGVpZ2h0OiAxMGVtO1xufVxuXG4jdGl0bGUtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMi41ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnN1YnRpdGxlLXRleHQge1xuICBmb250LXNpemU6IGxhcmdlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIE1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAjZ3JhcGhpYyB7XG4gICAgaGVpZ2h0OiA1ZW07XG4gIH1cblxuICAjdGl0bGUtdGV4dCB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gIH1cblxuICAjc3VidGl0bGUtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gIH1cbn1cbiJdfQ== */"] }); 2490 2491 2492/***/ }), 2493 2494/***/ 91452: 2495/*!****************************************************************!*\ 2496 !*** ./src/app/pages/access-denied/access-denied.component.ts ***! 2497 \****************************************************************/ 2498/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 2499 2500"use strict"; 2501__webpack_require__.r(__webpack_exports__); 2502/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2503/* harmony export */ "AccessDeniedComponent": function() { return /* binding */ AccessDeniedComponent; } 2504/* harmony export */ }); 2505/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 37716); 2506/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 2507/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ 39895); 2508 2509 2510 2511class AccessDeniedComponent { 2512 constructor(title) { 2513 this.title = title; 2514 } 2515 ngOnInit() { 2516 this.title.setTitle('Access Denied | Virtrolio'); 2517 } 2518} 2519AccessDeniedComponent.ɵfac = function AccessDeniedComponent_Factory(t) { return new (t || AccessDeniedComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__.Title)); }; 2520AccessDeniedComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: AccessDeniedComponent, selectors: [["app-access-denied"]], decls: 17, vars: 0, consts: [[1, "container", "vertical-center", "montserrat", "align-items-center"], [1, "row", "mx-3", "mt-3"], [1, "display-text"], [1, "row", "mx-3", "col-md-7"], [1, "display-body-text"], ["routerLink", "/"], [1, "row", "justify-content-center", "mx-3", "mt-3"], ["alt", "Padlock graphic", "id", "graphic", "src", "../../../assets/images/AccessDenied.svg"], [1, "row", "justify-content-center", "my-3"], ["routerLink", "", 1, "btn-lg", "btn-primary", "mt-5"]], template: function AccessDeniedComponent_Template(rf, ctx) { if (rf & 1) { 2521 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); 2522 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 1); 2523 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "h1", 2); 2524 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](3, "Access Denied"); 2525 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2526 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2527 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "div", 3); 2528 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](5, "p", 4); 2529 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](6, " You may be trying to access a page you need to be logged in for! Please go to our "); 2530 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](7, "a", 5); 2531 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](8, "home page"); 2532 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2533 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](9, " and sign in from there. "); 2534 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2535 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](10, "p", 4); 2536 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](11, " If you are signed in and you are still seeing this message, then you may be trying to access a web page that you shouldn't be allowed to visit whenever you want. Sorry! "); 2537 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2538 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2539 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](12, "div", 6); 2540 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](13, "img", 7);
2541 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2542 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](14, "div", 8); 2543 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](15, "button", 9); 2544 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](16, "Back to Home"); 2545 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2546 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2547 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2548 } }, directives: [_angular_router__WEBPACK_IMPORTED_MODULE_2__.RouterLinkWithHref, _angular_router__WEBPACK_IMPORTED_MODULE_2__.RouterLink], styles: ["#graphic[_ngcontent-%COMP%] {\n height: 10em;\n}\n\n#title-text[_ngcontent-%COMP%] {\n font-size: 2.5em;\n text-align: center;\n}\n\n.subtitle-text[_ngcontent-%COMP%] {\n font-size: large;\n text-align: center;\n}\n\n\n\n@media only screen and (max-width: 768px) {\n #graphic[_ngcontent-%COMP%] {\n height: 5em;\n }\n\n #title-text[_ngcontent-%COMP%] {\n font-size: 2em;\n }\n\n #subtitle-text[_ngcontent-%COMP%] {\n font-size: 1em;\n }\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY2Vzcy1kZW5pZWQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCOztBQUVBLFdBQVc7O0FBQ1g7RUFDRTtJQUNFLFdBQVc7RUFDYjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCO0FBQ0YiLCJmaWxlIjoiYWNjZXNzLWRlbmllZC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI2dyYXBoaWMge1xuICBoZWlnaHQ6IDEwZW07XG59XG5cbiN0aXRsZS10ZXh0IHtcbiAgZm9udC1zaXplOiAyLjVlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc3VidGl0bGUtdGV4dCB7XG4gIGZvbnQtc2l6ZTogbGFyZ2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogTW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICNncmFwaGljIHtcbiAgICBoZWlnaHQ6IDVlbTtcbiAgfVxuXG4gICN0aXRsZS10ZXh0IHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgfVxuXG4gICNzdWJ0aXRsZS10ZXh0IHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgfVxufVxuIl19 */"] }); 2549 2550 2551/***/ }), 2552 2553/***/ 45996: 2554/*!****************************************************!*\ 2555 !*** ./src/app/pages/contact/contact.component.ts ***! 2556 \****************************************************/ 2557/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 2558 2559"use strict"; 2560__webpack_require__.r(__webpack_exports__); 2561/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2562/* harmony export */ "ContactComponent": function() { return /* binding */ ContactComponent; } 2563/* harmony export */ }); 2564/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 37716); 2565/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 2566 2567 2568class ContactComponent { 2569 constructor(title) { 2570 this.title = title; 2571 } 2572 ngOnInit() { 2573 this.title.setTitle('Contact Us | Virtrolio'); 2574 } 2575} 2576ContactComponent.ɵfac = function ContactComponent_Factory(t) { return new (t || ContactComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__.Title)); }; 2577ContactComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: ContactComponent, selectors: [["app-contact"]], decls: 37, vars: 0, consts: [[1, "pt-5", "container"], [1, "mb-3", "header-text"], [1, "row", "body-text"], [1, "col-12", "col-lg-6"], ["href", "https://github.com/virtrolio/virtrolio-site/issues/new", "target", "_blank"], ["href", "mailto:[email protected]", "target", "_blank"], ["href", "https://www.facebook.com/virtrolio/", "target", "_blank"], ["href", "https://www.instagram.com/virtrolio/", "target", "_blank"], ["href", "https://github.com/virtrolio/virtrolio-site", "target", "_blank"], [1, "col-lg-6", "order-2", "py-5", "py-lg-0"], ["id", "graphic-container justify-content-center"], ["alt", "pink cloud graphic", "id", "graphic", "src", "../../../assets/images/ContactUs.svg"]], template: function ContactComponent_Template(rf, ctx) { if (rf & 1) { 2578 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); 2579 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "h1", 1); 2580 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2, "Contact Us"); 2581 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2582 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](3, "br"); 2583 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "div", 2); 2584 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](5, "div", 3); 2585 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "p"); 2586 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](7, "strong"); 2587 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](8, "Got a question, comment, suggestion or concern?"); 2588 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2589 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](9, "br"); 2590 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](10, "a", 4); 2591 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](11, "Open an issue on our GitHub"); 2592 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2593 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](12, " or email us at "); 2594 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](13, "a", 5); 2595 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](14, "[email protected]"); 2596 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2597 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](15, ". "); 2598 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2599 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](16, "p"); 2600 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](17, "strong"); 2601 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](18, "Looking for our social media?"); 2602 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2603 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](19, "br"); 2604 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](20, " You're welcome to visit and contact us through our "); 2605 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](21, "a", 6); 2606 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](22, " Facebook"); 2607 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2608 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](23, " and "); 2609 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](24, "a", 7); 2610 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](25, "Instagram"); 2611 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2612 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](26, " pages. "); 2613 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2614 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](27, "p"); 2615 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](28, "strong"); 2616 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](29, "Want to contribute to our project?"); 2617 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2618 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](30, "br"); 2619 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](31, "a", 8); 2620 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](32, "Open a pull request"); 2621 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2622 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](33, " on our repository. "); 2623 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2624 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2625 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](34, "div", 9); 2626 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](35, "div", 10); 2627 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](36, "img", 11); 2628 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2629 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2630 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2631 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 2632 } }, styles: ["#graphic[_ngcontent-%COMP%] {\n height: 12em;\n margin-left: auto;\n margin-right: auto;\n width: 100%;\n}\n\n#graphic-container[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n#title[_ngcontent-%COMP%] {\n text-align: center;\n font-size: 4em;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbnRhY3QuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixjQUFjO0FBQ2hCIiwiZmlsZSI6ImNvbnRhY3QuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNncmFwaGljIHtcbiAgaGVpZ2h0OiAxMmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbn1cblxuI2dyYXBoaWMtY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbiN0aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiA0ZW07XG59XG4iXX0= */"] }); 2633 2634 2635/***/ }), 2636 2637/***/ 16459: 2638/*!********************************************!*\ 2639 !*** ./src/app/pages/faq/faq.component.ts ***! 2640 \********************************************/ 2641/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 2642 2643"use strict"; 2644__webpack_require__.r(__webpack_exports__); 2645/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2646/* harmony export */ "FaqComponent": function() { return /* binding */ FaqComponent; } 2647/* harmony export */ }); 2648/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 37716); 2649/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 2650/* harmony import */ var _core_common_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/common.service */ 80150); 2651/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common */ 38583); 2652/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/router */ 39895); 2653 2654 2655 2656 2657 2658function FaqComponent_div_4_div_3_Template(rf, ctx) { if (rf & 1) { 2659 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 8); 2660 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](1, "div", 9); 2661 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](2, "h2", 10); 2662 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](3, "button", 11); 2663 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](4); 2664 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2665 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2666 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2667 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](5, "div", 12); 2668 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](6, "div", 13); 2669 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2670 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2671} if (rf & 2) { 2672 const question_r4 = ctx.$implicit; 2673 const q_r5 = ctx.index; 2674 const s_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"]().index; 2675 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 2676 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpropertyInterpolate2"]("id", "question", s_r2, "-", q_r5, ""); 2677 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); 2678 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵattribute"]("aria-controls", "answer" + s_r2 + "-" + q_r5)("data-target", "#answer" + s_r2 + "-" + q_r5); 2679 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 2680 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"](" ", question_r4.question, " "); 2681 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 2682 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpropertyInterpolate2"]("id", "answer", s_r2, "-", q_r5, ""); 2683 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵattribute"]("data-parent", "#section-header" + s_r2); 2684 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 2685 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("innerHTML", question_r4.answer, _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsanitizeHtml"]); 2686} } 2687function FaqComponent_div_4_Template(rf, ctx) { if (rf & 1) { 2688 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 5); 2689 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](1, "h2", 6); 2690 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](2); 2691 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2692 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](3, FaqComponent_div_4_div_3_Template, 7, 9, "div", 7);
2693 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2694} if (rf & 2) { 2695 const section_r1 = ctx.$implicit; 2696 const s_r2 = ctx.index; 2697 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpropertyInterpolate1"]("id", "section-header", s_r2, ""); 2698 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); 2699 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate"](section_r1.sectionTitle); 2700 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 2701 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngForOf", section_r1.questions); 2702} } 2703class FaqComponent { 2704 constructor(title, commonService) { 2705 this.title = title; 2706 this.commonService = commonService; 2707 this.commonService 2708 .parseYAMLFromFile('./assets/data/faq.content.yml') 2709 .then((data) => (this.faqContent = data)); 2710 } 2711 ngOnInit() { 2712 this.title.setTitle('Frequently Asked Questions | Virtrolio'); 2713 } 2714} 2715FaqComponent.ɵfac = function FaqComponent_Factory(t) { return new (t || FaqComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__.Title), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService)); }; 2716FaqComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: FaqComponent, selectors: [["app-faq"]], decls: 12, vars: 1, consts: [[1, "pt-5", "container"], [1, "mb-3", "header-text"], ["class", "accordion mb-5", 3, "id", 4, "ngFor", "ngForOf"], [1, "justify-content-center", "vertical-center", "py-4"], ["routerLink", "/contact"], [1, "accordion", "mb-5", 3, "id"], [1, "subheader-text"], ["class", "card", 4, "ngFor", "ngForOf"], [1, "card"], [1, "card-header", 3, "id"], [1, "mb-0"], ["aria-expanded", "false", "data-toggle", "collapse", "type", "button", 1, "btn", "btn-link"], ["aria-labelledby", "question", 1, "collapse", 3, "id"], [1, "card-body", "card-align", 3, "innerHTML"]], template: function FaqComponent_Template(rf, ctx) { if (rf & 1) { 2717 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 0); 2718 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](1, "h1", 1); 2719 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](2, "Frequently Asked Questions"); 2720 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2721 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](3, "br"); 2722 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](4, FaqComponent_div_4_Template, 4, 3, "div", 2); 2723 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](5, "hr"); 2724 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](6, "div", 3); 2725 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](7, "p"); 2726 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](8, " Didn't find what you were looking for? Send us your question with the "); 2727 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](9, "a", 4); 2728 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](10, "Contact Us"); 2729 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2730 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](11, " page! "); 2731 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2732 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2733 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 2734 } if (rf & 2) { 2735 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](4); 2736 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngForOf", ctx.faqContent); 2737 } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_3__.NgForOf, _angular_router__WEBPACK_IMPORTED_MODULE_4__.RouterLinkWithHref], styles: [".card-align[_ngcontent-%COMP%] {\n padding: 1.25rem 2rem;\n}\n\n#title[_ngcontent-%COMP%] {\n text-align: center;\n font-size: 4em;\n margin-top: 2em;\n}\n\n#bottom-text[_ngcontent-%COMP%] {\n text-align: center;\n}\n\n.btn-link[_ngcontent-%COMP%] {\n text-align: left;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZhcS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxlQUFlO0FBQ2pCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCIiwi
2737ZmlsZSI6ImZhcS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNhcmQtYWxpZ24ge1xuICBwYWRkaW5nOiAxLjI1cmVtIDJyZW07XG59XG5cbiN0aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiA0ZW07XG4gIG1hcmdpbi10b3A6IDJlbTtcbn1cblxuI2JvdHRvbS10ZXh0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYnRuLWxpbmsge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuIl19 */"] }); 2738 2739 2740/***/ }), 2741 2742/***/ 25245: 2743/*!**********************************************!*\ 2744 !*** ./src/app/pages/home/home.component.ts ***! 2745 \**********************************************/ 2746/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 2747 2748"use strict"; 2749__webpack_require__.r(__webpack_exports__); 2750/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2751/* harmony export */ "HomeComponent": function() { return /* binding */ HomeComponent; } 2752/* harmony export */ }); 2753/* harmony import */ var aos__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! aos */ 68096); 2754/* harmony import */ var aos__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(aos__WEBPACK_IMPORTED_MODULE_0__); 2755/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 37716); 2756/* harmony import */ var _core_auth_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/auth.service */ 87341); 2757/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 2758/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common */ 38583); 2759/* harmony import */ var ngx_markdown__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ngx-markdown */ 76715); 2760/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/router */ 39895); 2761 2762 2763 2764 2765 2766 2767 2768function HomeComponent_div_1_Template(rf, ctx) { if (rf & 1) { 2769 const _r10 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); 2770 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 45); 2771 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](1, "img", 46); 2772 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](2, "div", 47); 2773 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](3, "h1", 48); 2774 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](4, " Stay connected. "); 2775 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2776 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](5, "h1", 49); 2777 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](6, " Even when you're apart. "); 2778 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2779 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](7, "img", 50); 2780 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("click", function HomeComponent_div_1_Template_img_click_7_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r10); const ctx_r9 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); return ctx_r9.onClickChevron(); }); 2781 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2782 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2783 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2784} } 2785function HomeComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) { 2786 const _r12 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); 2787 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 45); 2788 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](1, "div", 47); 2789 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](2, "h1", 51); 2790 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](3, " Stay connected. "); 2791 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2792 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](4, "h1", 52); 2793 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](5, "Even when you're apart."); 2794 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2795 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](6, "img", 53); 2796 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("click", function HomeComponent_ng_template_2_Template_img_click_6_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r12); const ctx_r11 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); return ctx_r11.onClickChevron(); }); 2797 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2798 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2799 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2800} } 2801function HomeComponent_div_16_Template(rf, ctx) { if (rf & 1) { 2802 const _r14 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); 2803 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div"); 2804 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](1, "p", 54); 2805 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](2, " Sign in below to create your own virtrolio! "); 2806 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2807 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](3, "div", 55); 2808 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](4, "button", 56); 2809 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("click", function HomeComponent_div_16_Template_button_click_4_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r14); const ctx_r13 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); return ctx_r13.authService.login("/my-virtrolio"); }); 2810 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](5, "img", 57); 2811 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](6, "span"); 2812 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](7, "Sign in with Google"); 2813 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2814 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2815 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2816 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](8, "div", 58); 2817 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](9, "p", 59); 2818 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](10, " By signing up for/signing into our service, you are agreeing to our "); 2819 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](11, "a", 60); 2820 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](12, "Terms of Service."); 2821 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2822 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2823 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](13, "p", 61); 2824 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](14, " At this time, we do not support signing in using providers other than Google. "); 2825 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2826 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2827 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2828} } 2829function HomeComponent_ng_template_17_Template(rf, ctx) { if (rf & 1) { 2830 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 62); 2831 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](1, "p", 63); 2832 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](2, " You're already signed in! Click the button to go to your virtrolio. "); 2833 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2834 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2835 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](3, "div", 64); 2836 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](4, "button", 65); 2837 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](5, " Go to my virtrolio "); 2838 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2839 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2840} } 2841function HomeComponent_div_98_Template(rf, ctx) { if (rf & 1) { 2842 const _r16 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); 2843 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div"); 2844 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](1, "div", 62); 2845 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](2, "h3", 66); 2846 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](3, " Ready to get signing? "); 2847 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2848 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](4, "p", 63); 2849 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](5, "Sign in and get your virtrolio!"); 2850 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2851 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2852 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](6, "div", 55); 2853 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](7, "button", 56); 2854 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("click", function HomeComponent_div_98_Template_button_click_7_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r16); const ctx_r15 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); return ctx_r15.authService.login("/my-virtrolio"); }); 2855 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](8, "img", 57); 2856 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](9, "span"); 2857 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](10, "Sign in with Google"); 2858 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2859 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2860 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2861 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2862} } 2863function HomeComponent_ng_template_99_Template(rf, ctx) { if (rf & 1) { 2864 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 62); 2865 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](1, "h3", 67); 2866 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](2, "You're all set!"); 2867 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2868 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2869 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](3, "div", 64); 2870 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](4, "button", 68); 2871 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](5, " Go to my virtrolio "); 2872 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2873 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2874} } 2875class HomeComponent { 2876 constructor(authService, title) { 2877 this.authService = authService; 2878 this.title = title; 2879 // Initialize Animate on Scroll library 2880 // In constructor instead of ngOnInit to avoid the page breaking when routerLinking to home 2881 aos__WEBPACK_IMPORTED_MODULE_0__.init();
2882 this.getScreenSize(); 2883 } 2884 /** 2885 * "Subscribes" to the window resize event to update current value of viewport height 2886 */ 2887 getScreenSize() { 2888 this.screenHeight = window.innerHeight; 2889 } 2890 ngOnInit() { 2891 this.title.setTitle("Virtrolio - Stay connected. Even when you're apart."); 2892 } 2893 /** 2894 * Scroll within page without linking to fragments 2895 */ 2896 onClickChevron() { 2897 document.getElementById('info').scrollIntoView({ behavior: 'smooth' }); 2898 } 2899} 2900HomeComponent.ɵfac = function HomeComponent_Factory(t) { return new (t || HomeComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_core_auth_service__WEBPACK_IMPORTED_MODULE_1__.AuthService), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__.Title)); }; 2901HomeComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ type: HomeComponent, selectors: [["app-home"]], hostBindings: function HomeComponent_HostBindings(rf, ctx) { if (rf & 1) { 2902 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("resize", function HomeComponent_resize_HostBindingHandler($event) { return ctx.getScreenSize($event); }, false, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresolveWindow"]); 2903 } }, decls: 101, vars: 6, consts: [[1, "container-fluid", "full-width", "home-background"], ["class", "container-fluid full-width vertical-center home-img-background", 4, "ngIf", "ngIfElse"], ["mobileLandscape", ""], ["id", "info"], [1, "pt-5", "vertical-center", "body-container"], [1, "d-flex", "justify-content-center"], ["data-aos", "zoom-in", "data-aos-duration", "1000", "data-aos-once", "true", 1, "col-12", "col-sm-12", "col-md-12", "col-lg-8", "col-xl-8"], [1, "mb-3", "px-5", "home-text", "header-text"], [1, "lead", "px-5", "home-text", "body-text"], ["id", "login-virtrolio-button", 1, "px-5"], [4, "ngIf", "ngIfElse"], ["MyVirtrolio", ""], ["id", "viewing-demo", 1, "full-width", "demo-section"], ["data-aos", "fade-left", "data-aos-duration", "2000", "data-aos-once", "true", 1, "full-width", "demo-image", "d-none", "d-md-block", "viewing-demo-image"], [1, "vertical-center", "mx-5", "px-5", "viewing-demo-text-container"], [1, "demo-title"], [1, "full-width", "demo-image", "d-block", "d-md-none", "viewing-demo-image"], [1, "py-4", "center-children", "vertical-center", "body-container"], [1, ""], [1, "col-12", "col-sm-12", "col-md-12", "col-lg-8", "col-xl-8"], [1, "row"], [1, "order-md-1", "col-12", "col-sm-12", "col-md-12", "col-lg-6", "col-xl-8", "px-5"], [1, "card", "mr-4", "mb-5", "rounded", "border-0"], [1, "body-header-text"], [1, "lead", "body-text"], ["href", "/privacy-policy"], [1, "lead", "home-text", "body-text"], [1, "card", "mr-4", "rounded", "border-0"], [2, "color", "#d1155a"], [2, "font-family", "'Indie Flower', sans-serif"], [1, "order-md-2", "col-lg-6", "col-xl-4", "mt-4", "d-none", "d-lg-block"], [1, "vertical-center", "card-container"], ["data-aos", "flip-left", "data-aos-duration", "2000", "data-aos-once", "true", 1, "card", "shadow"], [1, "card-header"], [1, "profile-pic-container-small", "mr-2"], ["alt", "profile-pic", "src", "../../../assets/images/logo_reg.png", 1, "profile-pic"], [1, "card-header-text"], ["emoji", "", 1, "card-body", "card-message"], ["id", "signing-demo", 1, "full-width", "demo-section"], ["data-aos", "fade-right", "data-aos-duration", "2000", "data-aos-once", "true", 1, "full-width", "demo-image", "d-none", "d-md-block", "signing-demo-image"], [1, "vertical-center", "mx-5", "px-5", "signing-demo-text-container"], [1, "full-width", "demo-image", "d-block", "d-md-none", "signing-demo-image"], [1, "py-1", "vertical-center", "body-container"], ["id", "login-virtrolio-button-bottom", 1, "px-5"], ["MyVirtrolioBottom", ""], [1, "container-fluid", "full-width", "vertical-center", "home-img-background"], ["alt", "Virtrolio Logo", "id", "bg-logo-img", "data-aos", "zoom-in-up", "data-aos-duration", "1500", "src", "../../../assets/images/logo_inverted-no-back.png", 1, "d-none", "d-xl-block"], [1, "title-container"], ["data-aos", "zoom-in", "data-aos-duration", "500", "data-aos-once", "true", "id", "title-header"], ["data-aos", "zoom-in", "data-aos-duration", "1000", "data-aos-once", "true", "id", "title-subtitle"], ["alt", "down", "height", "48", "id", "chevron", "src", "../../../assets/images/icons/chevron-down.svg", "width", "48", 3, "click"], ["data-aos", "zoom-in", "data-aos-duration", "500", "data-aos-once", "true", "id", "title-header-mobile-landscape"], ["id", "title-subtitle-mobile-landscape"], ["alt", "down", "height", "48", "id", "chevron-mobile-landscape", "src", "../../../assets/images/icons/chevron-down.svg", "width", "48", 3, "click"], ["id", "bolded-body-text", 1, "lead"], [1, "row", "d-flex", "justify-content-center", "mt-4"], ["type", "button", 1, "btn", "btn-outline-dark", "google-sign-in-btn", 3, "click"], ["alt", "Google Logo", "height", "23", "src", "../../../assets/images/icons/google.svg", "width", "23"], ["id", "disclaimer-text"], [1, "lead", "pt-4"], ["href", "/terms-of-service"], [1, "lead"], [1, "justify-content-center", "text-center", "pt-1"], [1, "lead", "pb-1"], [1, "d-flex", "justify-content-center", "pt-1"], ["id", "my-virtrolio", "routerLink", "/my-v
2903irtrolio", "type", "button", 1, "btn-lg", "btn-primary"], [1, "mb-1", "px-5", "home-text", "ready-text"], [1, "mb-1", "px-5", "home-text", "ready-text", "pb-4"], ["id", "my-virtrolio-bottom", "routerLink", "/my-virtrolio", "type", "button", 1, "btn-lg", "btn-primary"]], template: function HomeComponent_Template(rf, ctx) { if (rf & 1) { 2904 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 0); 2905 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, HomeComponent_div_1_Template, 8, 0, "div", 1); 2906 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](2, HomeComponent_ng_template_2_Template, 7, 0, "ng-template", null, 2, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplateRefExtractor"]); 2907 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2908 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](4, "a", 3); 2909 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](5, "div", 4); 2910 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](6, "div", 5); 2911 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](7, "div", 6); 2912 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](8, "h2", 7); 2913 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](9, "What is a virtrolio?"); 2914 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2915 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](10, "p", 8); 2916 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](11, " A "); 2917 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](12, "em"); 2918 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](13, "virtrolio"); 2919 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2920 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](14, " is a virtual folio\u2014an online version of those last few pages in your yearbook that you use to write personal and long-lasting messages to your friends. In other words, you can create your own virtrolio, share it with friends, and have them write customized messages for you to keep. Whenever you want, you can view your virtrolio and all the messages you have received from your friends! "); 2921 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2922 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](15, "div", 9); 2923 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](16, HomeComponent_div_16_Template, 15, 0, "div", 10); 2924 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](17, HomeComponent_ng_template_17_Template, 6, 0, "ng-template", null, 11, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplateRefExtractor"]); 2925 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2926 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2927 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2928 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2929 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](19, "div", 12); 2930 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](20, "div", 13); 2931 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](21, "div", 14); 2932 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](22, "h2", 15); 2933 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](23, "A virtual take on"); 2934 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2935 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](24, "h2", 15); 2936 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](25, "yearbook signing"); 2937 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2938 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2939 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2940 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](26, "div", 16); 2941 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](27, "div", 14); 2942 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](28, "h2", 15); 2943 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](29, "A virtual take\u00A0on"); 2944 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2945 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](30, "h2", 15); 2946 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](31, "yearbook signing"); 2947 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2948 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2949 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2950 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2951 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](32, "div", 17); 2952 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](33, "div", 18); 2953 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](34, "div", 19); 2954 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](35, "div", 20); 2955 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](36, "div", 21); 2956 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](37, "div", 22); 2957 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](38, "h3", 23); 2958 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](39, "Why use Virtrolio?"); 2959 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2960 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](40, "p", 24); 2961 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](41, " Using Virtrolio offers you an authentic yearbook signing experience, and that means "); 2962 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](42, "em"); 2963 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](43, "privacy"); 2964 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2965 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](44, ". You can only view virtrolio messages sent directly to you (see our "); 2966 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](45, "a", 25); 2967 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](4
29676, "Privacy Policy"); 2968 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2969 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](47, " for more details). "); 2970 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2971 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2972 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](48, "div", 22); 2973 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](49, "h3", 23); 2974 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](50, "How can I make a virtrolio?"); 2975 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2976 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](51, "p", 26); 2977 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](52, " It's easy to create a virtrolio! Sign in with your Google account and a custom virtrolio link will be generated for you. Share this link with your friends so they can sign your virtrolio. "); 2978 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2979 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2980 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](53, "div", 27); 2981 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](54, "h3", 23); 2982 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](55, " What does signing a virtrolio look like? "); 2983 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2984 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](56, "p", 26); 2985 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](57, " We offer you an array of message customization tools, including "); 2986 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](58, "span", 28); 2987 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](59, "colour pickers"); 2988 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2989 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](60, ", "); 2990 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](61, "span", 29); 2991 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](62, "b"); 2992 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](63, "fonts"); 2993 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2994 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2995 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](64, ", emojis \uD83D\uDE0D, and a markdown editor\u2014all so that you can truly express yourself. "); 2996 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2997 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2998 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 2999 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](65, "div", 30); 3000 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](66, "div", 31); 3001 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](67, "div", 32); 3002 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](68, "div", 33); 3003 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](69, "span", 34); 3004 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](70, "img", 35); 3005 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3006 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](71, "span", 36); 3007 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](72, "Mike H."); 3008 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3009 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3010 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](73, "markdown", 37); 3011 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](74, "University across the country, huh? I don't know what I'm going to do without you next year. I'll call you whenever I can. Until I see you again! :heart: "); 3012 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3013 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3014 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3015 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3016 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3017 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3018 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3019 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3020 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](75, "div", 38); 3021 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](76, "div", 39); 3022 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](77, "div", 40); 3023 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](78, "h2", 15); 3024 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](79, "Give your messages"); 3025 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3026 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](80, "h2", 15); 3027 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](81, "your "); 3028 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](82, "i"); 3029 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](83, "signature"); 3030 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3031 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](84, " touch"); 3032 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3033 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3034 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3035 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](85, "div", 41); 3036 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](86, "div", 40); 3037 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](87, "h2", 15); 3038 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](88, "Give your messages"); 3039 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3040 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](89, "h2", 15); 3041 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](90, "your "); 3042 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](91, "i"); 3043 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](92, "signature"); 3044 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3045 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](93, " touch"); 3046 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3047 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3048 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3049 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3050 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](94, "div", 42); 3051 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](95, "div", 5); 3052 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](96, "div", 6); 3053 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](97, "div", 43); 3054 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](98, HomeComponent_div_98_Template, 11, 0, "div", 10); 3055 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](99, HomeComponent_ng_template_99_Template, 6, 0, "ng-template", null, 44, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplateRefExtractor"]); 3056 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3057 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3058 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3059 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); 3060 } if (rf & 2) { 3061 const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](3); 3062 const _r4 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](18); 3063 const _r7 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](100); 3064 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); 3065 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", ctx.screenHeight > 420)("ngIfElse", _r1); 3066 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](15); 3067 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", !ctx.authService.isLoggedIn())("ngIfElse", _r4); 3068 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](82); 3069 _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", !ctx.authService.isLoggedIn())("ngIfElse", _r7); 3070 } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.NgIf, ngx_markdown__WEBPACK_IMPORTED_MODULE_5__.MarkdownComponent, _angular_router__WEBPACK_IMPORTED_MODULE_6__.RouterLink], styles: [".home-background[_ngcontent-%COMP%] {\n background: linear-gradient(\n 90deg,\n var(--navbar-left) 0%,\n var(--navbar-right) 100%\n );\n height: calc(100vh - var(--navbar-height));\n overflow: hidden;\n}\n\n\n\n#bg-logo-img[_ngcontent-%COMP%] {\n position: absolute;\n opacity: 0.25;\n right: 0;\n height: 50em;\n width: 50em;
3070\n}\n\n.title-container[_ngcontent-%COMP%] {\n font-family: 'Roboto', sans-serif;\n position: relative;\n padding-left: 10vw;\n}\n\n#title-header[_ngcontent-%COMP%] {\n font-size: 6em;\n color: white;\n}\n\n#title-subtitle[_ngcontent-%COMP%] {\n font-size: 2em;\n font-weight: 400;\n color: white;\n margin-top: 1em;\n}\n\n#title-header-mobile-landscape[_ngcontent-%COMP%] {\n font-size: 4em;\n color: white;\n}\n\n#title-subtitle-mobile-landscape[_ngcontent-%COMP%] {\n font-size: 1em;\n font-weight: 400;\n color: white;\n margin-top: 0.5em;\n}\n\n#chevron[_ngcontent-%COMP%] {\n margin-top: 2em;\n cursor: pointer;\n}\n\n#chevron-mobile-landscape[_ngcontent-%COMP%] {\n margin-top: 0;\n cursor: pointer;\n}\n\n.home-img-background[_ngcontent-%COMP%] {\n background: url('bg-curve.svg') no-repeat center bottom;\n background-size: 100%;\n height: calc(100vh - var(--navbar-height));\n overflow: hidden;\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.demo-section[_ngcontent-%COMP%] {\n height: 70vh;\n overflow: hidden;\n}\n\n.demo-image[_ngcontent-%COMP%] {\n overflow: hidden;\n position: relative;\n height: 100%;\n left: 0;\n right: 0;\n}\n\n.card-container[_ngcontent-%COMP%] {\n height: 100%;\n}\n\n#card-text[_ngcontent-%COMP%] {\n background: var(--accent);\n font-family: Roboto, sans-serif;\n color: white;\n}\n\n#viewing-demo[_ngcontent-%COMP%] {\n background: linear-gradient(\n 90deg,\n var(--navbar-left) 0%,\n var(--navbar-right) 100%\n );\n}\n\n#signing-demo[_ngcontent-%COMP%] {\n background: linear-gradient(129deg, #86d5d3, #a4e681, #edc556, #fa8072);\n background-size: 800% 800%;\n animation: SectionGradientAnimation 10s ease infinite;\n}\n\n.viewing-demo-image[_ngcontent-%COMP%] {\n background: url('viewing-demo.svg') no-repeat center;\n background-size: cover;\n}\n\n.signing-demo-image[_ngcontent-%COMP%] {\n background: url('signing-demo.svg') no-repeat center;\n background-size: cover;\n}\n\n.viewing-demo-text-container[_ngcontent-%COMP%] {\n font-family: 'Roboto', sans-serif;\n position: absolute;\n left: 0;\n text-align: left;\n height: 100%;\n}\n\n.signing-demo-text-container[_ngcontent-%COMP%] {\n font-family: 'Roboto', sans-serif;\n position: absolute;\n right: 0;\n text-align: right;\n height: 100%;\n}\n\n.demo-title[_ngcontent-%COMP%] {\n font-size: 3em;\n font-weight: 400;\n color: white;\n text-shadow: 0.1em 0.1em 0.2em rgba(0, 0, 0, 0.5);\n white-space: normal;\n}\n\n\n\n.body-container[_ngcontent-%COMP%] {\n margin: 5em 0;\n}\n\n#bolded-body-text[_ngcontent-%COMP%] {\n font-weight: 600;\n text-align: center;\n}\n\n#disclaimer-text[_ngcontent-%COMP%] > p[_ngcontent-%COMP%] {\n font-size: 1em;\n text-align: center;\n}\n\n.header-text[_ngcontent-%COMP%] {\n font-size: 3em;\n font-weight: bold;\n}\n\n.ready-text[_ngcontent-%COMP%] {\n font-size: 2em;\n font-weight: bold;\n text-align: center;\n}\n\n.body-header-text[_ngcontent-%COMP%] {\n font-size: 1.2em;\n}\n\n.body-text[_ngcontent-%COMP%] {\n font-family: 'Roboto', sans-serif;\n font-size: 1em;\n}\n\n#login-virtrolio-button[_ngcontent-%COMP%] {\n padding: 3em 0 3em 0;\n}\n\n.card-header-text[_ngcontent-%COMP%] {\n font-weight: bold;\n margin-top: 0.2em;\n}\n\n.card-header[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n}\n\n.card-message[_ngcontent-%COMP%] {\n background: var(--accent);\n padding: 3em;\n color: white;\n font-size: 1em;\n font-weight: bold;\n}\n\n.profile-pic-container-small[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0);\n height: 2em;\n width: 2em;\n border-radius: 100%;\n display: flex;\n}\n\n@media only screen and (max-width: 768px) {\n #title-header[_ngcontent-%COMP%] {\n font-size: 10vw;\n color: white;\n }\n\n #title-subtitle[_ngcontent-%COMP%] {\n font-size: 4vw;\n font-weight: 400;\n color: white;\n margin-top: 1em;\n line-height: 0;\n }\n\n .header-text[_ngcontent-%COMP%] {\n font-size: 2em;\n font-weight: bold;\n }\n\n .body-text[_ngcontent-%COMP%] {\n font-family: 'Roboto', sans-serif;\n font-size: 1em;\n }\n}\n\n\n\n[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 0.2em;\n}\n\n[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n opacity: 0;\n}\n\n[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: #efefef;\n opacity: 0.1;\n border-radius: 1em;\n}\n\n\n\n#btn-info[_ngcontent-%COMP%] {\n border-radius: 6em;\n background-color: var(--accent);\n color: #ffffff;\n}\n\n#btn-info[_ngcontent-%COMP%]:hover {\n background-color: var(--dark-accent);\n}\n\n\n\n#info[_ngcontent-%COMP%]::before {\n content: '';\n display: block;\n height: 50px;\n margin: -50px 0 0 0;\n}\n\n\n\n@keyframes SectionGradientAnimation {\n 0% {\n background-position: 0 0;\n }\n 50% {\n background-position: 93% 100%;\n }\n 100% {\n background-position: 0 0;\n }\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhvbWUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQkFBMkI7O0FBRTNCO0VBQ0U7Ozs7R0FJQztFQUNELDBDQUEwQztFQUMxQyxnQkFBZ0I7QUFDbEI7O0FBRUEsdUVBQXVFOztBQUN2RTtFQUNFLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2IsUUFBUTtFQUNSLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxpQ0FBaUM7RUFDakMsa0JBQWtCO0VBQ2xCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxZQUFZO0FBQ2Q7O0F
3070BRUE7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsY0FBYztFQUNkLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGNBQWM7RUFDZCxnQkFBZ0I7RUFDaEIsWUFBWTtFQUNaLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGVBQWU7RUFDZixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGVBQWU7QUFDakI7O0FBRUE7RUFDRSx1REFBOEU7RUFDOUUscUJBQXFCO0VBQ3JCLDBDQUEwQztFQUMxQyxnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLE9BQU87RUFDUCxRQUFRO0FBQ1Y7O0FBRUE7RUFDRSxZQUFZO0VBQ1osZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osT0FBTztFQUNQLFFBQVE7QUFDVjs7QUFFQTtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QiwrQkFBK0I7RUFDL0IsWUFBWTtBQUNkOztBQUVBO0VBQ0U7Ozs7R0FJQztBQUNIOztBQUVBO0VBQ0UsdUVBQXVFO0VBQ3ZFLDBCQUEwQjtFQUcxQixxREFBcUQ7QUFDdkQ7O0FBRUE7RUFDRSxvREFBMkU7RUFDM0Usc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0Usb0RBQTJFO0VBQzNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLGlDQUFpQztFQUNqQyxrQkFBa0I7RUFDbEIsT0FBTztFQUNQLGdCQUFnQjtFQUNoQixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxpQ0FBaUM7RUFDakMsa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixpQkFBaUI7RUFDakIsWUFBWTtBQUNkOztBQUVBO0VBQ0UsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osaURBQWlEO0VBQ2pELG1CQUFtQjtBQUNyQjs7QUFFQSxxQkFBcUI7O0FBRXJCO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxjQUFjO0VBQ2QsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxpQ0FBaUM7RUFDakMsY0FBYztBQUNoQjs7QUFFQTtFQUNFLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UseUJBQXlCO0VBQ3pCLFlBQVk7RUFDWixZQUFZO0VBQ1osY0FBYztFQUNkLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGtDQUFrQztFQUNsQyxXQUFXO0VBQ1gsVUFBVTtFQUNWLG1CQUFtQjtFQUNuQixhQUFhO0FBQ2Y7O0FBRUE7RUFDRTtJQUNFLGVBQWU7SUFDZixZQUFZO0VBQ2Q7O0VBRUE7SUFDRSxjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixlQUFlO0lBQ2YsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7SUFDZCxpQkFBaUI7RUFDbkI7O0VBRUE7SUFDRSxpQ0FBaUM7SUFDakMsY0FBYztFQUNoQjtBQUNGOztBQUVBLGtCQUFrQjs7QUFFbEI7RUFDRSxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxVQUFVO0FBQ1o7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsWUFBWTtFQUNaLGtCQUFrQjtBQUNwQjs7QUFFQSxxQkFBcUI7O0FBRXJCO0VBQ0Usa0JBQWtCO0VBQ2xCLCtCQUErQjtFQUMvQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usb0NBQW9DO0FBQ3RDOztBQUVBLGdDQUFnQzs7QUFDaEM7RUFDRSxXQUFXO0VBQ1gsY0FBYztFQUNkLFlBQVk7RUFDWixtQkFBbUI7QUFDckI7O0FBRUEsa0JBQWtCOztBQTBCbEI7RUFDRTtJQUNFLHdCQUF3QjtFQUMxQjtFQUNBO0lBQ0UsNkJBQTZCO0VBQy9CO0VBQ0E7SUFDRSx3QkFBd0I7RUFDMUI7QUFDRiIsImZpbGUiOiJob21lLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB8fCBGdWxsIFNjcmVlbiBMYW5kaW5nICovXG5cbi5ob21lLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgOTBkZWcsXG4gICAgdmFyKC0tbmF2YmFyLWxlZnQpIDAlLFxuICAgIHZhcigtLW5hdmJhci1yaWdodCkgMTAwJVxuICApO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1uYXZiYXItaGVpZ2h0KSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIExhcmdlIGxvZ28gaW4gdGhlIGJhY2tncm91bmQgZm9yIHdoZW4gdGhlcmUgaXMgbm8gaW1hZ2UgdG8gZmVhdHVyZSAqL1xuI2JnLWxvZ28taW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvcGFjaXR5OiAwLjI1O1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiA1MGVtO1xuICB3aWR0aDogNTBlbTtcbn1cblxuLnRpdGxlLWNvbnRhaW5lciB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgc2Fucy1zZXJpZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDEwdnc7XG59XG5cbiN0aXRsZS1oZWFkZXIge1xuICBmb250LXNpemU6IDZlbTtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4jdGl0bGUtc3VidGl0bGUge1xuICBmb250LXNpemU6IDJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG5cbiN0aXRsZS1oZWFkZXItbW9iaWxlLWxhbmRzY2FwZSB7XG4gIGZvbnQtc2l6ZTogNGVtO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbiN0aXRsZS1zdWJ0aXRsZS1tb2JpbGUtbGFuZHNjYXBlIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG5cbiNjaGV2cm9uIHtcbiAgbWFyZ2luLXRvcDogMmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiNjaGV2cm9uLW1vYmlsZS1sYW5kc2NhcGUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5ob21lLWltZy1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL2JnLWN1cnZlLnN2ZycpIG5vLXJlcGVhdCBjZW50ZXIgYm90dG9tO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLW5hdmJhci1oZWlnaHQpKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbn1cblxuLmRlbW8tc2VjdGlvbiB7XG4gIGhlaWdodDogNzB2aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRlbW8taW1hZ2Uge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG59XG5cbi5jYXJkLWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuI2NhcmQtdGV4dCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuI3ZpZXdpbmctZGVtbyB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICA5MGRlZyxcbiAgICB2YXIoLS1uYXZiYXItbGVmdCkgMCUsXG4gICAgdmFyKC0tbmF2YmFyLXJpZ2h0KSAxMDAlXG4gICk7XG59XG5cbiNzaWduaW5nLWRlbW8ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTI5ZGVnLCAjODZkNWQzLCAjYTRlNjgxLCAjZWRjNTU2LCAjZmE4MDcyKTtcbiAgYmFja2dyb3VuZC1zaXplOiA4MDAlIDgwMCU7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBTZWN0aW9uR3JhZGllbnRBbmltYXRpb24gMTBzIGVhc2UgaW5maW5pdGU7XG4gIC1tb3otYW5pbWF0aW9uOiBTZWN0aW9uR3JhZGllbnRBbmltYXRpb24gMTBzIGVhc2UgaW5maW5pdGU7XG4gIGFuaW1hdGlvbjogU2VjdGlvbkdyYWRpZW50QW5pbWF0aW9uIDEwcyBlYXNlIGluZmluaXRlO1xufVxuXG4udmlld2luZy1kZW1vLWltYWdlIHtcbiAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL3ZpZXdpbmctZGVtby5zdmcnKSBuby1yZXBlYXQgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuXG4uc2lnbmluZy1kZW1vLWltYWdlIHtcbiAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL3NpZ25pbmctZGVtby5zdmcnKSBuby1yZXBlYXQgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuXG4udmlld2luZy1kZW1vLXRleHQtY29udGFpbmVyIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBzYW5zLXNlcmlmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnNpZ25pbmctZGVtby10ZXh0LWNvbnRhaW5lciB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgc2Fucy1zZXJpZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmRlbW8tdGl0bGUge1xuICBmb250LXNpemU6IDNlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDt
3070cbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LXNoYWRvdzogMC4xZW0gMC4xZW0gMC4yZW0gcmdiYSgwLCAwLCAwLCAwLjUpO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG4vKiB8fCBCb2R5LVNwZWNpZmljICovXG5cbi5ib2R5LWNvbnRhaW5lciB7XG4gIG1hcmdpbjogNWVtIDA7XG59XG5cbiNib2xkZWQtYm9keS10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4jZGlzY2xhaW1lci10ZXh0ID4gcCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5oZWFkZXItdGV4dCB7XG4gIGZvbnQtc2l6ZTogM2VtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnJlYWR5LXRleHQge1xuICBmb250LXNpemU6IDJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmJvZHktaGVhZGVyLXRleHQge1xuICBmb250LXNpemU6IDEuMmVtO1xufVxuXG4uYm9keS10ZXh0IHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuI2xvZ2luLXZpcnRyb2xpby1idXR0b24ge1xuICBwYWRkaW5nOiAzZW0gMCAzZW0gMDtcbn1cblxuLmNhcmQtaGVhZGVyLXRleHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLXRvcDogMC4yZW07XG59XG5cbi5jYXJkLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG5cbi5jYXJkLW1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQpO1xuICBwYWRkaW5nOiAzZW07XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ucHJvZmlsZS1waWMtY29udGFpbmVyLXNtYWxsIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgaGVpZ2h0OiAyZW07XG4gIHdpZHRoOiAyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI3RpdGxlLWhlYWRlciB7XG4gICAgZm9udC1zaXplOiAxMHZ3O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gICN0aXRsZS1zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiA0dnc7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICB9XG5cbiAgLmhlYWRlci10ZXh0IHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIC5ib2R5LXRleHQge1xuICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgfVxufVxuXG4vKiB8fCBTY3JvbGxiYXJzICovXG5cbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMC4yZW07XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBvcGFjaXR5OiAwO1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogI2VmZWZlZjtcbiAgb3BhY2l0eTogMC4xO1xuICBib3JkZXItcmFkaXVzOiAxZW07XG59XG5cbi8qIHx8IE1pc2NlbGxhbmVvdXMgKi9cblxuI2J0bi1pbmZvIHtcbiAgYm9yZGVyLXJhZGl1czogNmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuI2J0bi1pbmZvOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFyay1hY2NlbnQpO1xufVxuXG4vKiBmcmFnbWVudCBwYWRkaW5nIGZvciBoZWFkZXIgKi9cbiNpbmZvOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogNTBweDtcbiAgbWFyZ2luOiAtNTBweCAwIDAgMDtcbn1cblxuLyogfHwgQW5pbWF0aW9ucyAqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgU2VjdGlvbkdyYWRpZW50QW5pbWF0aW9uIHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDkzJSAxMDAlO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgfVxufVxuXG5ALW1vei1rZXlmcmFtZXMgU2VjdGlvbkdyYWRpZW50QW5pbWF0aW9uIHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDkzJSAxMDAlO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIFNlY3Rpb25HcmFkaWVudEFuaW1hdGlvbiB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gIH1cbiAgNTAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5MyUgMTAwJTtcbiAgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gIH1cbn1cbiJdfQ== */"] }); 3071 3072 3073/***/ }), 3074 3075/***/ 84892: 3076/*!**************************************************************!*\ 3077 !*** ./src/app/pages/invalid-link/invalid-link.component.ts ***! 3078 \**************************************************************/ 3079/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3080 3081"use strict"; 3082__webpack_require__.r(__webpack_exports__); 3083/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3084/* harmony export */ "InvalidLinkComponent": function() { return /* binding */ InvalidLinkComponent; } 3085/* harmony export */ }); 3086/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 37716); 3087/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 3088/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ 39895); 3089 3090 3091 3092class InvalidLinkComponent { 3093 constructor(title) { 3094 this.title = title; 3095 } 3096 ngOnInit() { 3097 this.title.setTitle("Invalid Sharing Link | Virtrolio - Stay connected. Even when you're apart."); 3098 } 3099}
3100InvalidLinkComponent.ɵfac = function InvalidLinkComponent_Factory(t) { return new (t || InvalidLinkComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__.Title)); }; 3101InvalidLinkComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: InvalidLinkComponent, selectors: [["app-invalid-link"]], decls: 17, vars: 0, consts: [[1, "container", "vertical-center", "montserrat"], [1, "row", "justify-content-center", "mx-3", "mt-3"], [1, "display-text"], [1, "row", "justify-content-center", "mx-3"], [1, "display-body-text"], ["alt", "Invalid link image", "id", "graphic", "src", "../../../assets/images/InvalidLink.svg"], [1, "row", "justify-content-center", "my-3"], ["routerLink", "", 1, "btn-lg", "btn-primary", "mt-5"]], template: function InvalidLinkComponent_Template(rf, ctx) { if (rf & 1) { 3102 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); 3103 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 1); 3104 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "h1", 2); 3105 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](3, "This sharing link is invalid!"); 3106 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3107 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3108 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "div", 3); 3109 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](5, "p", 4); 3110 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](6, " You are trying to access a sharing link that never existed or doesn't work anymore."); 3111 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](7, "br"); 3112 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](8, "If you're trying to sign your friend's virtrolio, make sure to ask for their "); 3113 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](9, "em"); 3114 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](10, "newest"); 3115 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3116 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](11, " sharing link. "); 3117 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3118 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3119 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](12, "div", 1); 3120 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](13, "img", 5); 3121 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3122 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](14, "div", 6); 3123 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](15, "button", 7); 3124 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](16, "Back to Home"); 3125 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3126 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3127 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3128 } }, directives: [_angular_router__WEBPACK_IMPORTED_MODULE_2__.RouterLink], styles: ["#graphic[_ngcontent-%COMP%] {\n height: 10em;\n}\n\n#title-text[_ngcontent-%COMP%] {\n font-size: 2.5em;\n text-align: center;\n}\n\n#subtitle-text[_ngcontent-%COMP%] {\n font-size: large;\n text-align: center;\n}\n\n\n\n@media only screen and (max-width: 768px) {\n #graphic[_ngcontent-%COMP%] {\n height: 5em;\n }\n\n #title-text[_ngcontent-%COMP%] {\n font-size: 2em;\n }\n\n #subtitle-text[_ngcontent-%COMP%] {\n font-size: 1em;\n }\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImludmFsaWQtbGluay5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEI7O0FBRUEsV0FBVzs7QUFDWDtFQUNFO0lBQ0UsV0FBVztFQUNiOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7QUFDRiIsImZpbGUiOiJpbnZhbGlkLWxpbmsuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNncmFwaGljIHtcbiAgaGVpZ2h0OiAxMGVtO1xufVxuXG4jdGl0bGUtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMi41ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuI3N1YnRpdGxlLXRleHQge1xuICBmb250LXNpemU6IGxhcmdlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIE1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAjZ3JhcGhpYyB7XG4gICAgaGVpZ2h0OiA1ZW07XG4gIH1cblxuICAjdGl0bGUtdGV4dCB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gIH1cblxuICAjc3VidGl0bGUtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gIH1cbn1cbiJdfQ== */"] }); 3129 3130 3131/***/ }), 3132 3133/***/ 20479: 3134/*!************************************************************!*\ 3135 !*** ./src/app/pages/maintenance/maintenance.component.ts ***! 3136 \************************************************************/ 3137/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3138 3139"use strict"; 3140__webpack_require__.r(__webpack_exports__); 3141/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3142/* harmony export */ "MaintenanceComponent": function() { return /* binding */ MaintenanceComponent; } 3143/* harmony export */ }); 3144/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 37716); 3145/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 3146/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ 39895); 3147 3148 3149 3150class MaintenanceComponent { 3151 constructor(title) { 3152 this.title = title; 3153 } 3154 ngOnInit() { 3155 this.title.setTitle('Under Maintenance - Try again later! | Virtrolio'); 3156 } 3157} 3158MaintenanceComponent.ɵfac = function MaintenanceComponent_Factory(t) { return new (t || MaintenanceComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__.Title)); }; 3159MaintenanceComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: MaintenanceComponent, selectors: [["app-maintenance"]], decls: 18, vars: 0, consts: [[1, "container", "vertical-center", "montserrat", "align-items-center"], [1, "row", "justify-content-center", "col-md-6", "m-2"], [1, "display-text"], ["id", "maintenance-subheading", 1, "display-body-text"], ["routerLink", "/my-v
3159irtrolio"], [1, "display-body-text"], [1, "row", "justify-content-center", "mx-3", "mt-3"], ["src", "../../../assets/images/Maintenance.svg", "alt", "Under construction image", "id", "graphic"], [1, "row", "justify-content-center", "m-2"], ["routerLink", "/my-virtrolio", 1, "btn-lg", "btn-primary", "mt-5", "mb-2", "mx-3"], ["routerLink", "/", 1, "btn-lg", "btn-primary", "mt-5", "mb-2", "mx-3"]], template: function MaintenanceComponent_Template(rf, ctx) { if (rf & 1) { 3160 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); 3161 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 1); 3162 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "h1", 2); 3163 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](3, "Our website is currently under maintenance."); 3164 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3165 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "p", 3); 3166 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](5, " While you can view "); 3167 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "a", 4); 3168 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](7, "your virtrolio"); 3169 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3170 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](8, " (and the rest of the website) as usual, sending messages will be unavailable for the time being. "); 3171 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3172 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](9, "p", 5); 3173 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](10, "We apologize for the inconvenience."); 3174 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3175 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3176 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](11, "div", 6); 3177 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](12, "img", 7); 3178 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3179 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](13, "div", 8); 3180 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](14, "button", 9); 3181 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](15, " My virtrolio "); 3182 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3183 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](16, "button", 10); 3184 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](17, " Back to Home "); 3185 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3186 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3187 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3188 } }, directives: [_angular_router__WEBPACK_IMPORTED_MODULE_2__.RouterLinkWithHref, _angular_router__WEBPACK_IMPORTED_MODULE_2__.RouterLink], styles: ["#graphic[_ngcontent-%COMP%] {\n height: 10em;\n}\n\nh2[_ngcontent-%COMP%], h5[_ngcontent-%COMP%] {\n text-align: center;\n}\n\n\n\n@media only screen and (max-width: 768px) {\n #graphic[_ngcontent-%COMP%] {\n height: 5em;\n }\n\n #maintenance-heading[_ngcontent-%COMP%] {\n font-size: 1.4em;\n }\n\n #maintenance-subheading[_ngcontent-%COMP%] {\n font-size: 1em;\n }\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW50ZW5hbmNlLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFZO0FBQ2Q7O0FBRUE7O0VBRUUsa0JBQWtCO0FBQ3BCOztBQUVBLFdBQVc7O0FBQ1g7RUFDRTtJQUNFLFdBQVc7RUFDYjs7RUFFQTtJQUNFLGdCQUFnQjtFQUNsQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7QUFDRiIsImZpbGUiOiJtYWludGVuYW5jZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI2dyYXBoaWMge1xuICBoZWlnaHQ6IDEwZW07XG59XG5cbmgyLFxuaDUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIE1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAjZ3JhcGhpYyB7XG4gICAgaGVpZ2h0OiA1ZW07XG4gIH1cblxuICAjbWFpbnRlbmFuY2UtaGVhZGluZyB7XG4gICAgZm9udC1zaXplOiAxLjRlbTtcbiAgfVxuXG4gICNtYWludGVuYW5jZS1zdWJoZWFkaW5nIHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgfVxufVxuIl19 */"] }); 3189 3190 3191/***/ }), 3192 3193/***/ 88198: 3194/*!******************************************************!*\ 3195 !*** ./src/app/pages/msg-sent/msg-sent.component.ts ***! 3196 \******************************************************/ 3197/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3198 3199"use strict"; 3200__webpack_require__.r(__webpack_exports__); 3201/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3202/* harmony export */ "MsgSentComponent": function() { return /* binding */ MsgSentComponent; } 3203/* harmony export */ }); 3204/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 37716); 3205/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/router */ 39895); 3206/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 3207 3208 3209 3210class MsgSentComponent { 3211 constructor(route, title) { 3212 this.route = route; 3213 this.title = title; 3214 this.name = 'Your friend'; 3215 } 3216 ngOnInit() { 3217 this.route.queryParams.subscribe((params) => { 3218 this.name = params.name; 3219 this.title.setTitle('Message sent to ' + 3220 params.name + 3221 "! | Virtrolio - Stay connected. Even when you're apart."); 3222 }); 3223 } 3224} 3225MsgSentComponent.ɵfac = function MsgSentComponent_Factory(t) { return new (t || MsgSentComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_1__.ActivatedRoute), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__.Title)); }; 3226MsgSentComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: MsgSentComponent, selectors: [["app-msg-sent"]], decls: 11, vars: 1, consts: [[1, "container", "vertical-center", "montserrat"], [1, "row", "mx-3", "mt-3", "justify-content-center"], [1, "display-text"], [1, "row", "mx-2", "my-5", "justify-content-center"], ["alt", "Paper plane graphic", "id", "graphic", "src", "../../../assets/images/MessageSent-Light.svg"], ["id", "buttons", 1, "row", "justify-content-center", "mb-3"], ["routerLink", "/my-v
3226irtrolio", "type", "button", 1, "col-sm-4", "col-md-3", "btn", "btn-primary"], ["routerLink", "", "type", "button", 1, "col-sm-4", "col-md-3", "btn", "btn-primary"]], template: function MsgSentComponent_Template(rf, ctx) { if (rf & 1) { 3227 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); 3228 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 1); 3229 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "h1", 2); 3230 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](3); 3231 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3232 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3233 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "div", 3); 3234 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](5, "img", 4); 3235 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3236 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "div", 5); 3237 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](7, "button", 6); 3238 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](8, " My virtrolio "); 3239 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3240 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](9, "button", 7); 3241 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](10, " Home Page "); 3242 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3243 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3244 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3245 } if (rf & 2) { 3246 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](3); 3247 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"](" ", ctx.name ? ctx.name : "Your friend", " will receive your message soon! "); 3248 } }, directives: [_angular_router__WEBPACK_IMPORTED_MODULE_1__.RouterLink], styles: ["#graphic[_ngcontent-%COMP%] {\n height: 15em;\n}\n\n#buttons[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] {\n margin: 2em 1em 0;\n font-size: 1.1em;\n}\n\n#title-text[_ngcontent-%COMP%] {\n font-size: 2em;\n text-align: center;\n}\n\n\n\n@media only screen and (max-width: 768px) {\n #graphic[_ngcontent-%COMP%] {\n height: 10em;\n }\n\n #title-text[_ngcontent-%COMP%] {\n font-size: 1.5em;\n }\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1zZy1zZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsY0FBYztFQUNkLGtCQUFrQjtBQUNwQjs7QUFFQSxXQUFXOztBQUNYO0VBQ0U7SUFDRSxZQUFZO0VBQ2Q7O0VBRUE7SUFDRSxnQkFBZ0I7RUFDbEI7QUFDRiIsImZpbGUiOiJtc2ctc2VudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI2dyYXBoaWMge1xuICBoZWlnaHQ6IDE1ZW07XG59XG5cbiNidXR0b25zID4gYnV0dG9uIHtcbiAgbWFyZ2luOiAyZW0gMWVtIDA7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG59XG5cbiN0aXRsZS10ZXh0IHtcbiAgZm9udC1zaXplOiAyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogTW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICNncmFwaGljIHtcbiAgICBoZWlnaHQ6IDEwZW07XG4gIH1cblxuICAjdGl0bGUtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgfVxufVxuIl19 */"] }); 3249 3250 3251/***/ }), 3252 3253/***/ 32093: 3254/*!**************************************************************!*\ 3255 !*** ./src/app/pages/my-virtrolio/my-virtrolio.component.ts ***! 3256 \**************************************************************/ 3257/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3258 3259"use strict"; 3260__webpack_require__.r(__webpack_exports__); 3261/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3262/* harmony export */ "MyVirtrolioComponent": function() { return /* binding */ MyVirtrolioComponent; } 3263/* harmony export */ }); 3264/* harmony import */ var _core_common_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/common.service */ 80150); 3265/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 37716); 3266/* harmony import */ var _core_auth_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/auth.service */ 87341); 3267/* harmony import */ var _core_sharing_link_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/sharing-link.service */ 84157); 3268/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/router */ 39895); 3269/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 3270/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/common */ 38583); 3271/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/forms */ 3679); 3272 3273 3274 3275 3276 3277 3278 3279 3280function MyVirtrolioComponent_div_52_Template(rf, ctx) { if (rf & 1) { 3281 const _r7 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵgetCurrentView"](); 3282 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 47); 3283 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](1, "label", 48); 3284 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](2, "Share"); 3285 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3286 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](3, "button", 49); 3287 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function MyVirtrolioComponent_div_52_Template_button_click_3_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵrestoreView"](_r7); const ctx_r6 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); return ctx_r6.shareLink(); }); 3288 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](4, " Share your link "); 3289 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3290 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3291} } 3292function MyVirtrolioComponent_ng_template_53_Template(rf, ctx) { if (rf & 1) { 3293 const _r9 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵgetCurrentView"](); 3294 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 50); 3295 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](1, "div"); 3296 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](2, "h6"); 3297 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](3, "Use the buttons below to share your link!"); 3298 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3299 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3300 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](4, "button", 51); 3301 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function MyVirtrolioComponent_ng_template_53_Template_button_click_4_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵrestoreView"](_r9); const ctx_r8 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); return ctx_r8.postOnSocial("facebook"); }); 3302 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](5, "img", 52); 3303 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](6, "span", 53); 3304 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](7, "Facebook"); 3305 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3306 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3307 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](8, "button", 54); 3308 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function MyVirtrolioComponent_ng_template_53_Template_button_click_8_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵrestoreView"](_r9); const ctx_r10 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); return ctx_r10.postOnSocial("twitter"); }); 3309 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](9, "img", 55); 3310 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](10, "span"); 3311 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](11, "Twitter"); 3312 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3313 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3314 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](12, "button", 56); 3315 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function MyVirtrolioComponent_ng_template_53_Template_button_click_12_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵrestoreView"](_r9); const ctx_r11 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); return ctx_r11.postOnSocial("email"); }); 3316 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](13, "img", 57); 3317 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](14, "span", 53); 3318 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](15, "Email"); 3319 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3320 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3321 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](16, "hr"); 3322 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3323} } 3324function MyVirtrolioComponent_div_61_Template(rf, ctx) { if (rf & 1) { 3325 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 58); 3326 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](1, " Are you sure? Generating a new link will invalidate any other links that you have generated! Click generate again to confirm. "); 3327 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3328} } 3329/** 3330 * 'My virtrolio.' Displays your virtrolio as a 'book' on screen and allows you to generate a sharing link. 3331 */ 3332class MyVirtrolioComponent { 3333 constructor(authService, sharingLinkService, router, title) { 3334 this.authService = authService; 3335 this.sharingLinkService = sharingLinkService; 3336 this.router = router; 3337 this.title = title; 3338 this.currentYear = _core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.CURRENT_YEAR; 3339 /** Default values */ 3340 this.link = 'Getting your link...'; 3341 this.linkReady = false; 3342 this.showWarningText = false; 3343 this.copyButtonText = 'Copy'; 3344 } 3345 ngOnInit() { 3346 this.authService.displayName().then((displayName) => { 3347 this.displayName = displayName; 3348 this.title.setTitle(displayName + "'s Virtrolio | Virtrolio"); 3349 }); 3350 this.authService 3351 .redirectLoginUserCreation() 3352 .catch((error) => _core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(error)); 3353 this.navigator = window.navigator; 3354 } 3355 ngOnDestroy() { 3356 $('#link-gen').modal('hide'); 3357 $('#send-message').modal('hide'); 3358 } 3359 /** 3360 * Check if user can share using a native sharing mechanism (i.e. if they are on mobile) 3361 * @returns - True if the user has a native sharing mechanism available 3362 */ 3363 canShare() { 3364 return this.navigator && this.navigator.share; 3365 } 3366 /** 3367 * Selects an inputElement's field and copies its contents to the clipboard, updating the button to confirm the copy 3368 * @param inputElement - the element to read from 3369 */ 3370 copyLink(inputElement) { 3371 inputElement.select(); 3372 inputElement.setSelectionRange(0, 10000); 3373 document.execCommand('copy'); 3374 this.copyButtonText = 'Copied!'; 3375 } 3376 /** 3377 * Fetches the user's sharing link, alerts an error on invali
3377d link 3378 */ 3379 setLink() { 3380 this.copyButtonText = 'Copy'; 3381 this.sharingLinkService.getLink().then((link) => { 3382 this.link = link; 3383 this.linkReady = true; 3384 }); 3385 } 3386 /** 3387 * Attempts to navigate by router to a sharing link based on what is inputted in the 'send a message' input field 3388 * (query params extracted with regEx if possible) 3389 */ 3390 navigateToLink() { 3391 if (this.visitLink) { 3392 try { 3393 // noinspection JSIgnoredPromiseFromCall 3394 this.visitLinkUID = this.visitLink.match(/uid=([^&]*)/)[1]; 3395 this.visitLinkKEY = this.visitLink.match(/key=([^&]*)/)[1]; 3396 window.location.href = 3397 '/signing?uid=' + this.visitLinkUID + '&key=' + this.visitLinkKEY; 3398 } 3399 catch (e) { 3400 this.router 3401 .navigate(['/invalid-link']) 3402 .catch((e) => _core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(e)); 3403 } 3404 } 3405 } 3406 /** 3407 * Share 'sharing link' using device native sharing mechanism. Should only be available on the front end to the user 3408 * if they have a native sharing mechanism. 3409 */ 3410 shareLink() { 3411 if (this.canShare()) { 3412 this.navigator 3413 .share({ 3414 title: this.displayName + 3415 "'s virtrolio for " + 3416 _core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.CURRENT_YEAR + 3417 '!', 3418 text: 'Sign my virtual yearbook!', 3419 url: this.link, 3420 }) 3421 .catch((error) => _core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError('Sharing Error: ' + error)); 3422 } 3423 else { 3424 _core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError('Sharing Error: Native Share not supported on this browser: ' + 3425 navigator.userAgent); 3426 } 3427 } 3428 /** 3429 * Share the user's sharing link on the appropriate platform 3430 * @param platform - platform on which to post the sharing link 3431 */ 3432 postOnSocial(platform) { 3433 const urlFriendlyLink = 'https%3A//virtrolio.web.app/signing?uid=' + 3434 this.authService.uid() + 3435 '%26key=' + 3436 this.link.match(/key=([^&]*)/)[1]; 3437 const bodyText = 'Sign%20my%20virtual%20yearbook!'; 3438 if (platform === 'facebook') { 3439 window.open('https://www.facebook.com/sharer/sharer.php?u=' + urlFriendlyLink, '_blank'); 3440 } 3441 else if (platform === 'twitter') { 3442 window.open('https://twitter.com/intent/tweet?url=' + 3443 urlFriendlyLink + 3444 '&text=' + 3445 bodyText, '_blank'); 3446 } 3447 else if (platform === 'email') { 3448 window.open('mailto:?subject=' + 3449 'Virtrolio%20-%20Online%20Yearbook%20Signing!' + 3450 '&body=' + 3451 bodyText + 3452 '%0D%0A' + 3453 urlFriendlyLink, '_blank'); 3454 } 3455 else { 3456 _core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError('Sharing Error: Unsupported social media platform: ' + platform); 3457 } 3458 } 3459 /** 3460 * Toggles between displaying warning text and updating the sharing link in the text box. 3461 */ 3462 warnAndGenerate() { 3463 if (this.showWarningText) { 3464 this.link = 'Generating new link...'; 3465 this.linkReady = false; 3466 this.copyButtonText = 'Copy'; 3467 this.sharingLinkService 3468 .changeKey() 3469 .then(() => this.setLink()) 3470 .catch((error) => _core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(error)); 3471 this.setLink(); 3472 } 3473 this.showWarningText = !this.showWarningText; 3474 } 3475} 3476MyVirtrolioComponent.ɵfac = function MyVirtrolioComponent_Factory(t) { return new (t || MyVirtrolioComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_core_auth_service__WEBPACK_IMPORTED_MODULE_1__.AuthService), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_core_sharing_link_service__WEBPACK_IMPORTED_MODULE_2__.SharingLinkService), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_4__.Router), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_5__.Title)); }; 3477MyVirtrolioComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdefineComponent"]({ type: MyVirtrolioComponent, selectors: [["app-my-virtrolio"]], decls: 94, vars: 11, consts: [[1, "container", "montserrat", "vertical-center"], [1, "row", "justify-content-center"], [1, "vertical-center", "mx-5", "my-3", "my-lg-0"], ["id", "virtrolio-outer-div", "routerLink", "/viewing", 1, "bg-primary", "rounded"], ["id", "virtrolio-title", 1, "bg-light", "p-3", "mt-4", "m-4", "rounded", "vertical-center"], [1, "mt-5"], ["id", "users-virtrolio"], [1, "col-lg-3", "col-md-4", "col-sm-5", "px-2", "vertical-center"], ["id", "buttons"], [1, "row"], ["data-target", "#link-gen", "data-toggle", "modal", "type", "button", 1, "btn-lg", "btn-primary", 3, "click"], ["routerLink", "/viewing", "type", "button", 1, "btn-lg", "btn-primary"], ["data-target", "#send-message", "data-toggle", "modal", "type", "button", 1, "btn-lg", "btn-primary"], ["routerLink", "/settings", "type", "button", 1, "btn-lg", "btn-primary"], [1, "col-lg-1"], ["aria-hidden", "true", "aria-labelledby", "link-gen-title", "id", "link-gen", "role", "dialog", "tabindex", "-1", 1, "modal", "fade"], ["role", "document", 1, "modal-dialog", "modal-dialog-centered"], [1, "modal-content"], [1, "modal-header"], ["id", "link-gen-title", 1, "modal-title"], ["aria-label", "Close", "data-dismiss", "modal", "type", "button", 1, "close"], ["aria-hidden", "true"], [1, "modal-body", "sharing-link-body"], ["for", "sharing-link-field"], [1, "align-items-center", "my-3"], [1, "input-group", "mb-3"], ["id", "sharing-link-field", "readonly", "", "type", "text", 1, "form-control", 3, "disabled", "value", "click"], ["sharingLink", ""], [1, "input-group-append"], ["id", "button-copy", "type", "button", 1, "btn", "btn-primary", "align-middle", 3, "disabled", "click"], ["id", "sharing-link-buttons", 1, "row", "justify-content-center"], ["class", "col
3477-sm-5 px-0 vertical-center my-2 mx-sm-1", 4, "ngIf", "ngIfElse"], ["desktopSharing", ""], [1, "col-sm-5", "px-0"], ["for", "button-new-link"], ["id", "button-new-link", "type", "button", 1, "btn", "btn-secondary", "w-100", "my-2", "mx-sm-1", 3, "click"], ["id", "warning-div", 4, "ngIf"], ["id", "generate-link-desc", 1, "mt-3"], ["aria-hidden", "true", "aria-labelledby", "send-message-modal-title", "id", "send-message", "role", "dialog", "tabindex", "-1", 1, "modal", "fade"], ["id", "send-message-modal-title", 1, "modal-title"], [1, "input-group"], ["for", "input-sharing-field", "id", "input-sharing-label", 2, "display", "none"], ["id", "input-sharing-field", "type", "text", "placeholder", "Input your friend's link here", "aria-label", "sign-friend", 1, "form-control", 3, "ngModel", "click", "ngModelChange"], ["inputSharing", ""], ["aria-label", "Close", "data-dismiss", "modal", "id", "button-go", "type", "button", 1, "btn", "btn-primary", "align-middle", "button-modal", 3, "click"], [1, "modal-footer"], ["data-dismiss", "modal", "type", "button", 1, "btn", "btn-secondary"], [1, "col-sm-5", "px-0", "vertical-center", "my-2", "mx-sm-1"], ["for", "button-share-mobile"], ["id", "button-share-mobile", "type", "button", 1, "btn", "btn-success", "w-100", 3, "click"], ["id", "sharing-buttons", 1, "row", "w-100"], ["role", "button", "id", "facebook-button", 1, "btn", "btn-secondary", "col-sm-3", "mx-sm-3", "my-2", 3, "click"], ["src", "../../../assets/images/icons/facebook.svg", "alt", "Share with Facebook", 1, "mr-2"], [1, "mr-1"], ["role", "button", "id", "twitter-button", 1, "btn", "btn-secondary", "col-sm-3", "mx-sm-3", "my-2", 3, "click"], ["src", "../../../assets/images/icons/twitter.svg", "alt", "Share with Twitter", 1, "mr-2"], ["role", "button", "id", "email-button", 1, "btn", "btn-secondary", "col-sm-3", "mx-sm-3", "my-2", 3, "click"], ["src", "../../../assets/images/icons/mail.svg", "alt", "Share with Email", 1, "mr-2"], ["id", "warning-div"]], template: function MyVirtrolioComponent_Template(rf, ctx) { if (rf & 1) { 3478 const _r12 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵgetCurrentView"](); 3479 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 0); 3480 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](1, "div", 1); 3481 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](2, "div", 2); 3482 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](3, "div", 3); 3483 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](4, "div", 4); 3484 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](5, "h1"); 3485 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](6); 3486 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3487 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3488 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](7, "div", 5); 3489 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](8, "h2", 6); 3490 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](9); 3491 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](10, "br"); 3492 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](11, " virtrolio "); 3493 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3494 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3495 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3496 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3497 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](12, "div", 7); 3498 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](13, "div", 8); 3499 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](14, "div", 9); 3500 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](15, "button", 10); 3501 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function MyVirtrolioComponent_Template_button_click_15_listener() { ctx.setLink(); return ctx.showWarningText = false; }); 3502 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](16, " Sharing Link "); 3503 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3504 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3505 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](17, "div", 9); 3506 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](18, "button", 11); 3507 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](19, " View Messages "); 3508 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3509 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3510 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](20, "div", 9); 3511 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](21, "button", 12); 3512 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](22, " Send a Message "); 3513 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3514 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3515 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](23, "div", 9); 3516 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](24, "button", 13); 3517 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](25, " Settings "); 3518 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3519 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3520 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3521 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3522 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](26, "div", 14); 3523 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3524 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3525 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](27, "div", 15); 3526 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](28, "div", 16); 3527 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](29, "div", 17); 3528 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](30, "div", 18); 3529 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](31, "h5", 19); 3530 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](32, " Ahoy, your sharing link has been prepared! "); 3531 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3532 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](33, "button", 20); 3533 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](34, "span", 21); 3534 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](35, "\u00D7"); 3535 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3536 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3537 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3538 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](36, "div", 22); 3539 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](37, "p"); 3540 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](38, " This is "); 3541 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](39, "b"); 3542 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](40, "your"); 3543 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3544 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](41, " sharing link; only share it with people you trust. "); 3545 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3546 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](42, "label", 23); 3547 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](43, "Your Link:"); 3548 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3549 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](44, "div", 24); 3550 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](45, "div", 25); 3551 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](46, "input", 26, 27); 3552 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function MyVirtrolioComponent_Template_input_click_46_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵrestoreView"](_r12); const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵreference"](47); return ctx.copyLink(_r0); }); 3553 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3554 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](48, "div", 28); 3555 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](49, "button", 29); 3556 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function MyVirtrolioComponent_Template_button_click_49_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵrestoreView"](_r12); const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵreference"](47); return ctx.copyLink(_r0); }); 3557 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](50); 3558 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3559 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3560 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3561 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3562 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](51, "div", 30); 3563 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](52, MyVirtrolioComponent_div_52_Template, 5, 0, "div", 31); 3564 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](53, MyVirtrolioComponent_ng_template_53_Template, 17, 0, "ng-template", null, 32, _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplateRefExtractor"]); 3565 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](55, "div", 33); 3566 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](56, "label", 34); 3567 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](57, "Click to generate a new link"); 3568 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3569 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](58, "button", 35);
3570 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function MyVirtrolioComponent_Template_button_click_58_listener() { return ctx.warnAndGenerate(); }); 3571 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](59, " Generate new link "); 3572 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3573 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3574 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3575 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](60, "div", 9); 3576 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](61, MyVirtrolioComponent_div_61_Template, 2, 0, "div", 36); 3577 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](62, "div", 37); 3578 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](63, "h6"); 3579 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](64, "Why would I want to generate a new link?"); 3580 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3581 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](65, "p"); 3582 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](66, " If you want people to stop being able to use your old one! Comes in handy if people are signing your virtrolio whom you don't approve of. "); 3583 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3584 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3585 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3586 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3587 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3588 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3589 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3590 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](67, "div", 38); 3591 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](68, "div", 16); 3592 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](69, "div", 17); 3593 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](70, "div", 18); 3594 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](71, "h5", 39); 3595 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](72, " Signing a friend's virtrolio "); 3596 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3597 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](73, "button", 20); 3598 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](74, "span", 21); 3599 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](75, "\u00D7"); 3600 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3601 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3602 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3603 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](76, "div", 22); 3604 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](77, "p"); 3605 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](78, " To sign a friend's virtrolio, they need to give you their 'sharing link'! You can paste your friend's sharing link below or directly into your browser search bar. To access "); 3606 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](79, "em"); 3607 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](80, "your"); 3608 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3609 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](81, " sharing link, click the 'Sharing Link' button on this page! "); 3610 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3611 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](82, "div", 24); 3612 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](83, "div", 40); 3613 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](84, "label", 41); 3614 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](85, "Visit friend link"); 3615 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3616 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](86, "input", 42, 43); 3617 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function MyVirtrolioComponent_Template_input_click_86_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵrestoreView"](_r12); const _r5 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵreference"](87); return ctx.copyLink(_r5); })("ngModelChange", function MyVirtrolioComponent_Template_input_ngModelChange_86_listener($event) { return ctx.visitLink = $event; });
3618 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3619 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](88, "div", 28); 3620 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](89, "button", 44); 3621 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function MyVirtrolioComponent_Template_button_click_89_listener() { return ctx.navigateToLink(); }); 3622 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](90, " Go "); 3623 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3624 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3625 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3626 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3627 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3628 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](91, "div", 45); 3629 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](92, "button", 46); 3630 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](93, " Close "); 3631 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3632 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3633 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3634 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3635 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 3636 } if (rf & 2) { 3637 const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵreference"](54); 3638 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](6); 3639 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate2"]("", ctx.currentYear - 1, "-", ctx.currentYear, ""); 3640 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](3); 3641 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate1"](" ", ctx.displayName, "'s "); 3642 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](37); 3643 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpropertyInterpolate"]("value", ctx.link); 3644 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("disabled", !ctx.linkReady); 3645 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](3); 3646 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("disabled", !ctx.linkReady); 3647 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); 3648 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate1"](" ", ctx.copyButtonText, " "); 3649 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](2); 3650 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx.canShare())("ngIfElse", _r2); 3651 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](9); 3652 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx.showWarningText); 3653 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](25); 3654 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngModel", ctx.visitLink); 3655 } }, directives: [_angular_router__WEBPACK_IMPORTED_MODULE_4__.RouterLink, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgIf, _angular_forms__WEBPACK_IMPORTED_MODULE_7__.DefaultValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_7__.NgControlStatus, _angular_forms__WEBPACK_IMPORTED_MODULE_7__.NgModel], styles: ["#virtrolio-outer-div[_ngcontent-%COMP%] {\n \n height: 64vh;\n width: 45vh;\n box-shadow: 5px 10px var(--light-grey);\n cursor: pointer;\n}\n\n.bg-primary[_ngcontent-%COMP%]:hover {\n background-color: var(--dark-accent) !important;\n}\n\n.btn-primary[_ngcontent-%COMP%]:disabled {\n background-color: var(--light-grey);\n}\n\n#virtrolio-title[_ngcontent-%COMP%] {\n \n height: 17vh;\n text-align: center;\n}\n\n#virtrolio-title[_ngcontent-%COMP%] > h1[_ngcontent-%COMP%] {\n font-size: 180%;\n}\n\n#users-virtrolio[_ngcontent-%COMP%] {\n \n text-align: center;\n color: white;\n line-height: 1.5;\n font-size: 140%;\n}\n\n\n\n#buttons[_ngcontent-%COMP%] > *.row[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] {\n \n height: 4em;\n width: 100%;\n margin: 1.2em;\n overflow: auto;\n box-shadow: var(--signing-shadow);\n}\n\n\n\n.sharing-link-body[_ngcontent-%COMP%] {\n text-align: center;\n padding: 0.8em;\n}\n\n.sharing-link-body[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] {\n \n margin: 0.4em;\n}\n\n.sharing-link-body[_ngcontent-%COMP%] > input[_ngcontent-%COMP%] {\n \n width: 60%;\n height: 2em;\n padding: 0.2em;\n overflow-x: auto;\n}\n\n.sharing-link-body[_ngcontent-%COMP%] > label[_ngcontent-%COMP%], #sharing-link-buttons[_ngcontent-%COMP%] > label[_ngcontent-%COMP%], #sharing-link-buttons[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] > label[_ngcontent-%COMP%] {\n display: none;\n}\n\n#sharing-link-buttons[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] {\n display: inline-block;\n}\n\n#sharing-link-field[_ngcontent-%COMP%] {\n background: white;\n}\n\n#facebook-button[_ngcontent-%COMP%] {\n background-color: #3b5998;\n}\n\n#twitter-button[_ngcontent-%COMP%] {\n background-color: #1da1f2;\n}\n\n#email-button[_ngcontent-%COMP%] {\n background-color: #b23122;\n}\n\n#sharing-buttons[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] {\n border: 0;\n font-size: 0.8em;\n}\n\n#sharing-buttons[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] > img[_ngcontent-%COMP%] {\n height: 80%;\n}\n\n.button-modal[_ngcontent-%COMP%] {\n width: 4.5em;\n padding: 0.4em;\n}\n\n#button-new-link[_ngcontent-%COMP%] {\n height: 2.4em;\n width: 10em;\n padding: 0.2em;\n margin: auto;\n}\n\n#warning-div[_ngcontent-%COMP%] {\n color: #f05555;\n text-align: center;\n padding: 0.4em;\n}\n\n#generate-link-desc[_ngcontent-%COMP%] {\n text-align: left;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm15LXZpcnRyb2xpby5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBCQUEwQjs7QUFFMUI7RUFDRSw4Q0FBOEM7RUFDOUMsWUFBWTtFQUNaLFdBQVc7RUFDWCxzQ0FBc0M7RUFDdEMsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLCtD
3655QUErQztBQUNqRDs7QUFFQTtFQUNFLG1DQUFtQztBQUNyQzs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQixZQUFZO0VBQ1osa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLCtDQUErQztFQUMvQyxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixlQUFlO0FBQ2pCOztBQUVBLG9CQUFvQjs7QUFFcEI7RUFDRSx1REFBdUQ7RUFDdkQsV0FBVztFQUNYLFdBQVc7RUFDWCxhQUFhO0VBQ2IsY0FBYztFQUNkLGlDQUFpQztBQUNuQzs7QUFFQSx1Q0FBdUM7O0FBRXZDO0VBQ0Usa0JBQWtCO0VBQ2xCLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSwrQ0FBK0M7RUFDL0MsYUFBYTtBQUNmOztBQUVBO0VBQ0UsMkJBQTJCO0VBQzNCLFVBQVU7RUFDVixXQUFXO0VBQ1gsY0FBYztFQUNkLGdCQUFnQjtBQUNsQjs7QUFFQTs7O0VBR0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsU0FBUztFQUNULGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLFdBQVc7RUFDWCxjQUFjO0VBQ2QsWUFBWTtBQUNkOztBQUVBO0VBQ0UsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCIiwiZmlsZSI6Im15LXZpcnRyb2xpby5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogfHwgVmlydHJvbGlvIGNvdmVyIHx8ICovXG5cbiN2aXJ0cm9saW8tb3V0ZXItZGl2IHtcbiAgLyogRGl2IGVuY2xvc2luZyB2aXJ0cm9saW8gKG91dHNpZGUgPGE+IHRhZykgKi9cbiAgaGVpZ2h0OiA2NHZoO1xuICB3aWR0aDogNDV2aDtcbiAgYm94LXNoYWRvdzogNXB4IDEwcHggdmFyKC0tbGlnaHQtZ3JleSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmJnLXByaW1hcnk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYXJrLWFjY2VudCkgIWltcG9ydGFudDtcbn1cblxuLmJ0bi1wcmltYXJ5OmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHQtZ3JleSk7XG59XG5cbiN2aXJ0cm9saW8tdGl0bGUge1xuICAvKiBUaXRsZSBvZiB0aGUgdmlydHJvbGlvICovXG4gIGhlaWdodDogMTd2aDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4jdmlydHJvbGlvLXRpdGxlID4gaDEge1xuICBmb250LXNpemU6IDE4MCU7XG59XG5cbiN1c2Vycy12aXJ0cm9saW8ge1xuICAvKiBcIlVzZXIncyB2aXJ0cm9saW9cIiB0ZXh0IG9uIHZpcnRyb2xpbyBjb3ZlciAqL1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgZm9udC1zaXplOiAxNDAlO1xufVxuXG4vKiB8fCBTaWRlIEJ1dHRvbnMgKi9cblxuI2J1dHRvbnMgPiAqLnJvdyA+ICoge1xuICAvKiBFYWNoIGluZGl2aWR1YWwgYnV0dG9uIHdpbGwgaGF2ZSB0aGVzZSBwcm9wZXJ0aWVzOiAqL1xuICBoZWlnaHQ6IDRlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMS4yZW07XG4gIG92ZXJmbG93OiBhdXRvO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaWduaW5nLXNoYWRvdyk7XG59XG5cbi8qIHwgU2hhcmluZyAmIFNlbmQgYSBtZXNzYWdlIGJ1dHRvbnMgKi9cblxuLnNoYXJpbmctbGluay1ib2R5IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwLjhlbTtcbn1cblxuLnNoYXJpbmctbGluay1ib2R5ID4gKiB7XG4gIC8qIEVhY2ggaXRlbSBpbnNpZGUgYSBzaGFyaW5nLWxpbmsgbW9kYWwgYm9keSAqL1xuICBtYXJnaW46IDAuNGVtO1xufVxuXG4uc2hhcmluZy1saW5rLWJvZHkgPiBpbnB1dCB7XG4gIC8qIEZyaWVuZCBsaW5rIHRleHQgZmllbGQgKi9cbiAgd2lkdGg6IDYwJTtcbiAgaGVpZ2h0OiAyZW07XG4gIHBhZGRpbmc6IDAuMmVtO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4uc2hhcmluZy1saW5rLWJvZHkgPiBsYWJlbCxcbiNzaGFyaW5nLWxpbmstYnV0dG9ucyA+IGxhYmVsLFxuI3NoYXJpbmctbGluay1idXR0b25zID4gZGl2ID4gbGFiZWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jc2hhcmluZy1saW5rLWJ1dHRvbnMgPiBkaXYge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbiNzaGFyaW5nLWxpbmstZmllbGQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuI2ZhY2Vib29rLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYjU5OTg7XG59XG5cbiN0d2l0dGVyLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZGExZjI7XG59XG5cbiNlbWFpbC1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjIzMTIyO1xufVxuXG4jc2hhcmluZy1idXR0b25zID4gYnV0dG9uIHtcbiAgYm9yZGVyOiAwO1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuXG4jc2hhcmluZy1idXR0b25zID4gYnV0dG9uID4gaW1nIHtcbiAgaGVpZ2h0OiA4MCU7XG59XG5cbi5idXR0b24tbW9kYWwge1xuICB3aWR0aDogNC41ZW07XG4gIHBhZGRpbmc6IDAuNGVtO1xufVxuXG4jYnV0dG9uLW5ldy1saW5rIHtcbiAgaGVpZ2h0OiAyLjRlbTtcbiAgd2lkdGg6IDEwZW07XG4gIHBhZGRpbmc6IDAuMmVtO1xuICBtYXJnaW46IGF1dG87XG59XG5cbiN3YXJuaW5nLWRpdiB7XG4gIGNvbG9yOiAjZjA1NTU1O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNGVtO1xufVxuXG4jZ2VuZXJhdGUtbGluay1kZXNjIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbiJdfQ== */"] }); 3656 3657 3658/***/ }), 3659 3660/***/ 78340: 3661/*!******************************************************************!*\ 3662 !*** ./src/app/pages/page-not-found/page-not-found.component.ts ***! 3663 \******************************************************************/ 3664/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3665 3666"use strict"; 3667__webpack_require__.r(__webpack_exports__); 3668/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3669/* harmony export */ "PageNotFoundComponent": function() { return /* binding */ PageNotFoundComponent; } 3670/* harmony export */ }); 3671/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 37716); 3672/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 3673/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ 39895); 3674 3675 3676 3677class PageNotFoundComponent { 3678 constructor(title) { 3679 this.title = title; 3680 } 3681 ngOnInit() { 3682 this.title.setTitle('Page Not Found | Virtrolio'); 3683 } 3684} 3685PageNotFoundComponent.ɵfac = function PageNotFoundComponent_Factory(t) { return new (t || PageNotFoundComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__.Title)); }; 3686PageNotFoundComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: PageNotFoundComponent, selectors: [["app-page-not-found"]], decls: 17, vars: 0, consts: [[1, "container", "vertical-center", "montserrat"], [1, "row", "justify-content-center", "mx-3", "mt-3"], [1, "col-md-2"], [1, "col-md-8"], [1, "display-text"], [1, "row", "justify-content-center", "mx-3"], [1, "display-body-text"], ["href", "mailto:[email protected]"], ["alt", "Page Not Found graphic", "id", "pnf-graphic", "src", "../../../assets/images/PageNotFound.svg"], [1, "row", "justify-content-center", "my-3"], ["routerLink", "", 1, "btn-lg", "btn-primary", "mt-5"]], template: function PageNotFoundComponent_Template(rf, ctx) { if (rf & 1) { 3687 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); 3688 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 1); 3689 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](2, "div", 2); 3690 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "div", 3); 3691 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "h1", 4); 3692 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](5, "The page you are looking for doesn't exist"); 3693 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3694 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3695 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](6, "div", 2); 3696 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3697 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](7, "div", 5); 3698 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](8, "p", 6); 3699 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](9, " Should it? You can contact us at "); 3700 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](10, "a", 7); 3701 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](11, "[email protected]"); 3702 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3703 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3704 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3705 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](12, "div", 1); 3706 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](13, "img", 8); 3707 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3708 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](14, "div", 9); 3709 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](15, "button", 10); 3710 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](16, "Back to Home"); 3711 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3712 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3713 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3714 } }, directives: [_angular_router__WEBPACK_IMPORTED_MODULE_2__.RouterLink], styles: ["#pnf-graphic[_ngcontent-%COMP%] {\n height: 10em;\n}\n\n#title-text[_ngcontent-%COMP%] {\n font-size: 2.5em;
3714\n text-align: center;\n}\n\n#subtitle-text[_ngcontent-%COMP%] {\n font-size: large;\n text-align: center;\n}\n\n\n\n@media only screen and (max-width: 768px) {\n #graphic[_ngcontent-%COMP%] {\n height: 5em;\n }\n\n #title-text[_ngcontent-%COMP%] {\n font-size: 2em;\n }\n\n #subtitle-text[_ngcontent-%COMP%] {\n font-size: 1em;\n }\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utbm90LWZvdW5kLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjs7QUFFQSxXQUFXOztBQUNYO0VBQ0U7SUFDRSxXQUFXO0VBQ2I7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjtBQUNGIiwiZmlsZSI6InBhZ2Utbm90LWZvdW5kLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjcG5mLWdyYXBoaWMge1xuICBoZWlnaHQ6IDEwZW07XG59XG5cbiN0aXRsZS10ZXh0IHtcbiAgZm9udC1zaXplOiAyLjVlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4jc3VidGl0bGUtdGV4dCB7XG4gIGZvbnQtc2l6ZTogbGFyZ2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogTW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICNncmFwaGljIHtcbiAgICBoZWlnaHQ6IDVlbTtcbiAgfVxuXG4gICN0aXRsZS10ZXh0IHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgfVxuXG4gICNzdWJ0aXRsZS10ZXh0IHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgfVxufVxuIl19 */"] }); 3715 3716 3717/***/ }), 3718 3719/***/ 3654: 3720/*!******************************************************************!*\ 3721 !*** ./src/app/pages/privacy-policy/privacy-policy.component.ts ***! 3722 \******************************************************************/ 3723/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3724 3725"use strict"; 3726__webpack_require__.r(__webpack_exports__); 3727/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3728/* harmony export */ "PrivacyPolicyComponent": function() { return /* binding */ PrivacyPolicyComponent; } 3729/* harmony export */ }); 3730/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 37716); 3731/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 3732 3733 3734class PrivacyPolicyComponent { 3735 constructor(title) { 3736 this.title = title; 3737 } 3738 ngOnInit() { 3739 this.title.setTitle('Privacy Policy | Virtrolio'); 3740 } 3741} 3742PrivacyPolicyComponent.ɵfac = function PrivacyPolicyComponent_Factory(t) { return new (t || PrivacyPolicyComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__.Title)); }; 3743PrivacyPolicyComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: PrivacyPolicyComponent, selectors: [["app-privacy-policy"]], decls: 98, vars: 0, consts: [[1, "container"], [1, "text-center", "mt-3", "mb-3"], ["role", "alert", 1, "alert", "alert-primary"], ["href", "https://virtrolio.web.app", "target", "_blank"], ["href", "http://www.allaboutcookies.org", "target", "_blank"], ["href", "../terms-of-service"], ["href", "https://www.google.com/intl/en/policies/privacy", "target", "_blank"], ["href", "https://policies.google.com/technologies/partner-sites", "target", "_blank"], ["href", "https://cloud.google.com/terms/", "target", "_blank"], ["href", "https://tools.google.com/dlpage/gaoptout", "target", "_blank"], ["href", "mailto:[email protected]", "target", "_blank"]], template: function PrivacyPolicyComponent_Template(rf, ctx) { if (rf & 1) { 3744 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); 3745 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "h1", 1); 3746 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2, "Privacy Policy"); 3747 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3748 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "div", 2); 3749 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](4, " Last updated: June 16, 2021 "); 3750 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3751 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](5, "h3"); 3752 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](6, "SUMMARY"); 3753 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3754 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](7, "p"); 3755 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](8, " We take your privacy very seriously and commit to being transparent about how we use the data we collect. This data broadly falls under \"Personal\" and \"Device\" information. First and foremost, we do not and will never sell or share any of your data with third-party advertisers. We only collect personal information essential for making online yearbook signings possible, including your name, email, profile picture, and of course, the messages you ask us to deliver. Similarly, we only collect device information needed to make the website work smoothly and securely. Sending and receiving messages works like normal yearbook signing. Once you send something, it becomes the property of the receiver. However, you are always responsible for the contents of the messages you send. This summary is for convenience only and does not supersede the full policy; please read the terms below carefully. "); 3756 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3757 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](9, "h3"); 3758 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](10, "OVERVIEW"); 3759 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3760 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](11, "p"); 3761 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](12, " This Privacy Policy describes how your personal information is collected, used, and shared when you visit "); 3762 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](13, "a", 3); 3763 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](14, "https://virtrolio.web.app"); 3764 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3765 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](15, " (the \u201CSite\u201D). "); 3766 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3767 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](16, "h3"); 3768 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](17, "DEVICE INFORMATION WE COLLECT"); 3769 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3770 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](18, "p"); 3771 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](19, "We collect Device Information using the following technologies:"); 3772 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3773 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](20, "ul"); 3774 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](21, "li"); 3775 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](22, " \u201CCookies\u201D are data files that are placed on your device or computer and often include an anonymous unique identifier. For more information about cookies, and how to disable cookies, visit "); 3776 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](23, "a", 4); 3777 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](24, "http://www.allaboutcookies.org"); 3778 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3779 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](25, ". "); 3780 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3781 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](26, "li"); 3782 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](27, " \u201CLog files\u201D track actions occurring on the Site, and collect data including your IP address, browser type, Internet service provider, referring/exit pages, and date/time stamps. "); 3783 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3784 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](28, "li"); 3785 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](29, " \u201CWeb beacons,\u201D \u201Ctags,\u201D and \u201Cpixels\u201D are electronic files used to record information about how you browse the Site. "); 3786 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3787 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](30, "li"); 3788 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](31, " Google Analytics also collects device information through us; see SHARING YOUR PERSONAL INFORMATION for more details. "); 3789 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3790 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3791 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](32, "h3"); 3792 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](33, "PERSONAL INFORMATION WE COLLECT"); 3793 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3794 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](34, "p"); 3795 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](35, " \u201CPersonal Information\u201D refers to any of the information identified in this section. When you sign up or sign in with us we collect certain information from you, including your name, email address, and profile picture. "); 3796 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3797 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](36, "h5"); 3798 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](37, "HOW DO WE USE YOUR PERSONAL INFORMATION?"); 3799 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3800 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](38, "p"); 3801 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](39, " We use your Personal Information in order to keep track of what email addresses have an account with us, what email addresses have signed others\u2019 virtrolios, and what name and profile picture to display when someone reads your message, among other applications. "); 3802 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3803 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](40, "p"); 3804 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](41, " We use the Device Information that we collect to help us screen for potential risk and fraud (in particular, your IP address), and more generally to improve and optimize our Site (for example, by generating analytics about how our
3804customers browse and interact with the Site, and to assess the effectiveness of our marketing and advertising campaigns). "); 3805 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3806 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](42, "h5"); 3807 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](43, "SHARING YOUR PERSONAL INFORMATION"); 3808 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3809 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](44, "p"); 3810 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](45, " We share your Personal Information with third parties to help us use the information as described above. For example, we use Google Firebase to host our service and store your data, including messages which you author or receive. We also use Google Analytics to help us understand how our customers use the Site. Additionally, we make use of third-party sign-in providers such as Google in order to authenticate users who use our service. This means that we provide Google with certain parts of your data, which may be stored on servers outside your country. We only collect personal data that is essential to the core functionality of our Site. In addition, some anonymous data is used by us and relevant third-parties for analytical purposes. Your acceptance of our "); 3811 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](46, "a", 5); 3812 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](47, "Terms of Service"); 3813 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3814 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](48, " and other relevant policies gives Virtrolio the right to share user and website data, in the manner described, to enable these services. "); 3815 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3816 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](49, "p"); 3817 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](50, " Visit the following links for more information on how Google uses your information: "); 3818 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3819 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](51, "ul"); 3820 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](52, "li"); 3821 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](53, "a", 6); 3822 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](54, " https://www.google.com/intl/en/policies/privacy"); 3823 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3824 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3825 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](55, "li"); 3826 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](56, "a", 7); 3827 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](57, " https://policies.google.com/technologies/partner-sites"); 3828 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3829 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3830 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](58, "li"); 3831 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](59, "a", 8); 3832 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](60, " https://cloud.google.com/terms/"); 3833 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3834 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3835 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3836 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](61, "p"); 3837 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](62, " You can also opt-out of Google Analytics here: "); 3838 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](63, "a", 9); 3839 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](64, "https://tools.google.com/dlpage/gaoptout"); 3840 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3841 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](65, ". "); 3842 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3843 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](66, "p"); 3844 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](67, " Finally, we may also share your Personal Information to comply with applicable laws and regulations, to respond to a subpoena, search warrant or other lawful request for information we receive, or to otherwise protect our rights. "); 3845 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3846 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](68, "h3"); 3847 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](69, "DO NOT TRACK"); 3848 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3849 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](70, "p"); 3850 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](71, " We do not alter our Site\u2019s data collection and use practices when we see a Do Not Track signal from your browser. "); 3851 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3852 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](72, "h3"); 3853 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](73, "DATA OWNERSHIP & RETENTION"); 3854 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3855 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](74, "p"); 3856 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](75, " Our data ownership policies are designed to emulate real-life yearbook signings. By using our Service, you agree to your message text, message attributes and any attached images (collectively referred to hereafter as your \u201Cmessages\u201D or a \u201Cmessage\u201D) being governed by the following policy. "); 3857 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3858 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](76, "p"); 3859 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](77, " Once you (the \u201Csender\u201D) send a message, you will no longer be able to modify your message, delete it, or save it, so please do so beforehand. By sending a message through our service to a person (the \u201Creceiver\u201D), you agree to transfer ownership of the data in your message to that person. If you, the sender, delete your Virtrolio account, your message data will remain on our servers under the ownership of the receiver unless deleted directly by us or by the receiver. Your content will not be publicly displayed or otherwise distributed by us but may be viewed by administrators and developers in order to provide and develop a better service. "); 3860 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3861 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](78, "p"); 3862 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](79, " By receiving a message, you gain control over certain, but not all, aspects of that message. The receiver is the only user with the ability to delete a message (that they have received), and if a receiver chooses to delete their Virtrolio account and all their data, all messages they have received from other users will also be deleted. Modification of received messages is neither offered nor allowed by our platform. "); 3863 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3864 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](80, "p"); 3865 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](81, " If you, the sender, create, upload, or otherwise disseminate content through Virtrolio that is deemed not to comply with our Terms or relevant policies and laws, the onus for the act remains on you regardless of the transfer of data ownership. The contents of a message are still associated with your account even after it has been sent to a receiver, and any investigation, inquiry, and consequences will be directed towards you, the sender. Receivers have the ability and right to flag or report a message they have received. "); 3866 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3867 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](82, "h3"); 3868 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](83, "YOUR RIGHTS"); 3869 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3870 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](84, "p"); 3871 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](85, " If you are a European resident, you have the right to access personal information we hold about you and to ask that your personal information be corrected, updated, or deleted. Please contact us at the address below for more information. "); 3872 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3873 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](86, "h3"); 3874 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](87, "CHANGES"); 3875 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3876 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](88, "p"); 3877 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](89, " We may update this privacy policy from time to time in order to reflect, for example, changes to our practices or for other operational, legal or regulatory reasons. "); 3878 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3879 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](90, "h3"); 3880 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](91, "CONTACT US"); 3881 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3882 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](92, "p"); 3883 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](93, " For more information about our privacy practices, or if you have questions, comments, or complaints, please contact us by e-mail at "); 3884 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](94, "a", 10); 3885 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](95, "[email protected]"); 3886 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3887 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](96, " or visit our Contact Us page for alternative options. "); 3888 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3889 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](97, "br"); 3890 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3891 } }, styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJwcml2YWN5LXBvbGljeS5jb21wb25lbnQuY3NzIn0= */"] }); 3892 3893 3894/***/ }), 3895 3896/***/ 79668: 3897/*!**************************************************!*\ 3898 !*** ./src/app/pages/rejecc/rejecc.component.ts ***! 3899 \**************************************************/ 3900/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3901 3902"use strict"; 3903__webpack_require__.r(__webpack_exports__); 3904/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3905/* harmony export */ "RejeccComponent": function() { return /* binding */ RejeccComponent; } 3906/* harmony export */ }); 3907/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 37716); 3908/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 3909/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ 39895); 3910 3911 3912 3913class RejeccComponent { 3914 constructor(title) { 3915 this.title = title; 3916 } 3917 ngOnInit() { 3918 this.title.setTitle('You seem familiar... | Virtrolio'); 3919 } 3920}
3921RejeccComponent.ɵfac = function RejeccComponent_Factory(t) { return new (t || RejeccComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__.Title)); }; 3922RejeccComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: RejeccComponent, selectors: [["app-rejecc"]], decls: 14, vars: 0, consts: [[1, "container", "vertical-center", "montserrat"], [1, "row", "justify-content-center", "mx-3", "mt-3"], [1, "display-text"], [1, "row", "justify-content-center", "mx-3"], [1, "display-body-text"], ["alt", "Message already sent image", "id", "graphic", "src", "../../../assets/images/Rejecc.svg"], [1, "row", "justify-content-center", "my-3"], ["routerLink", "", 1, "btn-lg", "btn-primary", "mt-5"]], template: function RejeccComponent_Template(rf, ctx) { if (rf & 1) { 3923 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); 3924 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 1); 3925 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "h1", 2); 3926 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](3, "You seem familiar..."); 3927 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3928 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3929 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "div", 3); 3930 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](5, "p", 4); 3931 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](6, " You've already signed this virtrolio with this account!"); 3932 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](7, "br"); 3933 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](8, "Ask your friend to delete your previous message if you want to send another one. "); 3934 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3935 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3936 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](9, "div", 1); 3937 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](10, "img", 5); 3938 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3939 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](11, "div", 6); 3940 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](12, "button", 7); 3941 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](13, "Back to Home"); 3942 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3943 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3944 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 3945 } }, directives: [_angular_router__WEBPACK_IMPORTED_MODULE_2__.RouterLink], styles: ["#graphic[_ngcontent-%COMP%] {\n height: 10em;\n}\n\n#title-text[_ngcontent-%COMP%] {\n font-size: 2.5em;\n text-align: center;\n}\n\n#subtitle-text[_ngcontent-%COMP%] {\n font-size: large;\n text-align: center;\n}\n\n\n\n@media only screen and (max-width: 768px) {\n #graphic[_ngcontent-%COMP%] {\n height: 5em;\n }\n\n #title-text[_ngcontent-%COMP%] {\n font-size: 2em;\n }\n\n #subtitle-text[_ngcontent-%COMP%] {\n font-size: 1em;\n }\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlamVjYy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEI7O0FBRUEsV0FBVzs7QUFDWDtFQUNFO0lBQ0UsV0FBVztFQUNiOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7QUFDRiIsImZpbGUiOiJyZWplY2MuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNncmFwaGljIHtcbiAgaGVpZ2h0OiAxMGVtO1xufVxuXG4jdGl0bGUtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMi41ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuI3N1YnRpdGxlLXRleHQge1xuICBmb250LXNpemU6IGxhcmdlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIE1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAjZ3JhcGhpYyB7XG4gICAgaGVpZ2h0OiA1ZW07XG4gIH1cblxuICAjdGl0bGUtdGV4dCB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gIH1cblxuICAjc3VidGl0bGUtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gIH1cbn1cbiJdfQ== */"] }); 3946 3947 3948/***/ }), 3949 3950/***/ 65814: 3951/*!******************************************************!*\
3952 !*** ./src/app/pages/settings/settings.component.ts ***! 3953 \******************************************************/ 3954/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3955 3956"use strict"; 3957__webpack_require__.r(__webpack_exports__); 3958/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3959/* harmony export */ "SettingsComponent": function() { return /* binding */ SettingsComponent; } 3960/* harmony export */ }); 3961/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tslib */ 64762); 3962/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ 15257); 3963/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 37716); 3964/* harmony import */ var _core_auth_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/auth.service */ 87341); 3965/* harmony import */ var _core_msg_io_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/msg-io.service */ 84468); 3966/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 3967/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/router */ 39895); 3968 3969 3970 3971 3972 3973 3974 3975class SettingsComponent { 3976 constructor(authService, msgIoService, sanitizer, title) { 3977 this.authService = authService; 3978 this.msgIoService = msgIoService; 3979 this.sanitizer = sanitizer; 3980 this.title = title; 3981 } 3982 static decodeHtml(html) { 3983 const txt = document.createElement('textarea'); 3984 txt.innerHTML = html; 3985 return txt.value; 3986 } 3987 ngOnInit() { 3988 this.title.setTitle('Settings | Virtrolio'); 3989 } 3990 ngOnDestroy() { 3991 $('#download').modal('hide'); 3992 $('#download-error').modal('hide'); 3993 $('#delete-error').modal('hide'); 3994 } 3995 /** 3996 * Converts the user's data and messages into JSONs and changes the href of their respective buttons to permit 3997 * downloading of the data. 3998 */ 3999 generateDownloads() { 4000 return (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__awaiter)(this, void 0, void 0, function* () { 4001 const downloadModal = $('#download'); 4002 const exportErrorModal = $('#download-error'); 4003 try { 4004 // Get data 4005 // Looser types is to allow the message array to be replaced with a single error if there are no messages 4006 let messages = yield this.msgIoService 4007 .getMessages() 4008 .pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_3__.take)(1)) 4009 .toPromise(); 4010 const userData = yield this.authService.getUserData(); 4011 // Convert encoded text to normal text 4012 if (messages) { 4013 messages.forEach((message) => { 4014 message.contents = SettingsComponent.decodeHtml(message.contents); 4015 }); 4016 } 4017 else { 4018 messages = [ 4019 { 4020 error: 'No messages found', 4021 }, 4022 ]; 4023 } 4024 // Convert data to JSON 4025 const messagesJSON = JSON.stringify(messages, null, 2); 4026 const userJSON = JSON.stringify(userData, null, 2); 4027 // Set download buttons 4028 this.downloadMessagesData = this.sanitizer.bypassSecurityTrustUrl('data:text/json;charset=UTF-8,' + encodeURIComponent(messagesJSON)); 4029 this.downloadUserData = this.sanitizer.bypassSecurityTrustUrl('data:text/json;charset=UTF-8,' + encodeURIComponent(userJSON)); 4030 downloadModal.modal('show'); 4031 } 4032 catch (e) { 4033 this.exportErrorText = e; 4034 exportErrorModal.modal('show'); 4035 return; 4036 } 4037 }); 4038 } 4039} 4040SettingsComponent.ɵfac = function SettingsComponent_Factory(t) { return new (t || SettingsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdirectiveInject"](_core_auth_service__WEBPACK_IMPORTED_MODULE_0__.AuthService), _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdirectiveInject"](_core_msg_io_service__WEBPACK_IMPORTED_MODULE_1__.MsgIoService), _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_5__.DomSanitizer), _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_5__.Title)); }; 4041SettingsComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdefineComponent"]({ type: SettingsComponent, selectors: [["app-settings"]], decls: 132, vars: 6, consts: [[1, "container", "py-5", "mb-5", "montserrat"], [1, "row", "d-flex", "justify-content-center"], [1, "col-sm-12", "col-md-8"], [1, "card", "shadow", "border", "p-3"], [1, "card-body"], [1, "mb-2"], ["type", "button", 1, "btn", "btn-info", 3, "click"], ["href", "/privacy-policy"], ["href", "mailto:[email protected]", "target", "_blank"], ["data-target", "#delete-error", "data-toggle", "modal", "type", "button", 1, "btn", "btn-danger"], ["aria-hidden", "true", "aria-labelledby", "download-label", "id", "download", "role", "dialog", "tabindex", "-1", 1, "modal", "fade"], [1, "modal-dialog", "modal-dialog-centered"], [1, "modal-content"], [1, "modal-header"], ["id", "download-label", 1, "modal-title"], ["aria-label", "Close", "data-dismiss", "modal", "type", "button", 1, "close"], ["aria-hidden", "true"], [1, "modal-body"], [1, "modal-footer"], ["download", "user.json", "title", "Download User Data", 1, "btn", "btn-info", 3, "href"], ["download", "messages.json", "title", "Download Messages", 1, "btn", "btn-info", 3, "href"], ["data-dismiss", "modal", "type", "button", 1, "btn", "btn-secondary"], ["aria-hidden", "true", "aria-labelledby", "download-error-label", "id", "download-error", "role", "dialog", "tabindex", "-1", 1, "modal", "fade"], ["id", "download-error-label", 1, "modal-title"], ["data-dismiss", "modal", "routerLink", "/contact"], ["href", "mailto:[email protected]", "target", "_blank", "type", "button", 1, "btn", "btn-primary"], ["data-dismiss", "modal", "data-target", "#delete-error-modal", "data-toggle", "modal", "type", "button", 1, "btn", "btn-secondary"], ["aria-hidden", "true", "aria-labelledby", "delete-error-label", "id", "delete-error", "role", "dialog", "tabindex", "-2", 1, "modal", "fade"], ["id", "delete-error-label", 1, "modal-title"], ["target", "_blank", "type", "button", 1, "btn", "btn-danger", 3, "href"]], template: function SettingsComponent_Template(rf, ctx) { if (rf & 1) { 4042 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](0, "div", 0); 4043 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](1, "div", 1); 4044 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](2, "div", 2); 4045 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](3, "div", 3); 4046 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](4, "div", 4); 4047 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](5, "h2", 5); 4048 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](6, "Settings"); 4049 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4050 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelement"](7, "hr"); 4051 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](8, "h2"); 4052 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](9, "Download your Data"); 4053 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4054 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](10, "p"); 4055 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](11, " Clicking the button below will allow you to download all data associated with you that is stored on Virtrolio. This data includes your user data and messages that you have received. Note that this does not include messages written "); 4056 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](12, "b"); 4057 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](13, "by"); 4058 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4059 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](14, " you, as those messages are owned by the message recipient. "); 4060 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4061 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](15, "p"); 4062 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](16, " The data will be provided in one of several file formats including .zip, .json, .csv, .txt or .xlsx. You may need additional software to open some of these file types. "); 4063 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](17, "u"); 4064 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](18, "Virtrolio will not make any re
4064commendations on what software to use."); 4065 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4066 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4067 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](19, "p"); 4068 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](20, "b"); 4069 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](21, "Clicking the button below will generate your data. Please ensure you want to proceed before clicking the button."); 4070 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4071 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4072 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](22, "button", 6); 4073 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵlistener"]("click", function SettingsComponent_Template_button_click_22_listener() { return ctx.generateDownloads(); }); 4074 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](23, " Request Data "); 4075 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4076 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelement"](24, "hr"); 4077 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](25, "h2"); 4078 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](26, "Delete Your Virtrolio Account"); 4079 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4080 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](27, "h6"); 4081 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](28, "b"); 4082 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](29, "READ CAREFULLY:"); 4083 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4084 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4085 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](30, "p"); 4086 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](31, " The button below will request the deletion of your account on Virtrolio, the data associated with your account, and any messages that you have received. It will NOT delete messages sent by you since those messages are owned by the message recipient, as per our "); 4087 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](32, "a", 7); 4088 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](33, "Privacy Policy"); 4089 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4090 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](34, ". If you would like these to be deleted, please ask the message recipient to delete it. "); 4091 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4092 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](35, "p"); 4093 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](36, " If you have any questions, please email us directly at "); 4094 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](37, "a", 8); 4095 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](38, "[email protected]"); 4096 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4097 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](39, ". "); 4098 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4099 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](40, "button", 9); 4100 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](41, " Delete Account "); 4101 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4102 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4103 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4104 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4105 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4106 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4107 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](42, "div", 10); 4108 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](43, "div", 11); 4109 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](44, "div", 12); 4110 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](45, "div", 13); 4111 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](46, "h5", 14); 4112 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](47, "Data Export"); 4113 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4114 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](48, "button", 15); 4115 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](49, "span", 16); 4116 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](50, "\u00D7"); 4117 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4118 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4119 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4120 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](51, "div", 17); 4121 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](52, "p"); 4122 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](53, " Your data has been prepared. Please use the buttons below to download your data. "); 4123 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4124 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](54, "p"); 4125 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](55, "b"); 4126 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](56); 4127 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4128 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4129 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4130 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](57, "div", 18); 4131 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](58, "a", 19); 4132 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](59, " Download User Data"); 4133 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4134 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](60, "a", 20); 4135 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](61, " Download Messages"); 4136 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4137 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](62, "button", 21); 4138 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](63, " Close "); 4139 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4140 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4141 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4142 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4143 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4144 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](64, "div", 22); 4145 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](65, "div", 11); 4146 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](66, "div", 12); 4147 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](67, "div", 13); 4148 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](68, "h5", 23); 4149 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](69, "Data Export Error"); 4150 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4151 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](70, "button", 15); 4152 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](71, "span", 16); 4153 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](72, "\u00D7"); 4154 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4155 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4156 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4157 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](73, "div", 17); 4158 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](74, "p"); 4159 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](75, "Oops! It looks like something went wrong during the data export."); 4160 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4161 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](76, "p"); 4162 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](77, " Here are the details of the error that you can pass along to our team through the "); 4163 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](78, "a", 24); 4164 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](79, "Contact Us"); 4165 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4166 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](80, " page if required: "); 4167 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4168 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](81, "p"); 4169 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](82, "b"); 4170 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](83); 4171 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4172 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4173 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](84, "p"); 4174 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](85, "em"); 4175 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](86, "Please close this window and try again."); 4176 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4177 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4178 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](87, "p"); 4179 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](88, " Also, make sure that your internet connection is working properly, and that there aren't any firewalls on your computer that c
4179ould be blocking the download. "); 4180 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4181 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](89, "p"); 4182 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](90, " If the error persists, please click the button below to send an email to the support team, or email us directly at "); 4183 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](91, "a", 8); 4184 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](92, "[email protected]"); 4185 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4186 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](93, ". "); 4187 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4188 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4189 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](94, "div", 18); 4190 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](95, "a", 25); 4191 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](96, "Email Us"); 4192 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4193 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](97, "button", 26); 4194 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](98, " Close "); 4195 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4196 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4197 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4198 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4199 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4200 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](99, "div", 27); 4201 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](100, "div", 11); 4202 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](101, "div", 12); 4203 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](102, "div", 13); 4204 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](103, "h5", 28); 4205 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](104, "Account Deletion"); 4206 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4207 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](105, "button", 15); 4208 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](106, "span", 16); 4209 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](107, "\u00D7"); 4210 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4211 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4212 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4213 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](108, "div", 17); 4214 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](109, "p"); 4215 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](110, "u"); 4216 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](111, "All requests for account deletion "); 4217 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](112, "em"); 4218 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](113, "must"); 4219 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4220 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](114, " be sent via email."); 4221 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4222 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4223 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](115, "p"); 4224 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](116, " If you want to download your data before deleting your account, please use the Request Data function that is also on this page. You will need to close this modal to see it. "); 4225 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4226 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](117, "p"); 4227 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](118, "b"); 4228 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](119, "By clicking the 'Request Account Deletion' button below, I understand that my data will be removed PERMANENTLY. I also understand that I will NOT be able to re
4228cover, download or otherwise access my data after it is deleted."); 4229 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4230 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4231 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](120, "p"); 4232 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](121, " If you are sure that you want to proceed, click the 'Request Account Deletion' button below to send us an email. "); 4233 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4234 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](122, "p"); 4235 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](123, " If you have any questions, please email us directly at "); 4236 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](124, "a", 8); 4237 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](125, "[email protected]"); 4238 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4239 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](126, ". "); 4240 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4241 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4242 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](127, "div", 18); 4243 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](128, "a", 29); 4244 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](129, "Request Account Deletion"); 4245 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4246 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](130, "button", 21); 4247 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](131, " Close "); 4248 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4249 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4250 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4251 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4252 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4253 } if (rf & 2) { 4254 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](56); 4255 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtextInterpolate"](ctx.exportErrorText); 4256 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](2); 4257 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("href", ctx.downloadUserData, _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵsanitizeUrl"]); 4258 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](2); 4259 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("href", ctx.downloadMessagesData, _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵsanitizeUrl"]); 4260 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](23); 4261 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtextInterpolate"](ctx.exportErrorText); 4262 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](45); 4263 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵpropertyInterpolate2"]("href", "mailto:[email protected]?subject=Account Deletion%20-%20", ctx.authService.uid(), "\n &body=UID:%20", ctx.authService.uid(), "%0AReason for request:", _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵsanitizeUrl"]); 4264 } }, directives: [_angular_router__WEBPACK_IMPORTED_MODULE_6__.RouterLinkWithHref], styles: [".container[_ngcontent-%COMP%] {\n line-height: 1.6;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNldHRpbmdzLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBZ0I7QUFDbEIiLCJmaWxlIjoic2V0dGluZ3MuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250YWluZXIge1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuIl19 */"] }); 4265 4266 4267/***/ }), 4268 4269/***/ 83964: 4270/*!********************************************************************************!*\ 4271 !*** ./src/app/pages/signing-auth-redirect/signing-auth-redirect.component.ts ***! 4272 \********************************************************************************/ 4273/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 4274 4275"use strict"; 4276__webpack_require__.r(__webpack_exports__); 4277/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4278/* harmony export */ "SigningAuthRedirectComponent": function() { return /* binding */ SigningAuthRedirectComponent; } 4279/* harmony export */ }); 4280/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 37716); 4281/* harmony import */ var src_app_core_auth_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! src/app/core/auth.service */ 87341); 4282/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ 39895); 4283/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 4284 4285 4286 4287 4288class SigningAuthRedirectComponent { 4289 constructor(authService, route, title) { 4290 this.authService = authService; 4291 this.route = route; 4292 this.title = title; 4293 } 4294 goToSigning() { 4295 // noinspection JSIgnoredPromiseFromCall 4296 this.authService.login('/signing', { uid: this.uid, key: this.key }); 4297 } 4298 ngOnInit() { 4299 this.title.setTitle('Please Sign In. | Virtrolio'); 4300 this.route.queryParams.subscribe((params) => { 4301 this.uid = params.uid; 4302 this.key = params.key; 4303 }); 4304 } 4305} 4306SigningAuthRedirectComponent.ɵfac = function SigningAuthRedirectComponent_Factory(t) { return new (t || SigningAuthRedirectComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](src_app_core_auth_service__WEBPACK_IMPORTED_MODULE_0__.AuthService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_2__.ActivatedRoute), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__.Title)); }; 4307SigningAuthRedirectComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SigningAuthRedirectComponent, selectors: [["app-friend-link"]], decls: 25, vars: 0, consts: [[1, "container", "vertical-center", "montserrat"], ["id", "title", 1, "row", "py-3", "mx-3", "justify-content-center"], [1, "display-text"], [1, "row", "mx-2", "mt-3", "mb-3", "justify-content-center"], ["alt", "Mail sent image", "id", "pen-graphic", "src", "../../../assets/images/FriendLink-Light.svg"], ["id", "buttons", 1, "row", "justify-content-center", "mb-3"], ["type", "button", 1, "btn", "btn-outline-dark", "google-sign-in-btn", "col-sm-4", "col-md-3", 3, "click"], ["alt", "Google Logo", "height", "23", "src", "../../../assets/images/icons/google.svg", "width", "23"], ["routerLink", "/", "type", "button", 1, "col-sm-4", "col-md-3", "btn", "btn-primary"], ["id", "redirect-disclaimer-text", 1, "text-center"], [1, "display-body-text"], ["href", "/terms-of-service"]], template: function SigningAuthRedirectComponent_Template(rf, ctx) { if (rf & 1) { 4308 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 0); 4309 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](1, "div", 1); 4310 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](2, "h1", 2); 4311 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](3, " We see you\u2019re trying to sign your friend\u2019s virtrolio."); 4312 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](4, "br"); 4313 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](5, "We need you to sign "); 4314 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](6, "em"); 4315 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](7, "in"); 4316 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4317 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](8, " first. "); 4318 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4319 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4320 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](9, "div", 3); 4321 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](10, "img", 4); 4322 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4323 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](11, "div", 5); 4324 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](12, "button", 6); 4325 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("click", function SigningAuthRedirectComponent_Template_button_click_12_listener() { return ctx.goToSigning(); }); 4326 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](13, "img", 7);
4327 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](14, "span"); 4328 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](15, "Sign in with Google"); 4329 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4330 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4331 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](16, "button", 8); 4332 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](17, " Home Page "); 4333 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4334 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4335 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](18, "div", 9); 4336 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](19, "p", 10); 4337 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](20, " By signing up for/signing into our service, you are agreeing to our "); 4338 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](21, "a", 11); 4339 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](22, "Terms of Service."); 4340 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4341 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4342 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](23, "p", 10); 4343 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](24, " At this time, we do not support signing in using providers other than Google. "); 4344 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4345 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4346 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4347 } }, directives: [_angular_router__WEBPACK_IMPORTED_MODULE_2__.RouterLink], styles: ["#pen-graphic[_ngcontent-%COMP%] {\n height: 15em;\n}\n\n#buttons[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] {\n \n margin: 2em 1em 0;\n font-size: 1.1em;\n}\n\n#title-text[_ngcontent-%COMP%] {\n \n text-align: center;\n font-size: 2em;\n}\n\n\n\n@media only screen and (max-width: 768px) {\n #pen-graphic[_ngcontent-%COMP%] {\n height: 10em;\n }\n\n #title-text[_ngcontent-%COMP%] {\n font-size: 1.5em;\n }\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpZ25pbmctYXV0aC1yZWRpcmVjdC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLGlCQUFpQjtFQUNqQixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSw0REFBNEQ7RUFDNUQsa0JBQWtCO0VBQ2xCLGNBQWM7QUFDaEI7O0FBRUEsV0FBVzs7QUFDWDtFQUNFO0lBQ0UsWUFBWTtFQUNkOztFQUVBO0lBQ0UsZ0JBQWdCO0VBQ2xCO0FBQ0YiLCJmaWxlIjoic2lnbmluZy1hdXRoLXJlZGlyZWN0LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjcGVuLWdyYXBoaWMge1xuICBoZWlnaHQ6IDE1ZW07XG59XG5cbiNidXR0b25zID4gYnV0dG9uIHtcbiAgLyogRm9yIGVhY2ggYnV0dG9uICovXG4gIG1hcmdpbjogMmVtIDFlbSAwO1xuICBmb250LXNpemU6IDEuMWVtO1xufVxuXG4jdGl0bGUtdGV4dCB7XG4gIC8qIFdlIHNlZSB5b3XigJlyZSB0cnlpbmcgdG8gc2lnbiB5b3VyIGZyaWVuZOKAmXMgdmlydHJvbGlvLi4uICovXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAyZW07XG59XG5cbi8qIE1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAjcGVuLWdyYXBoaWMge1xuICAgIGhlaWdodDogMTBlbTtcbiAgfVxuXG4gICN0aXRsZS10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICB9XG59XG4iXX0= */"] }); 4348 4349 4350/***/ }), 4351 4352/***/ 27286: 4353/*!********************************************************************!*\ 4354 !*** ./src/app/pages/signing/error-alert/error-alert.component.ts ***! 4355 \********************************************************************/ 4356/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 4357 4358"use strict"; 4359__webpack_require__.r(__webpack_exports__); 4360/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4361/* harmony export */ "ErrorAlertComponent": function() { return /* binding */ ErrorAlertComponent; } 4362/* harmony export */ }); 4363/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 37716); 4364/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ 38583); 4365/* harmony import */ var ngx_bootstrap_alert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ngx-bootstrap/alert */ 33947); 4366 4367 4368 4369function ErrorAlertComponent_div_0_Template(rf, ctx) { if (rf & 1) { 4370 const _r3 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵgetCurrentView"](); 4371 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 1); 4372 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](1, "alert", 2); 4373 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("onClosed", function ErrorAlertComponent_div_0_Template_alert_onClosed_1_listener() { const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵrestoreView"](_r3); const alert_r1 = restoredCtx.$implicit; const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); return ctx_r2.onClosed(alert_r1); }); 4374 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](2, "strong"); 4375 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](3); 4376 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4377 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](4); 4378 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4379 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); 4380} if (rf & 2) { 4381 const alert_r1 = ctx.$implicit; 4382 const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); 4383 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 4384 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("type", alert_r1.type)("dismissOnTimeout", alert_r1.timeout)("dismissible", ctx_r0.dismissible); 4385 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); 4386 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate"](alert_r1.head); 4387 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); 4388 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"](" ", alert_r1.msg, ""); 4389} } 4390class ErrorAlertComponent { 4391 constructor() { 4392 this.dismissible = true; 4393 this.alerts = []; 4394 } 4395 addImageCountLimit() { 4396 this.alerts.push({ 4397 type: 'danger', 4398 head: 'Hold On!', 4399 msg: 'You can only add up to 3 images', 4400 timeout: 10000, 4401 }); 4402 } 4403 addImageSizeLimit(fileName) { 4404 this.alerts.push({ 4405 type: 'danger', 4406 head: 'Woah there,', 4407 msg: `${fileName} is larger than 8 MB in size`, 4408 timeout: 10000, 4409 }); 4410 } 4411 addUnsupportedFileType(fileName) { 4412 this.alerts.push({ 4413 type: 'danger', 4414 head: 'Wait, ', 4415 msg: `${fileName} is not a supported file type. Please only select .png, .jpg, .jpeg, .tif, .tiff, .bmp, .gif, .jfif, .pjp files`, 4416 timeout: 10000, 4417 }); 4418 } 4419 onClosed(dismissedAlert) { 4420 this.alerts = this.alerts.filter((alert) => alert !== dismissedAlert); 4421 } 4422} 4423ErrorAlertComponent.ɵfac = function ErrorAlertComponent_Factory(t) { return new (t || ErrorAlertComponent)(); }; 4424ErrorAlertComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: ErrorAlertComponent, selectors: [["app-error-alert"]], decls: 1, vars: 1, consts: [["class", "m-2", 4, "ngFor", "ngForOf"], [1, "m-2"], [3, "type", "dismissOnTimeout", "dismissible", "onClosed"]], template: function ErrorAlertComponent_Template(rf, ctx) { if (rf & 1) { 4425 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](0, ErrorAlertComponent_div_0_Template, 5, 5, "div", 0); 4426 } if (rf & 2) { 4427 _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngForOf", ctx.alerts); 4428 } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_2__.NgForOf, ngx_bootstrap_alert__WEBPACK_IMPORTED_MODULE_0__.AlertComponent], styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJlcnJvci1hbGVydC5jb21wb25lbnQuY3NzIn0= */"] }); 4429 4430 4431/***/ }), 4432 4433/***/ 16843: 4434/*!********************************************************************!*\ 4435 !*** ./src/app/pages/signing/image-modal/image-modal.component.ts ***! 4436 \********************************************************************/ 4437/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 4438 4439"use strict"; 4440__webpack_require__.r(__webpack_exports__); 4441/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4442/* harmony export */ "ImageModalComponent": function() { return /* binding */ ImageModalComponent; } 4443/* harmony export */ }); 4444/* harmony import */ var _error_alert_error_alert_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../error-alert/error-alert.component */ 27286); 4445/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 37716); 4446/* harmony import */ var _core_signing_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../core/signing.service */ 89214); 4447/* harmony import */ var ngx_bootstrap_modal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ngx-bootstrap/modal */ 63301); 4448/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/common */ 38583); 4449/* harmony import */ var ngx_bootstrap_tooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ngx-bootstrap/tooltip */ 25575); 4450 4451 4452 4453 4454 4455 4456 4457const _c0 = ["imageModal"]; 4458const _c1 = ["imgUploadInput"]; 4459function ImageModalComponent_h5_15_Template(rf, ctx) { if (rf & 1) { 4460 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](0, "h5"); 4461 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](1, " No images selected "); 4462 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4463} } 4464function ImageModalComponent_img_16_Template(rf, ctx) { if (rf & 1) { 4465 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelement"](0, "img", 24); 4466} } 4467function ImageModalComponent_img_17_Template(rf, ctx) { if (rf & 1) { 4468 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelement"](0, "img", 25); 4469} if (rf & 2) { 4470 const url_r5 = ctx.$implicit; 4471 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("src", url_r5, _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵsanitizeUrl"]); 4472} } 4473const _c2 = function () { return { ignoreBackdropClick: true, backdrop: "static" }; }; 4474class ImageModalComponent { 4475 constructor(signingService) { 4476 this.signingService = signingService; 4477 } 4478 ngOnInit() { } 4479 showImageModal() { 4480 this.imageModal.show(); 4481 } 4482 hideImageModal() { 4483 this.imageModal.hide(); 4484 } 4485 onClearImages() { 4486 this.signingService.images = []; 4487 this.signingService.imageURLs = []; 4488 this.imgUploadInput.nativeElement.value = ''; 4489 } 4490 onSelectFiles(e) { 4491 const eventTarget = e.target; 4492 const files = Array.from(eventTarget.files); 4493 if (files.length + this.signingService.imageURLs.length > 3) { 4494 this.ErrorAlertComponent.addImageCountLimit(); 4495 return; 4496 } 4497 if (files) { 4498 for (const item of files) { 4499 // Error handling for files over 8MiB 4500 if (item.size > ImageModalComponent.MAX_FILE_SIZE) { 4501 this.ErrorAlertComponent.addImageSizeLimit(item.name); 4502 return; 4503 } 4504 // Error handling for unsupported file types 4505 if (ImageModalComponent.ACCEPTED_FILE_TYPES.indexOf(item.type) === -1) { 4506 this.ErrorAlertComponent.addUnsupportedFileType(item.name); 4507 return; 4508 } 4509 const reader = new FileReader();
4510 reader.readAsDataURL(item); 4511 reader.onload = (event) => { 4512 const stringURL = event.target.result.toString(); 4513 this.signingService.imageURLs.push(stringURL); 4514 }; 4515 this.signingService.images.push(item); 4516 } 4517 } 4518 } 4519} 4520ImageModalComponent.MAX_FILE_SIZE = 8 * 1024 * 1024; // 8 MiB in bytes 4521ImageModalComponent.ACCEPTED_FILE_TYPES = [ 4522 'image/png', 4523 'image/jpg', 4524 'image/jpeg', 4525 'image/tif', 4526 'image/tiff', 4527 'image/bmp', 4528 'image/gif', 4529 'image/jfif', 4530 'image/pjp', 4531]; 4532ImageModalComponent.ɵfac = function ImageModalComponent_Factory(t) { return new (t || ImageModalComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdirectiveInject"](_core_signing_service__WEBPACK_IMPORTED_MODULE_1__.SigningService)); }; 4533ImageModalComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdefineComponent"]({ type: ImageModalComponent, selectors: [["app-image-modal"]], viewQuery: function ImageModalComponent_Query(rf, ctx) { if (rf & 1) { 4534 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵviewQuery"](_error_alert_error_alert_component__WEBPACK_IMPORTED_MODULE_0__.ErrorAlertComponent, 5); 4535 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵviewQuery"](_c0, 5); 4536 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵviewQuery"](_c1, 5); 4537 } if (rf & 2) { 4538 let _t; 4539 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵloadQuery"]()) && (ctx.ErrorAlertComponent = _t.first); 4540 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵloadQuery"]()) && (ctx.imageModal = _t.first); 4541 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵloadQuery"]()) && (ctx.imgUploadInput = _t.first); 4542 } }, decls: 32, vars: 7, consts: [["bsModal", "", "tabindex", "-1", "role", "dialog", "aria-labelledby", "dialog-child-name", 1, "modal", "fade", 3, "config"], ["imageModal", "bs-modal"], ["role", "dialog", 1, "modal-dialog", "modal-dialog-centered", "modal-lg"], [1, "modal-content"], [1, "modal-header"], [1, "embed-photo-title"], ["type", "button", "data-dismiss", "modal", "aria-label", "Close", 1, "close", 3, "click"], ["aria-hidden", "true"], ["id", "embed-photo-div", 1, "modal-body", "align-items-center", "p-3"], [1, "row"], [1, "col-md-12", "my-6", "px-lg-5", "px-3", "text-center"], [1, "col-md-12", "text-center"], [4, "ngIf"], ["src", "../../../../assets/images/girl-photos-folder.svg", "alt", "girl with photos folder graphic", "id", "no-images-graphic", 4, "ngIf"], ["class", "col-4 uploaded-image", "alt", "selected image", 3, "src", 4, "ngFor", "ngForOf"], [1, "col-md-12", "my-6", "px-lg-5", "px-3", "text-center", "image-buttons"], ["placement", "bottom", "triggers", "pointerenter:pointerout hover focus", 1, "btn", "btn-primary", "mx-2", 3, "disabled", "tooltip", "click"], ["type", "file", "accept", "image/bmp, image/gif, image/jfif, image/pjp, image/png, image/jpg, image/jpeg, image/tif, image/tiff", "id", "img-upload-input", "multiple", "", 1, "file-upload", "d-none", 3, "change"], ["imgUploadInput", ""], ["type", "button", 1, "btn", "btn-secondary", "mx-2", 3, "click"], [1, "modal-footer"], [1, "row", "w-100"], [1, "col-12", "p-0"], ["type", "button", 1, "btn", "btn-primary", "h-100", "float-right", 3, "click"], ["src", "../../../../assets/images/girl-photos-folder.svg", "alt", "girl with photos folder graphic", "id", "no-images-graphic"], ["alt", "selected image", 1, "col-4", "uploaded-image", 3, "src"]], template: function ImageModalComponent_Template(rf, ctx) { if (rf & 1) { 4543 const _r6 = _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵgetCurrentView"](); 4544 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](0, "div", 0, 1); 4545 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](2, "div", 2); 4546 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](3, "div", 3); 4547 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](4, "div", 4); 4548 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](5, "h5", 5); 4549 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](6, "Attach up to three images!"); 4550 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4551 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](7, "button", 6); 4552 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵlistener"]("click", function ImageModalComponent_Template_button_click_7_listener() { return ctx.hideImageModal(); }); 4553 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](8, "span", 7); 4554 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](9, "\u00D7"); 4555 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4556 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4557 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4558 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelement"](10, "app-error-alert"); 4559 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](11, "div", 8); 4560 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](12, "div", 9); 4561 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](13, "div", 10); 4562 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](14, "div", 11); 4563 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtemplate"](15, ImageModalComponent_h5_15_Template, 2, 0, "h5", 12); 4564 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtemplate"](16, ImageModalComponent_img_16_Template, 1, 0, "img", 13); 4565 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtemplate"](17, ImageModalComponent_img_17_Template, 1, 1, "img", 14); 4566 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4567 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4568 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4569 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](18, "div", 9); 4570 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](19, "div", 15); 4571 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](20, "span"); 4572 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](21, "button", 16); 4573 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵlistener"]("click", function ImageModalComponent_Template_button_click_21_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵrestoreView"](_r6); const _r4 = _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵreference"](24); return _r4.click(); }); 4574 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](22, " Add Images "); 4575 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4576 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4577 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](23, "input",
457717, 18); 4578 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵlistener"]("change", function ImageModalComponent_Template_input_change_23_listener($event) { return ctx.onSelectFiles($event); }); 4579 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4580 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](25, "button", 19); 4581 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵlistener"]("click", function ImageModalComponent_Template_button_click_25_listener() { return ctx.onClearImages(); }); 4582 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](26, " Clear Images "); 4583 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4584 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4585 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4586 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4587 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](27, "div", 20); 4588 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](28, "div", 21); 4589 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](29, "div", 22); 4590 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](30, "button", 23); 4591 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵlistener"]("click", function ImageModalComponent_Template_button_click_30_listener() { return ctx.hideImageModal(); }); 4592 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](31, " Save "); 4593 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4594 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4595 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4596 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4597 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4598 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4599 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 4600 } if (rf & 2) { 4601 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("config", _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵpureFunction0"](6, _c2)); 4602 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](15); 4603 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("ngIf", !ctx.signingService.imageURLs.length); 4604 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](1); 4605 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("ngIf", !ctx.signingService.imageURLs.length); 4606 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](1); 4607 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("ngForOf", ctx.signingService.imageURLs); 4608 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](4); 4609 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("disabled", ctx.signingService.imageURLs.length > 2)("tooltip", ctx.signingService.imageURLs.length > 2 ? "You cannot add more than 3 images." : ""); 4610 } }, directives: [ngx_bootstrap_modal__WEBPACK_IMPORTED_MODULE_2__.ModalDirective, _error_alert_error_alert_component__WEBPACK_IMPORTED_MODULE_0__.ErrorAlertComponent, _angular_common__WEBPACK_IMPORTED_MODULE_5__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_5__.NgForOf, ngx_bootstrap_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipDirective], styles: ["#img-upload-input[_ngcontent-%COMP%] {\n height: 100%;\n width: 100%;\n}\n\n.image-buttons[_ngcontent-%COMP%] {\n margin: 1em 0;\n position: absolute;\n bottom: 0;\n}\n\n#no-images-graphic[_ngcontent-%COMP%] {\n max-width: 100%;\n}\n\n#embed-photo-div[_ngcontent-%COMP%] {\n height: 20em;\n}\n\n#no-images-graphic[_ngcontent-%COMP%], .uploaded-image[_ngcontent-%COMP%] {\n max-height: 13em;\n -o-object-fit: contain;\n object-fit: contain;\n}\n\n.btn-primary.disabled[_ngcontent-%COMP%], .btn-primary[_ngcontent-%COMP%]:disabled {\n background-color: var(--accent) !important;\n border-color: var(--accent) !important;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltYWdlLW1vZGFsLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixTQUFTO0FBQ1g7O0FBRUE7RUFDRSxlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBOztFQUVFLGdCQUFnQjtFQUNoQixzQkFBbUI7S0FBbkIsbUJBQW1CO0FBQ3JCOztBQUVBOztFQUVFLDBDQUEwQztFQUMxQyxzQ0FBc0M7QUFDeEMiLCJmaWxlIjoiaW1hZ2UtbW9kYWwuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNpbWctdXBsb2FkLWlucHV0IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmltYWdlLWJ1dHRvbnMge1xuICBtYXJnaW46IDFlbSAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbn1cblxuI25vLWltYWdlcy1ncmFwaGljIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4jZW1iZWQtcGhvdG8tZGl2IHtcbiAgaGVpZ2h0OiAyMGVtO1xufVxuXG4jbm8taW1hZ2VzLWdyYXBoaWMsXG4udXBsb2FkZWQtaW1hZ2Uge1xuICBtYXgtaGVpZ2h0OiAxM2VtO1xuICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4uYnRuLXByaW1hcnkuZGlzYWJsZWQsXG4uYnRuLXByaW1hcnk6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50KSAhaW1wb3J0YW50O1xufVxuIl19 */"] }); 4611 4612 4613/***/ }), 4614 4615/***/ 63168: 4616/*!****************************************************!*\ 4617 !*** ./src/app/pages/signing/signing.component.ts ***! 4618 \****************************************************/ 4619/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 4620 4621"use strict"; 4622__webpack_require__.r(__webpack_exports__); 4623/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4624/* harmony export */ "SigningComponent": function() { return /* binding */ SigningComponent; } 4625/* harmony export */ }); 4626/* harmony import */ var _core_common_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/common.service */ 80150); 4627/* harmony import */ var _image_modal_image_modal_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./image-modal/image-modal.component */ 16843); 4628/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 37716); 4629/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/router */ 39895); 4630/* harmony import */ var src_app_core_auth_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! src/app/core/auth.service */ 87341); 4631/* harmony import */ var _core_signing_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../core/signing.service */ 89214); 4632/* harmony import */ var _core_msg_io_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../core/msg-io.service */ 84468); 4633/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 4634/* harmony import */ var ngx_device_detector__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ngx-device-detector */ 1135); 4635/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/common */ 38583); 4636/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/forms */ 3679); 4637/* harmony import */ var ngx_markdown__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ngx-markdown */ 76715); 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651function SigningComponent_div_1_Template(rf, ctx) { if (rf & 1) { 4652 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div", 63); 4653 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelement"](1, "div", 64); 4654 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4655} } 4656function SigningComponent_div_2_Template(rf, ctx) { if (rf & 1) { 4657 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div", 3); 4658 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](1, "div", 65); 4659 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](2, " The Virtrolio signing experience is better on a desktop or laptop computer! "); 4660 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](3, "strong"); 4661 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](4, "u"); 4662 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](5, "a", 66); 4663 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](6, "Why?"); 4664 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4665 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4666 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4667 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4668 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4669} } 4670const _c0 = function (a0) { return { color: a0 }; }; 4671function SigningComponent_span_12_Template(rf, ctx) { if (rf & 1) { 4672 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "span", 67); 4673 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](1); 4674 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4675} if (rf & 2) { 4676 const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnextContext"](); 4677 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵpureFunction1"](3, _c0, ctx_r3.signingService.charCountColor)); 4678 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); 4679 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtextInterpolate2"](" ", ctx_r3.signingService.charCount, " / ", ctx_r3.signingService.maxCharCount, " "); 4680} } 4681const _c1 = function (a0) { return { "font-family": a0 }; }; 4682function SigningComponent_span_21_Template(rf, ctx) { if (rf & 1) { 4683 const _r9 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵgetCurrentView"](); 4684 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "span"); 4685 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](1, "a", 68); 4686 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("click", function SigningComponent_span_21_Template_a_click_1_listener() { const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵrestoreView"](_r9); const font_r7 = restoredCtx.$implicit; const ctx_r8 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnextContext"](); return ctx_r8.signingService.selectFont(font_r7.key); }); 4687 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](2); 4688 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4689 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4690} if (rf & 2) { 4691 const font_r7 = ctx.$implicit; 4692 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); 4693 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵpureFunction1"](2, _c1, font_r7.key)); 4694 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); 4695 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtextInterpolate"](font_r7.key); 4696} } 4697function SigningComponent_span_55_Template(rf, ctx) { if (rf & 1) { 4698 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "span", 69); 4699 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](1); 4700 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4701} if (rf & 2) { 4702 const ctx_r5 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnextContext"](); 4703 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); 4704 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtextInterpolate"](ctx_r5.checkImageList(true)); 4705} } 4706const _c2 = function (a0) { return { "background-color": a0 }; }; 4707const _c3 = function (a0, a1, a2) { return { "background-color": a0, color: a1, "font-family": a2 }; }; 4708/** 4709 * Controls user interaction with the signing box, updating the preview display and sending the message when they 4710 * click on the 'Send' button. 4711 */ 4712class SigningComponent { 4713 constructor(route, authService, signingService, msgIo, router, title, deviceDetector) { 4714 this.route = route; 4715 this.authService = authService; 4716 this.signingService = signingService; 4717 this.msgIo = msgIo; 4718 this.router = router; 4719 this.title = title; 4720 this.deviceDetector = deviceDetector; 4721 this.name = 'your friend'; 4722 this.isSending = false; 4723 this.embedLink = ''; 4724 this.imageWidth = 50; 4725 this.copyButtonText = 'Copy'; 4726 } 4727 /** 4728 * Extract query parameters, maximum message length, fonts, and recipient username from appropriate services 4729 */ 4730 ngOnInit() { 4731 this.authService 4732 .redirectLoginUserCreation() 4733 .catch((error) => _core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(error)); 4734 this.route.queryParams.subscribe((params) => { 4735 this.uid = params.uid; 4736 this.key = params.key; 4737 }); 4738 this.authService 4739 .displayName(this.uid) 4740 .then((userName) => { 4741 this.name = userName; 4742 this.title.setTitle('Signing ' + userName + "'s Virtrolio | Virtrolio"); 4743 }) 4744 .catch((error) => alert(error)); 4745 this.signingService.resetDefaultValues();
4746 $('[data-toggle="popover"]').popover(); 4747 $('.popover-dismiss').popover({ 4748 trigger: 'focus', 4749 }); 4750 } 4751 ngOnDestroy() { 4752 $('#submit-confirm').modal('hide'); 4753 $('#info').modal('hide'); 4754 $('#embed-help').modal('hide'); 4755 $('#embed-photo').modal('hide'); 4756 $('#signing-experience').modal('hide'); 4757 } 4758 /** 4759 * Returns whether or not the user can navigate (safely) away 4760 * Returning true will navigate instantly 4761 * Returning false will prompt the user to confirm the navigation 4762 */ 4763 canDeactivate() { 4764 return !this.signingService.signingBoxText || !this.isSending; 4765 } 4766 /** 4767 * Resets image width slider value to 100 or 0 if the user tries to input a number that's too large 4768 */ 4769 checkSliderValue() { 4770 if (this.imageWidth > 100) { 4771 this.imageWidth = 100; 4772 } 4773 else if (this.imageWidth < 0) { 4774 this.imageWidth = 0; 4775 } 4776 } 4777 /** 4778 * Checks if the user has uploaded any images to the image modal 4779 */ 4780 checkImageList(numerical) { 4781 const urlList = this.signingService.imageURLs; 4782 if (urlList === undefined) { 4783 // Check if image modal component has not been rendered yet 4784 return numerical ? 0 : false; 4785 } 4786 else if (urlList.length === 0) { 4787 return numerical ? 0 : false; 4788 } 4789 else if (urlList.length > 0) { 4790 return numerical ? urlList.length : true; 4791 } 4792 else { 4793 _core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError('There was an error while checking your uploaded images'); 4794 } 4795 } 4796 /** 4797 * Creates a new blank message and fills in all the info before sending it 4798 * @param textbox - the textbox where the contents of the message are retrieved from (not the preview box) 4799 */ 4800 sendMsg(textbox) { 4801 const newMsg = this.msgIo.createBlankMessage(); 4802 newMsg.backColor = this.signingService.backgroundColor; 4803 newMsg.fontColor = this.signingService.textColor; 4804 newMsg.fontFamily = this.signingService.currentFont; 4805 newMsg.contents = textbox.value; 4806 newMsg.to = this.uid; 4807 // remove navigation popup 4808 this.isSending = true; 4809 this.msgIo 4810 .sendMessage(newMsg, this.key) 4811 .then(() => { 4812 this.isSending = false; 4813 this.router 4814 .navigate(['/msg-sent'], { queryParams: { name: this.name } }) 4815 .catch((e) => _core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(e)); 4816 }) 4817 .catch((error) => { 4818 this.isSending = false; 4819 _core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(error); 4820 }); 4821 } 4822 /** 4823 * Selects an inputElement's field and copies its contents to the clipboard, updating the button to confirm the copy 4824 * @param inputElement - the element to read from 4825 */ 4826 copyLink(inputElement) { 4827 inputElement.select(); 4828 inputElement.setSelectionRange(0, 10000); 4829 document.execCommand('copy'); 4830 this.copyButtonText = 'Copied!'; 4831 } 4832} 4833SigningComponent.ɵfac = function SigningComponent_Factory(t) { return new (t || SigningComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_6__.ActivatedRoute), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdirectiveInject"](src_app_core_auth_service__WEBPACK_IMPORTED_MODULE_2__.AuthService), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdirectiveInject"](_core_signing_service__WEBPACK_IMPORTED_MODULE_3__.SigningService), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdirectiveInject"](_core_msg_io_service__WEBPACK_IMPORTED_MODULE_4__.MsgIoService), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_6__.Router), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_7__.Title), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdirectiveInject"](ngx_device_detector__WEBPACK_IMPORTED_MODULE_8__.DeviceDetectorService)); }; 4834SigningComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdefineComponent"]({ type: SigningComponent, selectors: [["app-signing"]], viewQuery: function SigningComponent_Query(rf, ctx) { if (rf & 1) { 4835 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵviewQuery"](_image_modal_image_modal_component__WEBPACK_IMPORTED_MODULE_1__.ImageModalComponent, 5); 4836 } if (rf & 2) { 4837 let _t; 4838 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵloadQuery"]()) && (ctx.imageModalComponent = _t.first); 4839 } }, hostBindings: function SigningComponent_HostBindings(rf, ctx) { if (rf & 1) { 4840 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("beforeunload", function SigningComponent_beforeunload_HostBindingHandler() { return ctx.canDeactivate(); }, false, _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵresolveWindow"]); 4841 } }
4841, decls: 144, vars: 35, consts: [[1, "container", "py-4", "center-children", "vertical-center"], ["class", "d-flex justify-content-center", "id", "spinner-overlay-container", 4, "ngIf"], ["class", "row", 4, "ngIf"], [1, "row"], [1, "col-md-6", "order-md-1", "center-children"], [1, "row", "title-div", "vertical-center"], ["for", "signing-box"], ["autofocus", "", "id", "signing-box", "placeholder", "You must type something before you can hit send!", 1, "form-control", 3, "ngModel", "ngStyle", "keyup", "ngModelChange"], ["signingInputArea", ""], ["id", "char-count-display", 3, "ngStyle", 4, "ngIf"], [1, "col-md-12", "order-md-3"], ["id", "options", 1, "row", "justify-content-center"], [1, "dropdown"], ["aria-expanded", "false", "aria-haspopup", "true", "data-toggle", "dropdown", "id", "font-selector-dropdown", "type", "button", 1, "btn", "btn-secondary", "dropdown-toggle", 3, "ngStyle"], [1, "caret"], ["aria-labelledby", "font-selector-dropdown", 1, "dropdown-menu"], [4, "ngFor", "ngForOf"], ["id", "button-bold", "type", "button", 1, "btn", "btn-secondary", "btn-format", "mr-2", 3, "click"], ["id", "button-italics", "type", "button", 1, "btn", "btn-secondary", "btn-format", "mr-2", 3, "click"], ["id", "button-underline", "type", "button", 1, "btn", "btn-secondary", "btn-format", "mr-2", 3, "click"], ["id", "button-strikethrough", "type", "button", 1, "btn", "btn-secondary", "btn-format", "mr-2", 3, "click"], ["type", "button", 1, "btn", "btn-secondary", "btn-format", "mr-2", "icon-wrapper"], ["id", "font-color-text"], ["for", "color-picker-font", "hidden", ""], ["id", "color-picker-font", "name", "fontColorPicker", "type", "color", 1, "mr-2", 3, "ngModel", "value", "ngModelChange"], [1, "dynamic-color-bar", 3, "ngStyle"], ["alt", "fill color selector", "id", "fill-color-icon", "src", "../../../assets/images/icons/SigningIcon_fill-color.svg"], ["for", "color-picker-background", "hidden", ""], ["id", "color-picker-background", "name", "background-color-picker", "type", "color", 1, "mr-2", 3, "ngModel", "value", "ngModelChange"], ["tabindex", "0", "role", "button", "data-toggle", "popover", "data-trigger", "focus", "title", "Emojis", "data-html", "true", "data-content", "If you're on a\n desktop or laptop, click inside your message and press Windows + Period on Windows or Command + Control +\n Space on a Mac to open your computer's Emoji Keyboard!<br><br>If you're on a phone you should already have an\n emoji keyboard built into your keyboard! <br><br> Note: not all emojis may be supported; check\n <a href='https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md' target='_blank'>this list of\n supported emojis</a> to make sure! \u2764", 1, "btn", "btn-secondary", "btn-format", "mr-2", "icon-wrapper", "vertical-center"], ["id", "image-button-wrapper", 1, "position-relative"], ["type", "button", "id", "btn-photo", 1, "btn", "btn-format", "icon-wrapper", 3, "ngClass", "click"], ["alt", "image icon", "id", "image-icon", "src", "../../../assets/images/icons/SigningIcon_image.svg"], ["class", "d-flex align-items-center justify-content-center", "id", "image-notification-circle", 4, "ngIf"], ["type", "button", "id", "btn-info", "data-toggle", "modal", "data-target", "#info", 1, "btn", "btn-primary"], [1, "row", "mt-3", "justify-content-center"], ["data-target", "#submit-confirm", "data-toggle", "modal", "id", "send-button", "type", "button", 1, "btn", "btn-primary", "btn-send", 3, "disabled"], [1, "col-md-6", "order-md-2", "center-children"], [1, "row", "title-div", "mt-3", "mt-md-0", "vertical-center"], ["for", "preview-text"], ["emoji", "", "id", "preview-text", 3, "ngStyle", "data"], ["previewBoxArea", ""], ["aria-hidden", "true", "aria-labelledby", "submit-confirm-title", "id", "submit-confirm", "role", "dialog", "tabindex", "-1", 1, "modal", "fade"], ["role", "document", 1, "modal-dialog", "modal-dialog-centered"], [1, "modal-content"], [1, "modal-header"], ["id", "submit-confirm-title", 1, "modal-title"], ["aria-label", "Close", "data-dismiss", "modal", "type", "button", 1, "close"], ["aria-hidden", "true"], [1, "modal-body", 2, "text-align", "center"], ["href", "/terms-of-service", "target", "_blank"], ["href", "/privacy-policy", "target", "_blank"], [1, "row", "justify-content-center"], [1, "modal-footer"], ["data-dismiss", "modal", "type", "button", 1, "btn", "btn-primary", 3, "click"], ["data-dismiss", "modal", "type", "button", 1, "btn", "btn-secondary"], ["id", "info", "tabindex", "-1", "role", "dialog", "aria-labelledby", "info-title", "aria-hidden", "true", 1, "modal", "fade"], ["id", "info-title", 1, "modal-title"], ["type", "button", "data-dismiss", "modal", "aria-label", "Close", 1, "close"], [1, "modal-body"], ["href", "https://www.markdownguide.org/basic-syntax/", "target", "_blank"], ["id", "signing-experience", "tabindex", "-1", "role", "dialog", "aria-labelledby", "experience-title", "aria-hidden", "true", 1, "modal", "fade"], ["id", "experience-title", 1, "modal-title"], ["id", "spinner-overlay-container", 1, "d-flex", "justify-content-center"], ["role", "status", 1, "spinner-border"], ["id", "signing-experience-alert", 1, "col-12", "alert", "alert-primary"], ["data-toggle", "modal", "data-target", "#signing-experience"], ["id", "char-count-display", 3, "ngStyle"], [1, "dropdown-item", 3, "ngStyle", "click"], ["id", "image-notification-circle", 1, "d-flex", "align-items-center", "justify-content-center"]], template: function SigningComponent_Template(rf, ctx) { if (rf & 1) { 4842 const _r10 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵgetCurrentView"](); 4843 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div", 0); 4844 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](1, SigningComponent_div_1_Template, 2, 0, "div", 1); 4845 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](2, SigningComponent_div_2_Template, 7, 0, "div", 2); 4846 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](3, "div", 3); 4847 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](4, "div", 4); 4848 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](5, "div", 5); 4849 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](6, "label", 6); 4850 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](7, "b"); 4851 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](8); 4852 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4853 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4854 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4855 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](9, "div", 3); 4856 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](10, "textarea", 7, 8); 4857 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("keyup", function SigningComponent_Template_textarea_keyup_10_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵrestoreView"](_r10); const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](11); return ctx.signingService.updateCount(_r2); })("ngModelChange", function SigningComponent_Template_textarea_ngModelChange_10_listener($event) { return ctx.signingService.signingBoxText = $event; });
4858 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4859 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](12, SigningComponent_span_12_Template, 2, 5, "span", 9); 4860 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4861 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4862 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](13, "div", 10); 4863 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](14, "div", 11); 4864 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](15, "div", 12); 4865 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](16, "button", 13); 4866 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](17, "span"); 4867 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](18); 4868 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4869 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelement"](19, "span", 14); 4870 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4871 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](20, "div", 15); 4872 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](21, SigningComponent_span_21_Template, 3, 4, "span", 16); 4873 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵpipe"](22, "keyvalue"); 4874 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4875 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4876 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](23, "button", 17); 4877 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("click", function SigningComponent_Template_button_click_23_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵrestoreView"](_r10); const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](11); return ctx.signingService.addFormatting(_r2, "**"); }); 4878 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](24, "b"); 4879 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](25, "B"); 4880 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4881 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4882 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](26, "button", 18); 4883 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("click", function SigningComponent_Template_button_click_26_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵrestoreView"](_r10); const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](11); return ctx.signingService.addFormatting(_r2, "*"); }); 4884 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](27, "i"); 4885 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](28, "I"); 4886 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4887 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4888 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](29, "button", 19); 4889 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("click", function SigningComponent_Template_button_click_29_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵrestoreView"](_r10); const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](11); return ctx.signingService.addFormatting(_r2, "<u>", "</u>"); }); 4890 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](30, "u"); 4891 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](31, "U"); 4892 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4893 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4894 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](32, "button", 20); 4895 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("click", function SigningComponent_Template_button_click_32_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵrestoreView"](_r10); const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](11); return ctx.signingService.addFormatting(_r2, "~~"); }); 4896 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](33, "s"); 4897 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](34, "S"); 4898 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4899 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4900 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](35, "button", 21); 4901 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](36, "span", 22); 4902 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](37, "A"); 4903 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4904 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](38, "label", 23); 4905 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](39, "Colour picker for font"); 4906 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4907 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](40, "input", 24); 4908 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("ngModelChange", function SigningComponent_Template_input_ngModelChange_40_listener($event) { return ctx.signingService.textColor = $event; });
4909 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4910 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](41, "span", 25); 4911 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](42, "\u00A0"); 4912 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4913 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4914 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](43, "button", 21); 4915 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelement"](44, "img", 26); 4916 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](45, "label", 27); 4917 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](46, "Colour picker for background"); 4918 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4919 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](47, "input", 28); 4920 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("ngModelChange", function SigningComponent_Template_input_ngModelChange_47_listener($event) { return ctx.signingService.backgroundColor = $event; }); 4921 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4922 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](48, "span", 25); 4923 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](49, "\u00A0"); 4924 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4925 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4926 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](50, "a", 29); 4927 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](51, "\uD83D\uDE00 "); 4928 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4929 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](52, "div", 30); 4930 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](53, "button", 31); 4931 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("click", function SigningComponent_Template_button_click_53_listener() { return ctx.imageModalComponent.showImageModal(); }); 4932 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelement"](54, "img", 32); 4933 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4934 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](55, SigningComponent_span_55_Template, 2, 1, "span", 33); 4935 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4936 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](56, "button", 34); 4937 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](57, " More Info! "); 4938 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4939 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4940 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](58, "div", 35); 4941 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](59, "button", 36); 4942 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](60, " Send "); 4943 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4944 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4945 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4946 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](61, "div", 37); 4947 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](62, "div", 38); 4948 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](63, "label", 39); 4949 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](64, "strong"); 4950 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](65, "Preview"); 4951 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4952 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4953 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4954 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](66, "div", 3); 4955 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelement"](67, "markdown", 40, 41); 4956 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4957 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4958 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4959 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4960 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](69, "div", 42); 4961 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](70, "div", 43); 4962 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](71, "div", 44); 4963 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](72, "div", 45); 4964 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](73, "h5", 46); 4965 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](74, " Are you sure you want to send this? "); 4966 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4967 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](75, "button", 47); 4968 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](76, "span", 48); 4969 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](77, "\u00D7"); 4970 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4971 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4972 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4973 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](78, "div", 49); 4974 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](79, "p"); 4975 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](80, " You can only submit one message to a friend\u2019s virtrolio per year, so be absolutely certain! "); 4976 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4977 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](81, "p"); 4978 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](82, " By sending a message, you agree to our "); 4979 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](83, "a", 50); 4980 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](84, "Terms of Service"); 4981 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4982 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](85, " and our "); 4983 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](86, "a", 51); 4984 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](87, "Privacy Policy"); 4985 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4986 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](88, ". "); 4987 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4988 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelement"](89, "div", 52); 4989 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4990 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](90, "div", 53); 4991 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](91, "button", 54); 4992 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("click", function SigningComponent_Template_button_click_91_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵrestoreView"](_r10); const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](11); return ctx.sendMsg(_r2); }); 4993 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](92, " Send it! "); 4994 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4995 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](93, "button", 55); 4996 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](94, " Close "); 4997 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4998 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 4999 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5000 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5001 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5002 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](95, "div", 56); 5003 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](96, "div", 43); 5004 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](97, "div", 44); 5005 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](98, "div", 45); 5006 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](99, "h4", 57); 5007 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](100, "Craft your perfect message!"); 5008 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5009 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](101, "button", 58); 5010 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](102, "span", 48); 5011 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](103, "\u00D7"); 5012 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5013 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5014 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5015 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](104, "div", 59); 5016 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](105, "h5"); 5017 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](106, "Additional Formatting Tools"); 5018 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5019 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](107, "p"); 5020 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](108, " Virtrolio supports a modified version of "); 5021 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](109, "em"); 5022 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](110, "Markdown"); 5023 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5024 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](111, " to format text. While we support most of Markdown's features, we haven't added buttons for all of them, so there's still a lot to try out! Learn how to type in markdown "); 5025 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](112, "a", 60); 5026 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](113, "here"); 5027 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5028 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](114, ". "); 5029 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5030 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](115, "p"); 5031 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](116, "em"); 5032 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](117, "Note: Not all Markdown features will work with Virtrolio messages."); 5033 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5034 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5035 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](118, "h5"); 5036 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](119, "Something to Note"); 5037 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5038 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](120, "p"); 5039 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](121); 5040 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5041 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5042 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](122, "div", 53); 5043 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](123, "button", 55); 5044 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](124, " Close "); 5045 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5046 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5047 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5048 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5049 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5050 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](125, "div", 61); 5051 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](126, "div", 43); 5052 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](127, "div", 44); 5053 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](128, "div", 45); 5054 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](129, "h4", 62); 5055 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](130, " Do I need a larger screen to use Virtrolio? "); 5056 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5057 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](131, "button", 47); 5058 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](132, "span", 48); 5059 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](133, "\u00D7"); 5060 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5061 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5062 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5063 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](134, "div", 59); 5064 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](135, "p"); 5065 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](136, " For most purposes, no. We designed the rest of Virtrolio to be used on a mobile OR desktop/laptop device, but we suggest that you try "); 5066 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](137, "em"); 5067 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](138, "signing"); 5068 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5069 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](139, " messages on a desktop or laptop computer instead of a phone or tablet. This is because not only is it easier to write out a message when you have a larger screen, but some of the components (like the colour pickers) are not as good-looking or easy to use on mobile. "); 5070 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5071 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5072 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](140, "div", 53); 5073 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](141, "button", 55); 5074 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](142, " Close "); 5075 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5076 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5077 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5078 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5079 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); 5080 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelement"](143, "app-image-modal"); 5081 } if (rf & 2) { 5082 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); 5083 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", ctx.isSending); 5084 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); 5085 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", ctx.deviceDetector.isMobile()); 5086 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](6); 5087 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtextInterpolate1"]("Type your message to ", ctx.name, " below."); 5088 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](2); 5089 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngModel", ctx.signingService.signingBoxText)("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵpureFunction1"](23, _c1, ctx.signingService.currentFontFamily)); 5090 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](2); 5091 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", ctx.signingService.charCount >= 2000); 5092 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvanc
5092e"](4); 5093 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵpureFunction1"](25, _c1, ctx.signingService.currentFontFamily)); 5094 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](2); 5095 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtextInterpolate"](ctx.signingService.currentFontDisplay); 5096 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](3); 5097 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngForOf", _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵpipeBind1"](22, 21, ctx.signingService.fontDict)); 5098 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](19); 5099 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵpropertyInterpolate"]("value", ctx.signingService.textColor); 5100 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngModel", ctx.signingService.textColor); 5101 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); 5102 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵpureFunction1"](27, _c2, ctx.signingService.textColor)); 5103 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](6); 5104 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵpropertyInterpolate"]("value", ctx.signingService.backgroundColor); 5105 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngModel", ctx.signingService.backgroundColor); 5106 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); 5107 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵpureFunction1"](29, _c2, ctx.signingService.backgroundColor)); 5108 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](5); 5109 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngClass", ctx.checkImageList() ? "btn-primary" : "btn-secondary"); 5110 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](2); 5111 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", ctx.checkImageList()); 5112 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](4); 5113 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("disabled", !ctx.signingService.canSend); 5114 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](8); 5115 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵpropertyInterpolate"]("data", ctx.signingService.signingBoxText); 5116 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵpureFunction3"](31, _c3, ctx.signingService.backgroundColor, ctx.signingService.textColor, ctx.signingService.currentFontFamily)); 5117 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](54); 5118 _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtextInterpolate1"](" Some characters you type will count as more characters than you think. For example, an 'enter' (or a 'new line') counts as 5 characters. Don't worry, we've given you ", ctx.signingService.maxCharCount, " characters to work with! "); 5119 } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_9__.NgIf, _angular_forms__WEBPACK_IMPORTED_MODULE_10__.DefaultValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_10__.NgControlStatus, _angular_forms__WEBPACK_IMPORTED_MODULE_10__.NgModel, _angular_common__WEBPACK_IMPORTED_MODULE_9__.NgStyle, _angular_common__WEBPACK_IMPORTED_MODULE_9__.NgForOf, _angular_common__WEBPACK_IMPORTED_MODULE_9__.NgClass, ngx_markdown__WEBPACK_IMPORTED_MODULE_11__.MarkdownComponent, _image_modal_image_modal_component__WEBPACK_IMPORTED_MODULE_1__.ImageModalComponent], pipes: [_angular_common__WEBPACK_IMPORTED_MODULE_9__.KeyValuePipe], styles: ["#signing-experience-alert[_ngcontent-%COMP%] {\n text-align: center;\n}\n\n\n\n#signing-box[_ngcontent-%COMP%] {\n margin: 0.5em;\n padding: 1em;\n width: 40em;\n height: 20em;\n resize: none;\n color: #000000;\n font-size: 1em;\n border-width: 0.05em;\n border-radius: 0.25rem;\n box-shadow: var(--signing-shadow);\n}\n\n#char-count-display[_ngcontent-%COMP%] {\n z-index: 10;\n position: absolute;\n bottom: -1em;\n right: 2em;\n}\n\n.form-control[_ngcontent-%COMP%] {\n border-color: var(--light-grey);\n}\n\n.form-control[_ngcontent-%COMP%]:focus {\n border-color: var(--accent);\n}\n\nmarkdown[_ngcontent-%COMP%] {\n margin: 0.5em;\n padding: 1em;\n width: 40em;\n height: 20em;\n resize: none;\n font: 1em Arial;\n border: 0.05em solid var(--light-grey);\n overflow-y: auto;\n overflow-x: auto;\n word-wrap: break-word;\n border-radius: 0.25rem;\n box-shadow: var(--signing-shadow);\n line-height: 1.5;\n}\n\n\n\n#options[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] {\n margin: 1.4em 0.5em 0.8em;\n box-shadow: var(--signing-shadow);\n}\n\n#font-selector-dropdown[_ngcontent-%COMP%] {\n display: flex;\n display: -webkit-flex;\n justify-content: space-between;\n align-items: center;\n text-align: right;\n width: 12em;\n height: 2.5em;
5119\n}\n\n#font-selector-dropdown[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:not(.caret) {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n#font-selector-dropdown[_ngcontent-%COMP%] .caret[_ngcontent-%COMP%] {\n margin: auto;\n}\n\n.btn-format[_ngcontent-%COMP%] {\n width: 2.5em;\n height: 2.5em;\n}\n\n.btn-send[_ngcontent-%COMP%] {\n width: 6em;\n height: 2.5em;\n}\n\n.btn-send[_ngcontent-%COMP%]:disabled {\n background-color: var(--light-grey);\n}\n\n.dropdown-item[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.dropdown-item[_ngcontent-%COMP%]:active {\n background-color: var(--accent);\n}\n\n.dropdown-menu[_ngcontent-%COMP%] {\n overflow-y: auto;\n height: 12em;\n z-index: 2000;\n}\n\n#fill-color-icon[_ngcontent-%COMP%] {\n width: 1.5em;\n margin: 0 auto 0.1em auto;\n}\n\n#image-icon[_ngcontent-%COMP%] {\n width: 1.7em;\n margin: 0 auto;\n}\n\n.icon-wrapper[_ngcontent-%COMP%] {\n padding: 0;\n cursor: pointer;\n}\n\n#color-picker-font[_ngcontent-%COMP%], #color-picker-background[_ngcontent-%COMP%] {\n opacity: 0;\n position: absolute;\n display: block;\n z-index: 1;\n width: 2.2em;\n height: 2.2em;\n margin: -1.55em 0.05em !important;\n cursor: pointer;\n}\n\n#font-color-text[_ngcontent-%COMP%] {\n margin-bottom: 0;\n font-size: large;\n}\n\n.dynamic-color-bar[_ngcontent-%COMP%] {\n display: block;\n height: 0.4em;\n margin: 0.1em 0.2em;\n border-radius: 0.4em;\n}\n\n#image-notification-circle[_ngcontent-%COMP%] {\n border-radius: 100%;\n height: 1.5em;\n width: 1.5em;\n position: absolute;\n right: -0.4375em;\n top: -0.375em;\n color: white;\n background-color: var(--light-grey);\n}\n\n#image-button-wrapper[_ngcontent-%COMP%] {\n border-radius: 0.25rem; \n}\n\n\n\n.title-div[_ngcontent-%COMP%] {\n height: 3em;\n margin: 0 0.5em 0 0.5em;\n text-align: center;\n font-size: 1.2em;\n}\n\n\n\n#btn-info[_ngcontent-%COMP%] {\n border-radius: 6em;\n color: #ffffff;\n box-shadow: var(--signing-shadow);\n}\n\n#send-button[_ngcontent-%COMP%] {\n width: 10em;\n height: 3em;\n font-weight: bolder;\n}\n\n#send-button[_ngcontent-%COMP%] {\n width: 10em;\n height: 3em;\n font-weight: bolder;\n}\n\n.btn-info[_ngcontent-%COMP%] {\n background-color: #0075ff !important;\n}\n\n#spinner-overlay-container[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background: var(--loading-container-background);\n z-index: var(--loading-container-z-index);\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpZ25pbmcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQSxnQ0FBZ0M7O0FBRWhDO0VBQ0UsYUFBYTtFQUNiLFlBQVk7RUFDWixXQUFXO0VBQ1gsWUFBWTtFQUNaLFlBQVk7RUFDWixjQUFjO0VBQ2QsY0FBYztFQUNkLG9CQUFvQjtFQUNwQixzQkFBc0I7RUFDdEIsaUNBQWlDO0FBQ25DOztBQUVBO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osVUFBVTtBQUNaOztBQUVBO0VBQ0UsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7RUFDWixXQUFXO0VBQ1gsWUFBWTtFQUNaLFlBQVk7RUFDWixlQUFlO0VBQ2Ysc0NBQXNDO0VBQ3RDLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0QixpQ0FBaUM7RUFDakMsZ0JBQWdCO0FBQ2xCOztBQUVBLHlCQUF5Qjs7QUFFekI7RUFDRSx5QkFBeUI7RUFDekIsaUNBQWlDO0FBQ25DOztBQUVBO0VBQ0UsYUFBYTtFQUNiLHFCQUFxQjtFQUNyQiw4QkFBOEI7RUFDOUIsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsYUFBYTtBQUNmOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLFlBQVk7RUFDWixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsYUFBYTtBQUNmOztBQUVBO0VBQ0UsbUNBQW1DO0FBQ3JDOztBQUVBO0VBQ0UsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLCtCQUErQjtBQUNqQzs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osYUFBYTtBQUNmOztBQUVBO0VBQ0UsWUFBWTtFQUNaLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLFlBQVk7RUFDWixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsVUFBVTtFQUNWLGVBQWU7QUFDakI7O0FBRUE7O0VBRUUsVUFBVTtFQUNWLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsVUFBVTtFQUNWLFlBQVk7RUFDWixhQUFhO0VBQ2IsaUNBQWlDO0VBQ2pDLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsY0FBYztFQUNkLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsb0JBQW9CO0FBQ3RCOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLGFBQWE7RUFDYixZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IsWUFBWTtFQUNaLG1DQUFtQztBQUNyQzs7QUFFQTtFQUNFLHNCQUFzQixFQUFFLHFDQUFxQztBQUMvRDs7QUFFQSxrQkFBa0I7O0FBRWxCO0VBQ0UsV0FBVztFQUNYLHVCQUF1QjtFQUN2QixrQkFBa0I7RUFDbEIsZ0JBQWdCO0FBQ2xCOztBQUVBLHFCQUFxQjs7QUFFckI7RUFDRSxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLGlDQUFpQztBQUNuQzs7QUFFQTtFQUNFLFdBQVc7RUFDWCxXQUFXO0VBQ1gsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsV0FBVztFQUNYLFdBQVc7RUFDWCxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxvQ0FBb0M7QUFDdEM7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsTUFBTTtFQUNOLFNBQVM7RUFDVCxPQUFPO0VBQ1AsUUFBUTtFQUNSLCtDQUErQztFQUMvQyx5Q0FBeUM7QUFDM0MiLCJmaWxlIjoic2lnbmluZy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI3NpZ25pbmctZXhwZXJpZW5jZS1hbGVydCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogfHwgU2lnbmluZyBib3gsIFByZXZpZXcgQm94ICovXG5cbiNzaWduaW5nLWJveCB7XG4gIG1hcmdpbjogMC41ZW07XG4gIHBhZGRpbmc6IDFlbTtcbiAgd2lkdGg6IDQwZW07XG4gIGhlaWdodDogMjBlbTtcbiAgcmVzaXplOiBub25lO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxZW07XG4gIGJvcmRlci13aWR0aDogMC4wNWVtO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaWduaW5nLXNoYWRvdyk7XG59XG5cbiNjaGFyLWNvdW50LWRpc3BsYXkge1xuICB6LWluZGV4OiAxMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0xZW07XG4gIHJpZ2h0OiAyZW07XG59XG5cbi5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6IHZhcigtLWxpZ2h0LWdyZXkpO1xufVxuXG4uZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xufVxuXG5tYXJrZG93biB7XG4gIG1hcmdpbjogMC41ZW07XG4gIHBhZGRpbmc6IDFlbTtcbiAgd2lkdGg6IDQwZW07XG4gIGhlaWdodDogMjBlbTtcbiAgcmVzaXplOiBub25lO1xuICBmb250OiAxZW0gQXJpYWw7XG4gIGJvcmRlcjogMC4wNWVtIHNvbGlkIHZhcigtLWxpZ2h0LWdyZXkpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIGJveC1zaGFkb3c6IHZhcigtLXNpZ25pbmctc2hhZG93KTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLyogfHwgRm9ybWF0dGluZyBUb29scyAgKi9cblxuI29wdGlvbnMgPiAqIHtcbiAgbWFyZ2luOiAxLjRlbSAwLjVlbSAwLjhlbTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2lnbmluZy1zaGFkb3cpO1xufVxuXG4jZm9udC1zZWxlY3Rvci1kcm9wZG93biB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgd2lkdGg6IDEyZW07XG4gIGhlaWdodDogMi41ZW07XG59XG5cbiNmb250LXNlbGVjdG9yLWRyb3Bkb3duI
5119HNwYW46bm90KC5jYXJldCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuI2ZvbnQtc2VsZWN0b3ItZHJvcGRvd24gLmNhcmV0IHtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4uYnRuLWZvcm1hdCB7XG4gIHdpZHRoOiAyLjVlbTtcbiAgaGVpZ2h0OiAyLjVlbTtcbn1cblxuLmJ0bi1zZW5kIHtcbiAgd2lkdGg6IDZlbTtcbiAgaGVpZ2h0OiAyLjVlbTtcbn1cblxuLmJ0bi1zZW5kOmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHQtZ3JleSk7XG59XG5cbi5kcm9wZG93bi1pdGVtIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZHJvcGRvd24taXRlbTphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xufVxuXG4uZHJvcGRvd24tbWVudSB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGhlaWdodDogMTJlbTtcbiAgei1pbmRleDogMjAwMDtcbn1cblxuI2ZpbGwtY29sb3ItaWNvbiB7XG4gIHdpZHRoOiAxLjVlbTtcbiAgbWFyZ2luOiAwIGF1dG8gMC4xZW0gYXV0bztcbn1cblxuI2ltYWdlLWljb24ge1xuICB3aWR0aDogMS43ZW07XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uaWNvbi13cmFwcGVyIHtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jY29sb3ItcGlja2VyLWZvbnQsXG4jY29sb3ItcGlja2VyLWJhY2tncm91bmQge1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMi4yZW07XG4gIGhlaWdodDogMi4yZW07XG4gIG1hcmdpbjogLTEuNTVlbSAwLjA1ZW0gIWltcG9ydGFudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jZm9udC1jb2xvci10ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiBsYXJnZTtcbn1cblxuLmR5bmFtaWMtY29sb3ItYmFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMC40ZW07XG4gIG1hcmdpbjogMC4xZW0gMC4yZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNGVtO1xufVxuXG4jaW1hZ2Utbm90aWZpY2F0aW9uLWNpcmNsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGhlaWdodDogMS41ZW07XG4gIHdpZHRoOiAxLjVlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTAuNDM3NWVtO1xuICB0b3A6IC0wLjM3NWVtO1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LWdyZXkpO1xufVxuXG4jaW1hZ2UtYnV0dG9uLXdyYXBwZXIge1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtOyAvKiBiYXNlZCBvZmYgb2YgYm9vdHN0cmFwIGJ0biBjbGFzcyAqL1xufVxuXG4vKiB8fCBUeXBvZ3JhcGh5ICovXG5cbi50aXRsZS1kaXYge1xuICBoZWlnaHQ6IDNlbTtcbiAgbWFyZ2luOiAwIDAuNWVtIDAgMC41ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxLjJlbTtcbn1cblxuLyogfHwgTWlzY2VsbGFuZW91cyAqL1xuXG4jYnRuLWluZm8ge1xuICBib3JkZXItcmFkaXVzOiA2ZW07XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaWduaW5nLXNoYWRvdyk7XG59XG5cbiNzZW5kLWJ1dHRvbiB7XG4gIHdpZHRoOiAxMGVtO1xuICBoZWlnaHQ6IDNlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuI3NlbmQtYnV0dG9uIHtcbiAgd2lkdGg6IDEwZW07XG4gIGhlaWdodDogM2VtO1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4uYnRuLWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3NWZmICFpbXBvcnRhbnQ7XG59XG5cbiNzcGlubmVyLW92ZXJsYXktY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWxvYWRpbmctY29udGFpbmVyLWJhY2tncm91bmQpO1xuICB6LWluZGV4OiB2YXIoLS1sb2FkaW5nLWNvbnRhaW5lci16LWluZGV4KTtcbn1cbiJdfQ== */"] }); 5120 5121 5122/***/ }), 5123 5124/***/ 21912: 5125/*!**********************************************************************!*\ 5126 !*** ./src/app/pages/terms-of-service/terms-of-service.component.ts ***! 5127 \**********************************************************************/ 5128/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 5129 5130"use strict"; 5131__webpack_require__.r(__webpack_exports__); 5132/* harmony export */ __webpack_require__.d(__webpack_exports__, { 5133/* harmony export */ "TermsOfServiceComponent": function() { return /* binding */ TermsOfServiceComponent; } 5134/* harmony export */ }); 5135/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 37716); 5136/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 5137 5138 5139class TermsOfServiceComponent { 5140 constructor(title) { 5141 this.title = title; 5142 } 5143 ngOnInit() { 5144 this.title.setTitle('Terms of Service | Virtrolio'); 5145 } 5146} 5147TermsOfServiceComponent.ɵfac = function TermsOfServiceComponent_Factory(t) { return new (t || TermsOfServiceComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__.Title)); }; 5148TermsOfServiceComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: TermsOfServiceComponent, selectors: [["app-terms-of-service"]], decls: 137, vars: 0, consts: [[1, "container"], [1, "text-center", "mt-3", "mb-3"], ["role", "alert", 1, "alert", "alert-primary"], ["href", "https://firebase.google.com/terms/", "target", "_blank"], ["href", "../privacy-policy"], ["href", "mailto:[email protected]", "target", "_blank"]], template: function TermsOfServiceComponent_Template(rf, ctx) { if (rf & 1) { 5149 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); 5150 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "h1", 1); 5151 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2, "Terms of Service"); 5152 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5153 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "div", 2); 5154 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](4, " Last updated: June 16, 2021 "); 5155 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5156 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](5, "h3"); 5157 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](6, "SUMMARY"); 5158 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5159 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](7, "p"); 5160 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](8, " In short, you agree to abide by our code of conduct for safe, respectful, and common-sense behaviour. You understand that we will do everything in our power to address reported violations of the code or these Terms, including account termination at our discretion, but that the ultimate responsibility for a message's contents, including links to third-party sites, lies with the user who sent it. You agree not to reproduce or alter any of our intellectual property for unlicensed use, and where necessary, you agree to obtain parental consent to use our site. This summary is for convenience only; please read the terms below carefully. "); 5161 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5162 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](9, "h3"); 5163 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](10, "OVERVIEW"); 5164 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5165 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](11, "p"); 5166 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](12, " This website is operated by Virtrolio. Throughout the site, the terms \u201Cwe\u201D, \u201Cus\u201D and \u201Cour\u201D refer to Virtrolio. Virtrolio offers this website, including all information, tools and services available from this site to you, the user, conditioned upon your acceptance of all terms, conditions, policies and notices stated here. "); 5167 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5168 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](13, "p"); 5169 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](14, " By visiting our site, you engage in our \u201CService\u201D and agree to be bound by the following terms and conditions (\u201CTerms of Service\u201D, \u201CTerms\u201D), including those additional terms and conditions and policies referenced herein and/
5169or available by hyperlink. These Terms of Service apply to all users of the site, including without limitation users who are browsers and/or contributors of content. "); 5170 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5171 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](15, "p"); 5172 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](16, " Please read these Terms of Service carefully before accessing or using our website. By accessing or using any part of the site, you agree to be bound by these Terms of Service and any other policies listed here. If you do not agree to all the terms and conditions of this agreement, then you may not access the website or use any services. If these Terms of Service are considered an offer, acceptance is expressly limited to these Terms of Service. "); 5173 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5174 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](17, "p"); 5175 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](18, " Virtrolio is a message sharing and viewing service that allows users to recreate in-person yearbook signings. In order to digitally emulate the essence of this act, certain data policies and terms have been enacted accordingly. "); 5176 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5177 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](19, "p"); 5178 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](20, " Any new features or tools which are added to the current website shall also be subject to the Terms of Service. You can review the most current version of the Terms of Service at any time on this page. We reserve the right to update, change, or replace any part of these Terms of Service by posting updates and/or changes to our website. It is your responsibility to check this page periodically for changes. Your continued use of or access to the website following the posting of any changes constitutes acceptance of those changes. "); 5179 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5180 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](21, "h3"); 5181 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](22, "SECTION 1 - GENERAL CONDITIONS"); 5182 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5183 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](23, "p"); 5184 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](24, " We reserve the right to refuse service to anyone for any reason at any time. "); 5185 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5186 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](25, "p"); 5187 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](26, " You understand that your content (not including credit card information), may be transferred unencrypted and involve (a) transmissions over various networks; and (b) changes to conform and adapt to technical requirements of connecting networks or devices. Credit card information is always encrypted during transfer over networks. "); 5188 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5189 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](27, "p"); 5190 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](28, " You agree not to reproduce, duplicate, copy, sell, resell or exploit any portion of the Service, use of the Service, or access to the Service or any contact on the website through which the service is provided, without express written permission by us. "); 5191 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5192 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](29, "p"); 5193 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](30, " The headings used in this agreement are included for c
5193onvenience only and will not limit or otherwise affect these Terms. "); 5194 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5195 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](31, "h3"); 5196 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](32, "SECTION 2 - TERMINATION OF SERVICE"); 5197 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5198 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](33, "p"); 5199 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](34, " A breach or violation of the conditions listed in these Terms or other relevant policies will result in a termination of your Services, including but not limited to: deletion of your account and all associated data (see more on our data policies in our Privacy Policy) and banning of your email address to prevent further account access or creation therein. "); 5200 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5201 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](35, "p"); 5202 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](36, " We may, at our own discretion, give you advance notice of account termination. Your account will not be reconsidered for reacceptance into our Service, except under specific circumstances to be established through individual written communication and at our sole discretion. "); 5203 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5204 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](37, "p"); 5205 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](38, " The obligations and liabilities of the parties incurred prior to the termination date shall survive the termination of this agreement for all purposes. "); 5206 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5207 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](39, "p"); 5208 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](40, " These Terms of Service are effective unless and until terminated by either you or us. You may terminate these Terms of Service at any time by notifying us that you no longer wish to use our Services, or when you cease using our site. "); 5209 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5210 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](41, "p"); 5211 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](42, " If in our sole judgment you fail, or we suspect that you have failed, to comply with any term or provision of these Terms of Service, we also may terminate this agreement at any time without notice and accordingly may deny you access to our Services (or any part thereof). "); 5212 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5213 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](43, "h3"); 5214 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](44, "SECTION 3 - MODIFICATIONS TO THE SERVICE"); 5215 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5216 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](45, "p"); 5217 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](46, " We reserve the right at any time to modify or discontinue the Service (or any part or content thereof) without notice at any time. "); 5218 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5219 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](47, "p"); 5220 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](48, " Occasionally there may be information on our site or in the Service that contains typographical errors, inaccuracies or omissions. We reserve the right to correct any errors, inaccuracies or omissions, and to change or update information if any information in the Service is inaccurate at any time without prior notice. "); 5221 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5222 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](49, "p"); 5223 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](50, " We undertake no obligation to update, amend, or clarify information in the Service except as required by law. No specified update or refresh date applied in the Service should be taken to indicate that all information in the Service or on any related website has been modified or updated. "); 5224 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5225 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](51, "p"); 5226 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](52, " You agree that from time to time we may remove the service for indefinite periods of time or cancel the service at any time. In such a case, you will receive notification by email. However, notification for short periods of interruption to the service may only consist of a banner or page displayed on our website without an accompanying email. If service termination is deemed permanent or exceptional by cir
5226cumstance, appropriate measures will be put in place for you, the user, to be able to retrieve your data, though we make no promise as to the amount of time which this may take. "); 5227 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5228 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](53, "h3"); 5229 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](54, "SECTION 4 - THIRD-PARTY LINKS AND SERVICES"); 5230 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5231 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](55, "p"); 5232 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](56, " The developers of Virtrolio have made use of third-party softwares and services in order to be able to provide our service to you. As such, by using our service you also agree to any relevant terms, policies, and practices which extend from those third-party services, including, but not limited to, those associated with "); 5233 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](57, "a", 3); 5234 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](58, "Google Firebase"); 5235 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5236 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](59, " and its collection of anonymous data; and with third-party sign-in providers such as Google and their authentication services. We will enforce these Terms in accordance with any relevant third-party policies. "); 5237 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5238 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](60, "p"); 5239 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](61, " Furthermore, certain content available on our Service may include third-party material. Third-party links on this site may direct you to third-party websites that are not affiliated with us. We are not responsible for examining or evaluating the content or accuracy and we do not warrant and will not have any liability or responsibility for any third-party materials or websites, or for any other views, endorsements, materials, products, or services of third-parties. "); 5240 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5241 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](62, "p"); 5242 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](63, " While we support the embedding of images via third-party links within messages as well as the uploading and storage of images, we currently cannot guarantee that such images will display as intended, nor that the image will not be removed or otherwise made unavailable by the hosting provider. For the purposes of embedding images via third-party links, responsibility for selecting a third-party service and ensuring that an image displays as intended falls on the user; no recommendation or endorsement of any such service is made by Virtrolio. In addition, the user remains responsible for the contents of the image, and for obtaining the necessary rights or explicit permissions required to use the image regardless of whether it is directly uploaded to Virtrolio or to a third party. "); 5243 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5244 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](64, "p"); 5245 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](65, " We are not liable for any harm or damages related to the purchase or use of goods, services, resources, content, or any other transactions made with any third-party websites. Please carefully review the third-party's policies and practices and make sure you understand them before you engage in any transaction. Complaints, claims, concerns, or questions regarding third-party products should be directed to the third-party. "); 5246 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5247 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](66, "h3"); 5248 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](67, "SECTION 5 - CODE OF CONDUCT"); 5249 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5250 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](68, "p"); 5251 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](69, " In addition to other prohibitions as set forth in the Terms of Service, you are prohibited from using the site or its content: (a) for any unlawful purpose; (b) to solicit others to perform or participate in any unlawful acts; (c) to violate any international, federal, provincial or state regulations, rules, laws, or local ordinances; (d) to infringe upon or violate our intellectual property rights or the intellectual property rights of others; (e) to harass, abuse, insult, harm, defame, slander, disparage, intimidate, or discriminate based on gender, sexual orientation, religion, ethnicity, race, age, national origin, or disability; (f) to submit false or misleading information; (g) to upload or transmit viruses or any other type of malicious code that will or may be used in any way that will affect the functionality or operation of the Service or of any related website, other websites, or the Internet; (h) to collect or track the personal information of others; (i) to spam, phish, farm, pretext, spider, crawl, or scrape; (j) for any obscene or immoral purpose; or (k) to interfere with or circumvent the security features of the Service or any related website, other websites, or the Internet. We reserve the right to terminate your use of the Service or any related website for violating any of the prohibited uses. "); 5252 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5253 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](70, "p"); 5254 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](71, " We may monitor, edit, and/or remove users (see SECTION 2) that we determine in our sole discretion as acting in a manner that is unlawful, offensive, threatening, libelous, defamatory, pornographic, obscene, or otherwise objectionable or violates any party\u2019s intellectual property or these Terms of Service. We may al
5254so take the same actions against specific user contributions. Law enforcement and third-party service providers, including Google, will be notified as necessary and access to your account will be revoked if you are found to be sharing content which does not conform with these Terms or this Code of Conduct. "); 5255 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5256 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](72, "p"); 5257 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](73, " You agree that your comments will not violate any right of any third-party, including copyright, trademark, privacy, personality or other personal or proprietary right. You further agree that your comments will not contain libelous or otherwise unlawful, abusive or obscene material, or contain any computer virus or other malware that could in any way affect the operation of the Service or any related website. "); 5258 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5259 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](74, "p"); 5260 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](75, " You are solely responsible for any inappropriate comments you make or data you send through our Service, even if it does not reach any particular user. We take no responsibility and assume no liability for any comments posted by you or any third-party. "); 5261 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5262 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](76, "h3"); 5263 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](77, "SECTION 6 - PERSONAL & DEVICE INFORMATION"); 5264 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5265 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](78, "p"); 5266 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](79, " Your submission of personal information and device information through Virtrolio is governed by our "); 5267 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](80, "a", 4); 5268 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](81, "Privacy Policy."); 5269 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5270 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](82, " Your agreement to these Terms constitutes your agreement to the Privacy Policy. "); 5271 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5272 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](83, "h3"); 5273 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](84, "SECTION 7 - INDEMNIFICATION"); 5274 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5275 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](85, "p"); 5276 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](86, " You agree to indemnify, defend and hold harmless Virtrolio and our parent, subsidiaries, affiliates, partners, officers, directors, agents, contractors, licensors, service providers, subcontractors, suppliers, interns and employees, harmless from any claim or demand, including reasonable attorneys\u2019 fees, made by any third-party due to or arising out of your breach of these Terms of Service or the documents they incorporate by reference, or your violation of any law or the rights of a third-party. "); 5277 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5278 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](87, "h3"); 5279 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](88, "SECTION 8 - DISCLAIMER OF WARRANTIES"); 5280 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5281 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](89, "p"); 5282 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](90, " You expressly agree that your use of, or inability to use, the service is at your sole risk. The service and all products and services delivered to you through the service are (except as expressly stated by us) provided 'as is' and 'as available' for your use, without any representation, warranties or conditions of any kind, either express or implied, including, but not limited to, all implied warranties or conditions of merchantability, merchantable quality, fitness for a particular purpose, durability, title, and non-infringement. "); 5283 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5284 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](91, "p"); 5285 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](92, " We do not guarantee, represent or warrant that your use of our service will be uninterrupted, timely, secure or error-free, nor do we warrant that the results or information that may be obtained from the use of the service will be accurate or reliable. You agree that from time to time we may remove the service for indefinite periods of time or cancel the service at any time, without notice to you. "); 5286 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5287 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](93, "p"); 5288 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](94, " The Site is intended for individuals at least 18 years of age, or if you have parental consent, at least 15 years of age in Australia or 13 years of age in all other Authorized Jurisdictions (\u201CMinimum Age\u201D). You must meet these requirements in order to use a Virtrolio account and its services. If you have obtained parental consent, our Terms and policies are accepted by and will apply to your parent or guardian, and they are responsible for your activity on these services. "); 5289 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5290 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](95, "p"); 5291 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](96, " In no case shall Virtrolio, our directors, officers, employees, affiliates, agents, contractors, interns, suppliers, service providers or licensors be liable for any injury, loss, claim, or any direct, indirect, incidental, punitive, special, or consequential damages of any kind, including, without limitation lost profits, lost revenue, lost savings, loss of data, replacement costs, or any similar damages, whether based in contract, tort (including negligence), strict liability or otherwise, arising from your use of any of the Service or any products procured using the Service, or for any other claim related in any way to your use of the Service or any product, including, but not limited to, any errors or omissions in any content, or any loss or damage of any kind incurred as a result of the use of the Service or any content (or product) posted, transmitted, or otherwise made available via the Service or via the conduct or interactions of other users thereof, even if advised of their possibility. Because some states or jurisdictions do not allow the exclusion or the limitation of liability for consequential or incidental damages, in such states or jurisdictions, our liability shall be limited to the maximum extent permitted by law. "); 5292 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5293 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](97, "h3"); 5294 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](98, "SECTION 9 - INTELLECTUAL PROPERTY"); 5295 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5296 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](99, "p"); 5297 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](100, " Notwithstanding the public availability of the source code associated with the operation of the Service, we assign no licence for its use. We retain ownership of all proprietary rights in the Service and all trade names, trade marks, service marks, and other intellectual property displayed by or associated with the operation of the Service. You are prohibited from remov
5297ing, defacing, obscuring, or otherwise altering any of our branding, logos, or legal notices. "); 5298 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5299 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](101, "h3"); 5300 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](102, "SECTION 10 - SEVERABILITY"); 5301 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5302 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](103, "p"); 5303 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](104, " In the event that any provision of these Terms of Service is determined to be unlawful, void or unenforceable, such provision shall nonetheless be enforceable to the fullest extent permitted by applicable law, and the unenforceable portion shall be deemed to be severed from these Terms of Service, such determination shall not affect the validity and enforceability of any other remaining provisions. "); 5304 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5305 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](105, "h3"); 5306 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](106, "SECTION 11 - ENTIRE AGREEMENT"); 5307 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5308 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](107, "p"); 5309 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](108, " The failure of us to immediately exercise or enforce any right or provision of these Terms of Service shall not constitute a waiver of such right or provision (i.e. for the future). "); 5310 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5311 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](109, "p"); 5312 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](110, " These Terms of Service and any policies or operating rules posted by us on this site or in respect to The Service constitutes the entire agreement and understanding between you and us and govern your use of the Service, superseding any prior or contemporaneous agreements, communications and proposals, whether oral or written, between you and us (including, but not limited to, any prior versions of the Terms of Service). "); 5313 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5314 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](111, "p"); 5315 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](112, " Any ambiguities in the interpretation of these Terms of Service shall not be construed against the drafting party. "); 5316 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5317 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](113, "p"); 5318 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](114, " The obligations and liabilities of the parties incurred prior to the termination date shall survive the termination of this agreement for all purposes. "); 5319 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5320 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](115, "p"); 5321 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](116, " These Terms of Service are effective unless and until terminated by either you or us. You may terminate these Terms of Service at any time by notifying us that you no longer wish to use our Service, or when you cease using our Service by deleting your account. "); 5322 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5323 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](117, "p"); 5324 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](118, " If in our sole judgment you fail, or we suspect that you have failed, to comply with any term or provision of these Terms of Service, we also may terminate this agreement at any time without notice and you will remain liable for all amounts due up to and including the date of termination; and/or accordingly may deny you access to our Service (or any part thereof). "); 5325 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5326 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](119, "h3"); 5327 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](120, "SECTION 12 - GOVERNING LAW"); 5328 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5329 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](121, "p"); 5330 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](122, " These Terms of Service and any separate agreements whereby we provide you Services shall be, if reasonable, governed by and construed in accordance with the laws of the Province of Ontario, to be resolved
5330in the federal or provincial courts of Peel Region, Ontario, Canada. You and we agree to personal jurisdiction in those courts. "); 5331 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5332 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](123, "h3"); 5333 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](124, "SECTION 13 - CHANGES TO THE TERMS OF SERVICE"); 5334 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5335 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](125, "p"); 5336 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](126, " You can review the most current version of the Terms of Service at any time at this page. "); 5337 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5338 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](127, "p"); 5339 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](128, " We reserve the right, at our sole discretion, to update, change, or replace any part of these Terms of Service by posting updates and changes to our website. It is your responsibility to check our website periodically for changes. Your continued use of or access to our website or the Service following the posting of any changes to these Terms of Service constitutes acceptance of those changes. "); 5340 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5341 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](129, "h3"); 5342 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](130, "SECTION 14 - CONTACT INFORMATION"); 5343 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5344 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](131, "p"); 5345 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](132, " Questions about the Terms of Service should be sent to us at "); 5346 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](133, "a", 5); 5347 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](134, "[email protected]"); 5348 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5349 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](135, ". "); 5350 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5351 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](136, "br"); 5352 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5353 } }, styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ0ZXJtcy1vZi1zZXJ2aWNlLmNvbXBvbmVudC5jc3MifQ== */"] }); 5354 5355 5356/***/ }), 5357 5358/***/ 1641: 5359/*!************************************************************************!*\ 5360 !*** ./src/app/pages/viewing/message-modal/message-modal.component.ts ***! 5361 \************************************************************************/ 5362/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 5363 5364"use strict"; 5365__webpack_require__.r(__webpack_exports__); 5366/* harmony export */ __webpack_require__.d(__webpack_exports__, { 5367/* harmony export */ "MessageModalComponent": function() { return /* binding */ MessageModalComponent; } 5368/* harmony export */ }); 5369/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 37716); 5370/* harmony import */ var _core_viewing_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../core/viewing.service */ 91225); 5371/* harmony import */ var ngx_bootstrap_modal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ngx-bootstrap/modal */ 63301); 5372/* harmony import */ var _core_msg_io_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../core/msg-io.service */ 84468); 5373/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/router */ 39895); 5374/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/common */ 38583); 5375/* harmony import */ var ngx_markdown__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ngx-markdown */ 76715); 5376/* harmony import */ var _shared_components_inline_images_inline_images_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../shared/components/inline-images/inline-images.component */ 72321); 5377 5378 5379 5380 5381 5382 5383 5384 5385function MessageModalComponent_app_inline_images_25_Template(rf, ctx) { if (rf & 1) { 5386 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelement"](0, "app-inline-images", 17); 5387} if (rf & 2) { 5388 const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵnextContext"](); 5389 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("images", ctx_r0.viewService.currentMessageModal.images); 5390} } 5391const _c0 = function () { return ["/viewing"]; }; 5392const _c1 = function (a0) { return { messageId: a0, showBookmarkAlert: true }; }; 5393const _c2 = function (a0, a1, a2) { return { background: a0, color: a1, "font-family": a2 }; }; 5394class MessageModalComponent { 5395 constructor(viewService, modalService, msgIOService) { 5396 this.viewService = viewService; 5397 this.modalService = modalService; 5398 this.msgIOService = msgIOService; 5399 } 5400 ngOnInit() { } 5401} 5402MessageModalComponent.ɵfac = function MessageModalComponent_Factory(t) { return new (t || MessageModalComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdirectiveInject"](_core_viewing_service__WEBPACK_IMPORTED_MODULE_0__.ViewingService), _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdirectiveInject"](ngx_bootstrap_modal__WEBPACK_IMPORTED_MODULE_1__.BsModalService), _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdirectiveInject"](_core_msg_io_service__WEBPACK_IMPORTED_MODULE_2__.MsgIoService)); }; 5403MessageModalComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdefineComponent"]({ type: MessageModalComponent, selectors: [["app-message-modal"]], decls: 26, vars: 15, consts: [[1, "card", "shadow"], [1, "msg-header"], [1, "msg-header-group"], [1, "header-table"], [1, "profile-pic-container-small", "mr-2"], ["alt", "profile-pic", 1, "profile-pic", 3, "src"], [1, "msg-header-text"], [1, "msg-header-date"], [1, "card-header-group"], ["target", "_blank", 3, "routerLink", "queryParams"], ["type", "button", 1, "btn", "card-button", 3, "click"], ["alt", "bookmark", "src", "../../../../assets/images/icons/bookmark-black.svg", 1, "card-icon"], ["type", "button", 1, "btn", 3, "click"], ["alt", "close", "src", "../../../../assets/images/icons/exit.svg", 1, "card-icon"], [1, "card-body", "message-card", "message", 3, "ngStyle"], ["emoji", "", 3, "data"], [3, "images", 4, "ngIf"], [3, "images"]], template: function MessageModalComponent_Template(rf, ctx) { if (rf & 1) { 5404 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](0, "div", 0); 5405 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](1, "div", 1); 5406 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](2, "div", 2); 5407 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](3, "table", 3); 5408 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](4, "tr"); 5409 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](5, "td"); 5410 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](6, "span", 4); 5411 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelement"](7, "img", 5); 5412 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5413 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5414 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](8, "td"); 5415 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](9, "table"); 5416 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](10, "tr", 6); 5417 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](11); 5418 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5419 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](12, "tr", 7);
5420 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtext"](13); 5421 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5422 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5423 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5424 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5425 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5426 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5427 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](14, "div", 8); 5428 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](15, "table", 3); 5429 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](16, "tr"); 5430 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](17, "td"); 5431 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](18, "a", 9); 5432 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](19, "button", 10); 5433 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵlistener"]("click", function MessageModalComponent_Template_button_click_19_listener() { return ctx.viewService.bookmarkMessage(ctx.viewService.currentMessageModal.id); }); 5434 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelement"](20, "img", 11); 5435 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5436 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5437 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](21, "button", 12); 5438 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵlistener"]("click", function MessageModalComponent_Template_button_click_21_listener() { return ctx.modalService.hide(); }); 5439 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelement"](22, "img", 13); 5440 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5441 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5442 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5443 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5444 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5445 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5446 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](23, "div", 14); 5447 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelement"](24, "markdown", 15); 5448 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtemplate"](25, MessageModalComponent_app_inline_images_25_Template, 1, 1, "app-inline-images", 16); 5449 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5450 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); 5451 } if (rf & 2) { 5452 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](7); 5453 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵpropertyInterpolate"]("src", ctx.viewService.currentMessageModal.fromPic, _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵsanitizeUrl"]); 5454 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](4); 5455 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtextInterpolate1"](" ", ctx.viewService.currentMessageModal.fromName, " "); 5456 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](2); 5457 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtextInterpolate1"](" ", ctx.viewService.timeSince(ctx.viewService.nowMillis, ctx.viewService.currentMessageModal.timestamp.toMillis(), ctx.viewService.currentMessageModal.timestamp.toDate().toDateString()), " "); 5458 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](5); 5459 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("routerLink", _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵpureFunction0"](8, _c0))("queryParams", _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵpureFunction1"](9, _c1, ctx.viewService.currentMessageModal.id)); 5460 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](5); 5461 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵpureFunction3"](11, _c2, ctx.viewService.currentMessageModal.backColor, ctx.viewService.currentMessageModal.fontColor, ctx.viewService.fonts[ctx.viewService.currentMessageModal.fontFamily].fontFamily + "," + ctx.viewService.fonts[ctx.viewService.currentMessageModal.fontFamily].backupFont)); 5462 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](1); 5463 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵpropertyInterpolate"]("data", ctx.viewService.decodeHtml(ctx.viewService.currentMessageModal.contents)); 5464 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](1); 5465 _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("ngIf", ctx.viewService.currentMessageModal.images); 5466 } }, directives: [_angular_router__WEBPACK_IMPORTED_MODULE_5__.RouterLinkWithHref, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgStyle, ngx_markdown__WEBPACK_IMPORTED_MODULE_7__.MarkdownComponent, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgIf, _shared_components_inline_images_inline_images_component__WEBPACK_IMPORTED_MODULE_3__.InlineImagesComponent], styles: [".card[_ngcontent-%COMP%] {\n width: auto;\n height: 100%;\n}\n.message-card[_ngcontent-%COMP%] {\n background-color: var(--light-grey);\n width: 100%;\n word-break: break-word;\n max-height: 30em;\n overflow-y: auto;\n}\n.table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n overflow-wrap: break-word;\n}\n\n.msg-footer-img[_ngcontent-%COMP%] {\n max-height: 20em;\n transition: all linear 0.2s;\n}\n.msg-footer[_ngcontent-%COMP%] {\n justify-content: center;\n}\n.msg-footer-img-overlay[_ngcontent-%COMP%] {\n background-color: rgba(0, 0, 0, 0.5);\n height: 100%;\n width: 100%;\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n opacity: 0;\n transition: all linear 0.2s;\n}\n.msg-footer-img-overlay[_ngcontent-%COMP%]:hover {\n opacity: 100%;\n}\n#external-link-icon[_ngcontent-%COMP%] {\n height: 33%;\n}\n\n.page[_ngcontent-%COMP%] {\n background-color: var(--accent);\n box-shadow: 0 0.15em 0.25em 0.05em rgba(0, 0, 0, 0.175);\n color: white;\n height: 70vh;\n padding: 3em 6em 3em 6em;\n\n overflow-y: auto;\n}\n\n.msg-header[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n line-height: 1em;\n padding: 0.5em 0.5em 0.5em 1em;\n}\n.msg-header-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n}\n.msg-header-text[_ngcontent-%COMP%] {\n font-weight: bold;\n font-size: 0.9em;\n margin: 0.2em 0 0 0.5em;\n max-width: 10em;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.msg-header-date[_ngcontent-%COMP%] {\n font-size: 0.7em;\n margin-left: 0.5em;\n}\n.profile-pic-container-small[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0);\n height: 1.7em;\n width: 1.7em;\n border-radius: 100%;\n display: flex;\n}\n.card-icon[_ngcontent-%COMP%] {\n width: 1em;\n height: 1em;\n}\n\n.btn[_ngcontent-%COMP%]:focus, .btn[_ngcontent-%COMP%]:active {\n outline: none !important;\n box-shadow: none !important;\n}\n\n[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 0.2em;\n}\n\n[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n opacity: 0;\n}\n\n[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--scrollbar-thumb);\n opacity: 0.1;\n border-radius: 1em;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lc3NhZ2UtbW9kYWwuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7RUFDRSxXQUFXO0VBQ1gsWUFBWTtBQUNkO0FBRUE7RUFDRSxtQ0FBbUM7RUFDbkMsV0FBVztFQUNYLHNCQUFzQjtFQUN0QixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0FBQ2xCO0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7QUFFQSxtQkFBbUI7QUFFbkI7RUFDRSxnQkFBZ0I7RUFDaEIsMkJBQTJCO0FBQzdCO0FBRUE7RUFDRSx1QkFBdUI7QUFDekI7QUFFQTtFQUNFLG9DQUFvQztFQUNwQyxZQUFZO0VBQ1osV0FBVztFQUNYLFdBQVc7RUFDWCxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLDJCQUEyQjtBQUM3QjtBQUVBO0VBQ0UsYUFBYTtBQUNmO0FBRUE7RUFDRSxXQUFXO0FBQ2I7QUFFQSwwQkFBMEI7QUFDMUI7RUFDRSwrQkFBK0I7RUFDL0IsdURBQXVEO0VBQ3ZELFlBQVk7RUFDWixZQUFZO0VBQ1osd0JBQXdCOztFQUV4QixnQkFBZ0I7QUFDbEI7QUFFQSxtQkFBbUI7QUFDbkI7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLDhCQUE4QjtFQUM5QixnQkFBZ0I7RUFDaEIsOEJBQThCO0FBQ2hDO0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0FBQ3JCO0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLHVC
5466QUF1QjtFQUN2QixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtFQUN2QixtQkFBbUI7QUFDckI7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEI7QUFFQTtFQUNFLGtDQUFrQztFQUNsQyxhQUFhO0VBQ2IsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQixhQUFhO0FBQ2Y7QUFFQTtFQUNFLFVBQVU7RUFDVixXQUFXO0FBQ2I7QUFFQSxrRkFBa0Y7QUFDbEY7O0VBRUUsd0JBQXdCO0VBQ3hCLDJCQUEyQjtBQUM3QjtBQUVBLFVBQVU7QUFDVjtFQUNFLFlBQVk7QUFDZDtBQUVBLFVBQVU7QUFDVjtFQUNFLFVBQVU7QUFDWjtBQUVBLFdBQVc7QUFDWDtFQUNFLGtDQUFrQztFQUNsQyxZQUFZO0VBQ1osa0JBQWtCO0FBQ3BCIiwiZmlsZSI6Im1lc3NhZ2UtbW9kYWwuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIE1lc3NhZ2UgQ2FyZCAqL1xuLmNhcmQge1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubWVzc2FnZS1jYXJkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHQtZ3JleSk7XG4gIHdpZHRoOiAxMDAlO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBtYXgtaGVpZ2h0OiAzMGVtO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4udGFibGUgdGQge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuXG4vKiBNZXNzYWdlIGltYWdlcyAqL1xuXG4ubXNnLWZvb3Rlci1pbWcge1xuICBtYXgtaGVpZ2h0OiAyMGVtO1xuICB0cmFuc2l0aW9uOiBhbGwgbGluZWFyIDAuMnM7XG59XG5cbi5tc2ctZm9vdGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5tc2ctZm9vdGVyLWltZy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIGxpbmVhciAwLjJzO1xufVxuXG4ubXNnLWZvb3Rlci1pbWctb3ZlcmxheTpob3ZlciB7XG4gIG9wYWNpdHk6IDEwMCU7XG59XG5cbiNleHRlcm5hbC1saW5rLWljb24ge1xuICBoZWlnaHQ6IDMzJTtcbn1cblxuLyogTWVzc2FnZSBDYXJvdXNlbCBQYWdlICovXG4ucGFnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7XG4gIGJveC1zaGFkb3c6IDAgMC4xNWVtIDAuMjVlbSAwLjA1ZW0gcmdiYSgwLCAwLCAwLCAwLjE3NSk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgaGVpZ2h0OiA3MHZoO1xuICBwYWRkaW5nOiAzZW0gNmVtIDNlbSA2ZW07XG5cbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLyogTWVzc2FnZSBIZWFkZXIgKi9cbi5tc2ctaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBwYWRkaW5nOiAwLjVlbSAwLjVlbSAwLjVlbSAxZW07XG59XG5cbi5tc2ctaGVhZGVyLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cblxuLm1zZy1oZWFkZXItdGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBtYXJnaW46IDAuMmVtIDAgMCAwLjVlbTtcbiAgbWF4LXdpZHRoOiAxMGVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1zZy1oZWFkZXItZGF0ZSB7XG4gIGZvbnQtc2l6ZTogMC43ZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbn1cblxuLnByb2ZpbGUtcGljLWNvbnRhaW5lci1zbWFsbCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gIGhlaWdodDogMS43ZW07XG4gIHdpZHRoOiAxLjdlbTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmNhcmQtaWNvbiB7XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xufVxuXG4vKiBSZW1vdmUgdGhlIGJsdWUgb3V0bGluZSBhcm91bmQgdGhlIGJ1dHRvbiBvbiB0aGUgaGVhZGVycyB3aGVuIHRoZXkncmUgY2xpY2tlZCAqL1xuLmJ0bjpmb2N1cyxcbi5idG46YWN0aXZlIHtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIHdpZHRoICovXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDAuMmVtO1xufVxuXG4vKiBUcmFjayAqL1xuOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi8qIEhhbmRsZSAqL1xuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNjcm9sbGJhci10aHVtYik7XG4gIG9wYWNpdHk6IDAuMTtcbiAgYm9yZGVyLXJhZGl1czogMWVtO1xufVxuIl19 */"] }); 5467 5468 5469/***/ }), 5470 5471/***/ 46438: 5472/*!*******************************************************************************!*\ 5473 !*** ./src/app/pages/viewing/messages/image-footer/image-footer.component.ts ***! 5474 \*******************************************************************************/ 5475/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 5476 5477"use strict"; 5478__webpack_require__.r(__webpack_exports__); 5479/* harmony export */ __webpack_require__.d(__webpack_exports__, { 5480/* harmony export */ "ImageFooterComponent": function() { return /* binding */ ImageFooterComponent; } 5481/* harmony export */ }); 5482/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 37716); 5483/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common */ 38583); 5484/* harmony import */ var _angular_fire_storage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/fire/storage */ 68274); 5485 5486 5487 5488 5489function ImageFooterComponent_a_1_div_4_Template(rf, ctx) { if (rf & 1) { 5490 const _r6 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); 5491 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 7);
5492 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function ImageFooterComponent_a_1_div_4_Template_div_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r6); const ctx_r5 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); return ctx_r5.popupMessage.emit(); }); 5493 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "span"); 5494 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2); 5495 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5496 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5497} if (rf & 2) { 5498 const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); 5499 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); 5500 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"]("+", ctx_r2.imageList.length - 3, ""); 5501} } 5502function ImageFooterComponent_a_1_ng_template_5_Template(rf, ctx) { if (rf & 1) { 5503 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "a", 8); 5504 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpipe"](1, "getDownloadURL"); 5505 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](2, "img", 9); 5506 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5507} if (rf & 2) { 5508 const image_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"]().$implicit; 5509 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("href", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpipeBind1"](1, 1, image_r1), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsanitizeUrl"]); 5510} } 5511function ImageFooterComponent_a_1_Template(rf, ctx) { if (rf & 1) { 5512 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "a", 2); 5513 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "img", 3); 5514 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpipe"](2, "getDownloadURL"); 5515 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "div", 4); 5516 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](4, ImageFooterComponent_a_1_div_4_Template, 3, 1, "div", 5); 5517 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](5, ImageFooterComponent_a_1_ng_template_5_Template, 3, 3, "ng-template", null, 6, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); 5518 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5519 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5520} if (rf & 2) { 5521 const image_r1 = ctx.$implicit; 5522 const _r3 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](6); 5523 const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); 5524 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); 5525 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("src", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpipeBind1"](2, 3, image_r1), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsanitizeUrl"]); 5526 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](3); 5527 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx_r0.imageList.indexOf(image_r1) === 2 && ctx_r0.imageList.length > 3)("ngIfElse", _r3); 5528} } 5529const _c0 = function (a0) { return { background: a0 }; }; 5530class ImageFooterComponent { 5531 constructor() { 5532 this.popupMessage = new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter(); 5533 } 5534 ngOnInit() { } 5535} 5536ImageFooterComponent.ɵfac = function ImageFooterComponent_Factory(t) { return new (t || ImageFooterComponent)(); }; 5537ImageFooterComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: ImageFooterComponent, selectors: [["app-image-footer"]], inputs: { backColor: "backColor", imageList: "imageList" }, outputs: { popupMessage: "popupMessage" }, decls: 2, vars: 4, consts: [[1, "d-flex", "p-2", "msg-footer", 3, "ngStyle"], ["class", "col p-0 d-flex justify-content-center", 4, "ngFor", "ngForOf"], [1, "col", "p-0", "d-flex", "justify-content-center"], ["alt", "Virtrolio Message image", 1, "msg-footer-img", 3, "src"], [1, "msg-footer-img-overlay"], ["class", "d-flex justify-content-center align-items-center", "id", "extra-image-counter", 3, "click", 4, "ngIf", "ngIfElse"], ["externalLink", ""], ["id", "extra-image-counter", 1, "d-flex", "justify-content-center", "align-items-center", 3, "click"], ["target", "_blank", 1, "h-100", "w-100", "d-flex", "justify-content-center", "align-items-center", 3, "href"], ["src", "../../../../../assets/images/icons/external-link.svg", "alt", "Virtrolio Message image", 1, "external-link-icon"]], template: function ImageFooterComponent_Template(rf, ctx) { if (rf & 1) { 5538 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); 5539 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, ImageFooterComponent_a_1_Template, 7, 5, "a", 1); 5540 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 5541 } if (rf & 2) { 5542 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpureFunction1"](2, _c0, ctx.backColor)); 5543 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); 5544 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx.imageList.slice(0, 3)); 5545 } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__.NgStyle, _angular_common__WEBPACK_IMPORTED_MODULE_1__.NgForOf, _angular_common__WEBPACK_IMPORTED_MODULE_1__.NgIf], pipes: [_angular_fire_storage__WEBPACK_IMPORTED_MODULE_2__.GetDownloadURLPipe], styles: [".msg-footer[_ngcontent-%COMP%] {\n height: 7em;\n}\n\n.msg-footer-img[_ngcontent-%COMP%] {\n width: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n transition: all linear 0.2s;\n}\n\n.msg-footer-img-overlay[_ngcontent-%COMP%] {\n background-color: rgba(0, 0, 0, 0.5);\n height: 100%;\n width: 100%;\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n opacity: 0;\n transition: all linear 0.2s;\n}\n\n.msg-footer-img-overlay[_ngcontent-%COMP%]:hover {\n opacity: 100%;\n}\n\n.external-link-icon[_ngcontent-%COMP%] {\n height: 2em;\n}\n\n#extra-image-counter[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n\n#extra-image-counter[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\n font-size: 2em;\n color: white;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltYWdlLWZvb3Rlci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlCQUF5Qjs7QUFFekI7RUFDRSxXQUFXO0FBQ2I7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsb
55450JBQWlCO0tBQWpCLGlCQUFpQjtFQUNqQiwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSxvQ0FBb0M7RUFDcEMsWUFBWTtFQUNaLFdBQVc7RUFDWCxXQUFXO0VBQ1gsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsa0JBQWtCO0VBQ2xCLFVBQVU7RUFDViwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxXQUFXO0FBQ2I7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxjQUFjO0VBQ2QsWUFBWTtBQUNkIiwiZmlsZSI6ImltYWdlLWZvb3Rlci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogTWVzc2FnZSBpbWFnZSBmb290ZXIgKi9cblxuLm1zZy1mb290ZXIge1xuICBoZWlnaHQ6IDdlbTtcbn1cblxuLm1zZy1mb290ZXItaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICB0cmFuc2l0aW9uOiBhbGwgbGluZWFyIDAuMnM7XG59XG5cbi5tc2ctZm9vdGVyLWltZy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIGxpbmVhciAwLjJzO1xufVxuXG4ubXNnLWZvb3Rlci1pbWctb3ZlcmxheTpob3ZlciB7XG4gIG9wYWNpdHk6IDEwMCU7XG59XG5cbi5leHRlcm5hbC1saW5rLWljb24ge1xuICBoZWlnaHQ6IDJlbTtcbn1cblxuI2V4dHJhLWltYWdlLWNvdW50ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiNleHRyYS1pbWFnZS1jb3VudGVyID4gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBjb2xvcjogd2hpdGU7XG59XG4iXX0= */"] }); 5546 5547 5548/***/ }), 5549 5550/***/ 2360: 5551/*!**************************************************************!*\ 5552 !*** ./src/app/pages/viewing/messages/messages.component.ts ***! 5553 \**************************************************************/ 5554/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 5555 5556"use strict"; 5557__webpack_require__.r(__webpack_exports__); 5558/* harmony export */ __webpack_require__.d(__webpack_exports__, { 5559/* harmony export */ "MessagesComponent": function() { return /* binding */ MessagesComponent; } 5560/* harmony export */ }); 5561/* harmony import */ var _message_modal_message_modal_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../message-modal/message-modal.component */ 1641); 5562/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 37716); 5563/* harmony import */ var _core_viewing_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../core/viewing.service */ 91225); 5564/* harmony import */ var _core_auth_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../core/auth.service */ 87341); 5565/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/router */ 39895); 5566/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/common */ 38583); 5567/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ngx-toastr */ 49344); 5568/* harmony import */ var ngx_bootstrap_modal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ngx-bootstrap/modal */ 63301); 5569/* harmony import */ var _core_msg_io_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../core/msg-io.service */ 84468); 5570/* harmony import */ var ngx_markdown__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ngx-markdown */ 76715); 5571/* harmony import */ var _image_footer_image_footer_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./image-footer/image-footer.component */ 46438); 5572/* harmony import */ var _shared_components_inline_images_inline_images_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../shared/components/inline-images/inline-images.component */ 72321); 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585function MessagesComponent_div_0_Template(rf, ctx) { if (rf & 1) { 5586 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](0, "div", 2); 5587 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelement"](1, "div", 3); 5588 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5589} } 5590function MessagesComponent_ng_template_1_div_0_Template(rf, ctx) { if (rf & 1) { 5591 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](0, "div", 2); 5592 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](1, "div", 16); 5593 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelement"](2, "img", 17); 5594 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](3, "h1", 18); 5595 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](4, "No messages yet"); 5596 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5597 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](5, "p", 19); 5598 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](6, " Go to "); 5599 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](7, "a", 20); 5600 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](8, "your virtrolio"); 5601 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5602 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](9, " and generate a Sharing Link to send to your friends! "); 5603 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5604 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5605 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5606} } 5607function MessagesComponent_ng_template_1_ng_template_1_button_2_Template(rf, ctx) { if (rf & 1) { 5608 const _r11 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵgetCurrentView"](); 5609 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](0, "button", 26); 5610 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵlistener"]("click", function MessagesComponent_ng_template_1_ng_template_1_button_2_Template_button_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵrestoreView"](_r11); const ctx_r10 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](3); return ctx_r10.toggleViewStyle(); }); 5611 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](1, " Switch to Booklet "); 5612 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5613} } 5614function MessagesComponent_ng_template_1_ng_template_1_button_3_Template(rf, ctx) { if (rf & 1) { 5615 const _r13 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵgetCurrentView"](); 5616 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](0, "button", 26); 5617 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵlistener"]("click", function MessagesComponent_ng_template_1_ng_template_1_button_3_Template_button_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵrestoreView"](_r13); const ctx_r12 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](3); return ctx_r12.toggleViewStyle(); }); 5618 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](1, " Switch to Cards "); 5619 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5620} } 5621function MessagesComponent_ng_template_1_ng_template_1_div_4_div_1_app_image_footer_27_Template(rf, ctx) { if (rf & 1) { 5622 const _r19 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵgetCurrentView"](); 5623 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](0, "app-image-footer", 47); 5624 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵlistener"]("popupMessage", function MessagesComponent_ng_template_1_ng_template_1_div_4_div_1_app_image_footer_27_Template_app_image_footer_popupMessage_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵrestoreView"](_r19); const msg_r15 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"]().$implicit; const ctx_r17 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](4); return ctx_r17.popupMessage(msg_r15); }); 5625 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5626} if (rf & 2) { 5627 const msg_r15 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"]().$implicit; 5628 const ctx_r16 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](4); 5629 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("imageList", msg_r15.images)("backColor", ctx_r16.generateHeaderColor(msg_r15.backColor).bg); 5630} } 5631const _c0 = function (a0, a1) { return { background: a0, color: a1 }; }; 5632const _c1 = function () { return ["/viewing"]; }; 5633const _c2 = function (a0) { return { messageId: a0, showBookmarkAlert: true }; }; 5634const _c3 = function (a0, a1, a2) { return { background: a0, color: a1, "font-family": a2 }; }; 5635function MessagesComponent_ng_template_1_ng_template_1_div_4_div_1_Template(rf, ctx) { if (rf & 1) { 5636 const _r22 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵgetCurrentView"](); 5637 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](0, "div", 29); 5638 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](1, "div", 30); 5639 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](2, "div", 31); 5640 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](3, "table", 32); 5641 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](4, "tr"); 5642 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](5, "td"); 5643 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](6, "span", 33); 5644 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelement"](7, "img", 34); 5645 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5646 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5647 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](8, "td"); 5648 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](9, "table"); 5649 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](10, "tr", 35); 5650 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](11); 5651 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5652 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](12, "tr", 36); 5653 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](13); 5654 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5655 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5656 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5657 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5658 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5659 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5660 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](14, "div", 37); 5661 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](15, "table", 32); 5662 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](16, "tr"); 5663 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](17, "td"); 5664 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](18, "button", 38); 5665 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵlistener"]("click", function MessagesComponent_ng_template_1_ng_template_1_div_4_div_1_Template_button_click_18_listener() { const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵrestoreView"](_r22); const msg_r15 = restoredCtx.$implicit; const ctx_r21 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](4); return ctx_r21.popupMessage(msg_r15); }); 5666 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelement"](19, "img", 39); 5667 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5668 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](20, "a", 40); 5669 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](21, "button", 38); 5670 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵlistener"]("click", function MessagesComponent_ng_template_1_ng_template_1_div_4_div_1_Template_button_click_21_listener() { const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵrestoreView"](_r22); const msg_r15 = restoredCtx.$implicit; const ctx_r23 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](4); return ctx_r23.viewService.bookmarkMessage(msg_r15.id); }); 5671 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelement"](22, "img", 41); 5672 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5673 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5674 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](23, "button", 42); 5675 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵlistener"]("click", function MessagesComponent_ng_template_1_ng_template_1_div_4_div_1_Template_button_click_23_listener() { const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵrestoreView"](_r22); const msg_r15 = restoredCtx.$implicit; const ctx_r24 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](4); return ctx_r24.viewService.setMessageToDelete(msg_r15.id); }); 5676 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelement"](24, "img", 43); 5677 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5678 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5679 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5680 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5681 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5682 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5683 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](25, "div", 44); 5684 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵlistener"]("click", function MessagesComponent_ng_template_1_ng_template_1_div_4_div_1_Template_div_click_25_listener() { const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵrestoreView"](_r22); const msg_r15 = restoredCtx.$implicit; const ctx_r25 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](4); return ctx_r25.popupMessage(msg_r15); }); 5685 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelement"](26, "markdown", 45); 5686 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5687 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtemplate"](27, MessagesComponent_ng_template_1_ng_template_1_div_4_div_1_app_image_footer_27_Template, 1, 2, "app-image-footer", 46); 5688 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5689} if (rf & 2) { 5690 const msg_r15 = ctx.$implicit; 5691 const ctx_r14 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](4); 5692 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpropertyInterpolate"]("id", msg_r15.id); 5693 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](1); 5694 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpureFunction2"](13, _c0, ctx_r14.generateHeaderColor(msg_r15.backColor).bg, ctx_r14.generateHeaderColor(msg_r15.backColor).text)); 5695 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](6); 5696 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpropertyInterpolate"]("src", msg_r15.fromPic, _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵsanitizeUrl"]); 5697 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](4); 5698 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtextInterpolate1"](" ", msg_r15.fromName, " "); 5699 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](2); 5700 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtextInterpolate1"](" ", ctx_r14.viewService.timeSince(ctx_r14.viewService.n
5700owMillis, msg_r15.timestamp.toMillis(), msg_r15.timestamp.toDate().toDateString()), " "); 5701 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](6); 5702 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpropertyInterpolate"]("src", ctx_r14.generateHeaderColor(msg_r15.backColor).popup, _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵsanitizeUrl"]); 5703 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](1); 5704 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("routerLink", _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpureFunction0"](16, _c1))("queryParams", _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpureFunction1"](17, _c2, msg_r15.id)); 5705 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](2); 5706 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpropertyInterpolate"]("src", ctx_r14.generateHeaderColor(msg_r15.backColor).bookmark, _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵsanitizeUrl"]); 5707 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](2); 5708 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpropertyInterpolate"]("src", ctx_r14.generateHeaderColor(msg_r15.backColor).trash, _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵsanitizeUrl"]); 5709 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](1); 5710 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpureFunction3"](19, _c3, msg_r15.backColor, msg_r15.fontColor, ctx_r14.viewService.fonts[msg_r15.fontFamily].fontFamily + "," + ctx_r14.viewService.fonts[msg_r15.fontFamily].backupFont)); 5711 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](1); 5712 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpropertyInterpolate"]("data", ctx_r14.viewService.decodeHtml(msg_r15.contents)); 5713 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](1); 5714 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngIf", msg_r15.images && msg_r15.images.length > 0); 5715} } 5716function MessagesComponent_ng_template_1_ng_template_1_div_4_Template(rf, ctx) { if (rf & 1) { 5717 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](0, "div", 27); 5718 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtemplate"](1, MessagesComponent_ng_template_1_ng_template_1_div_4_div_1_Template, 28, 23, "div", 28); 5719 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5720} if (rf & 2) { 5721 const ctx_r8 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](3); 5722 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](1); 5723 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngForOf", ctx_r8.messageList); 5724} } 5725function MessagesComponent_ng_template_1_ng_template_1_div_5_div_20_app_inline_images_23_Template(rf, ctx) { if (rf & 1) { 5726 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelement"](0, "app-inline-images", 64); 5727} if (rf & 2) { 5728 const msg_r27 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"]().$implicit; 5729 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("images", msg_r27.images); 5730} } 5731function MessagesComponent_ng_template_1_ng_template_1_div_5_div_20_Template(rf, ctx) { if (rf & 1) { 5732 const _r31 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵgetCurrentView"](); 5733 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](0, "div", 60); 5734 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](1, "div", 30); 5735 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](2, "div", 31); 5736 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](3, "table", 32); 5737 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](4, "tr"); 5738 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](5, "td"); 5739 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](6, "span", 33); 5740 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelement"](7, "img", 34); 5741 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5742 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5743 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](8, "td"); 5744 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](9, "table"); 5745 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](10, "tr", 35); 5746 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](11); 5747 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5748 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](12, "tr", 36); 5749 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](13); 5750 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5751 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5752 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5753 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5754 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5755 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5756 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](14, "div", 61); 5757 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](15, "table", 32); 5758 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](16, "tr"); 5759 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](17, "td"); 5760 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](18, "a", 40); 5761 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](19, "button", 38); 5762 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵlistener"]("click", function MessagesComponent_ng_template_1_ng_template_1_div_5_div_20_Template_button_click_19_listener() { const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵrestoreView"](_r31); const msg_r27 = restoredCtx.$implicit; const ctx_r30 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](4); return ctx_r30.viewService.bookmarkMessage(msg_r27.id); }); 5763 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelement"](20, "img", 41); 5764 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5765 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5766 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5767 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5768 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5769 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5770 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5771 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](21, "div", 62); 5772 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelement"](22, "markdown", 45); 5773 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtemplate"](23, MessagesComponent_ng_template_1_ng_template_1_div_5_div_20_app_inline_images_23_Template, 1, 1, "app-inline-images", 63); 5774 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5775 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5776} if (rf & 2) { 5777 const msg_r27 = ctx.$implicit; 5778 const ctx_r26 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](4); 5779 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](1); 5780 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpureFunction2"](10, _c0, ctx_r26.generateHeaderColor(msg_r27.backColor).bg, ctx_r26.generateHeaderColor(msg_r27.backColor).text)); 5781 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](6); 5782 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpropertyInterpolate"]("src", msg_r27.fromPic, _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵsanitizeUrl"]); 5783 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](4); 5784 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtextInterpolate1"](" ", msg_r27.fromName, " "); 5785 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](2); 5786 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtextInterpolate1"](" ", ctx_r26.viewService.timeSince(ctx_r26.viewService.n
5786owMillis, msg_r27.timestamp.toMillis(), msg_r27.timestamp.toDate().toDateString()), " "); 5787 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](5); 5788 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("routerLink", _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpureFunction0"](13, _c1))("queryParams", _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpureFunction1"](14, _c2, msg_r27.id)); 5789 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](2); 5790 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpropertyInterpolate"]("src", ctx_r26.generateHeaderColor(msg_r27.backColor).bookmark, _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵsanitizeUrl"]); 5791 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](1); 5792 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpureFunction3"](16, _c3, msg_r27.backColor, msg_r27.fontColor, ctx_r26.viewService.fonts[msg_r27.fontFamily].fontFamily + "," + ctx_r26.viewService.fonts[msg_r27.fontFamily].backupFont)); 5793 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](1); 5794 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpropertyInterpolate"]("data", ctx_r26.viewService.decodeHtml(msg_r27.contents)); 5795 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](1); 5796 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngIf", msg_r27.images); 5797} } 5798function MessagesComponent_ng_template_1_ng_template_1_div_5_Template(rf, ctx) { if (rf & 1) { 5799 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](0, "div", 48); 5800 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](1, "div", 49); 5801 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](2, "div", 50); 5802 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](3, "div", 51); 5803 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](4, "div", 52); 5804 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](5, "div", 31); 5805 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](6, "table", 32); 5806 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](7, "tr"); 5807 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](8, "td"); 5808 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](9, "span", 33); 5809 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelement"](10, "img", 53); 5810 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5811 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5812 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](11, "td"); 5813 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](12, "table"); 5814 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](13, "tr", 35); 5815 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](14, " Virtrolio Team "); 5816 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5817 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](15, "tr", 36); 5818 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](16); 5819 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5820 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5821 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5822 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5823 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5824 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5825 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5826 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](17, "div", 54); 5827 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](18, "div", 55); 5828 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](19, " Welcome to your virtrolio! Click on the buttons below to navigate through your messages. "); 5829 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5830 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5831 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5832 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtemplate"](20, MessagesComponent_ng_template_1_ng_template_1_div_5_div_20_Template, 24, 20, "div", 56); 5833 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5834 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5835 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](21, "div", 57); 5836 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](22, "a", 58); 5837 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](23, "Prev"); 5838 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5839 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](24, "a", 59); 5840 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](25, "Next"); 5841 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5842 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5843 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5844} if (rf & 2) { 5845 const ctx_r9 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](3); 5846 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](16); 5847 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtextInterpolate2"](" You have ", ctx_r9.messageList.length, " ", ctx_r9.oneMessage, " "); 5848 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](4); 5849 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngForOf", ctx_r9.messageList); 5850} } 5851function MessagesComponent_ng_template_1_ng_template_1_Template(rf, ctx) { if (rf & 1) { 5852 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](0, "div", 21); 5853 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](1, "div", 22); 5854 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtemplate"](2, MessagesComponent_ng_template_1_ng_template_1_button_2_Template, 2, 0, "button", 23); 5855 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtemplate"](3, MessagesComponent_ng_template_1_ng_template_1_button_3_Template, 2, 0, "button", 23); 5856 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5857 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5858 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtemplate"](4, MessagesComponent_ng_template_1_ng_template_1_div_4_Template, 2, 1, "div", 24); 5859 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtemplate"](5, MessagesComponent_ng_template_1_ng_template_1_div_5_Template, 26, 3, "div", 25); 5860} if (rf & 2) { 5861 const ctx_r5 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](2); 5862 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](2); 5863 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngIf", !ctx_r5.viewService.isCarouselView); 5864 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](1); 5865 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngIf", ctx_r5.viewService.isCarouselView); 5866 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](1); 5867 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngIf", ctx_r5.viewService.isCarouselView === false); 5868 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](1); 5869 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngIf", ctx_r5.viewService.isCarouselView == true); 5870} } 5871function MessagesComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) { 5872 const _r33 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵgetCurrentView"](); 5873 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtemplate"](0, MessagesComponent_ng_template_1_div_0_Template, 10, 0, "div", 0); 5874 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtemplate"](1, MessagesComponent_ng_template_1_ng_template_1_Template, 6, 4, "ng-template", null, 4, _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtemplateRefExtractor"]); 5875 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](3, "div", 5); 5876 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](4, "div", 6); 5877 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](5, "div", 7);
5878 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](6, "div", 8); 5879 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](7, "h5", 9); 5880 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](8, "Easy now!"); 5881 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5882 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](9, "button", 10); 5883 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](10, "span", 11); 5884 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](11, "\u00D7"); 5885 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5886 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5887 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5888 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](12, "div", 12); 5889 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](13, " Looks like you're trying to delete a message! Please be sure that this is what you want to do. "); 5890 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](14, "b"); 5891 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](15, "It is not possible to recover a deleted message."); 5892 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5893 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5894 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](16, "div", 13); 5895 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](17, "button", 14); 5896 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵlistener"]("click", function MessagesComponent_ng_template_1_Template_button_click_17_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵrestoreView"](_r33); const ctx_r32 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](); return ctx_r32.viewService.deleteMessage(); }); 5897 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](18, " Delete Message "); 5898 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5899 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](19, "button", 15); 5900 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](20, " Cancel "); 5901 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5902 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5903 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5904 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5905 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 5906} if (rf & 2) { 5907 const _r4 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵreference"](2); 5908 const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](); 5909 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngIf", ctx_r2.messageList.length === 0)("ngIfElse", _r4); 5910} } 5911class MessagesComponent { 5912 constructor(viewService, authService, route, router, vps, toastr, modalService, msgIoService) { 5913 this.viewService = viewService; 5914 this.authService = authService; 5915 this.route = route; 5916 this.router = router; 5917 this.vps = vps; 5918 this.toastr = toastr; 5919 this.modalService = modalService; 5920 this.msgIoService = msgIoService; 5921 this.isLoading = true; 5922 this.messageList = []; 5923 this.oneMessage = 'messages'; 5924 } 5925 /** 5926 * Assign messages passed via the [setMessageList] binding 5927 * @param messages list of verified VirtrolioMessages 5928 */ 5929 set setMessageList(messages) { 5930 if (messages) { 5931 this.messageList = messages; 5932 // Set 'You have x message(s)' text based on number of messages 5933 this.messageList.length === 1 5934 ? (this.oneMessage = 'message') 5935 : (this.oneMessage = 'messages'); 5936 } 5937 } 5938 set setIsLoading(isLoading) { 5939 this.isLoading = isLoading; 5940 } 5941 ngOnInit() { } 5942 /** 5943 * Generate the lightness value of HSL from RBG 5944 */ 5945 getLightness(r, g, b) { 5946 r /= 255; 5947 g /= 255; 5948 b /= 255; 5949 const max = Math.max(r, g, b); 5950 const min = Math.min(r, g, b); 5951 return (max + min) / 2; 5952 } 5953 ngOnDestroy() { 5954 $('#delete').modal('hide'); 5955 } 5956 /** 5957 * Generate a darkened version of backColor, returning this new header color and the appropriate header text color 5958 * @param backColor: background color of the message 5959 */ 5960 generateHeaderColor(backColor) { 5961 const bgR = parseInt(backColor.slice(1, 3), 16); 5962 const bgG = parseInt(backColor.slice(3, 5), 16); 5963 const bgB = parseInt(backColor.slice(5), 16); 5964 let headerTextColor; 5965 let trashIcon; 5966 let bookmarkIcon; 5967 let popupIcon; 5968 if (this.getLightness(bgR, bgG, bgB) > 0.65) { 5969 headerTextColor = '#000000'; 5970 trashIcon = '../../../../assets/images/icons/trash-black.svg'; 5971 bookmarkIcon = '../../../../assets/images/icons/bookmark-black.svg'; 5972 popupIcon = '../../../../assets/images/icons/maximize-black.svg'; 5973 } 5974 else { 5975 headerTextColor = '#FFFFFF'; 5976 trashIcon = '../../../../assets/images/icons/trash-white.svg'; 5977 bookmarkIcon = '../../../../assets/images/icons/bookmark-white.svg'; 5978 popupIcon = '../../../../assets/images/icons/maximize-white.svg'; 5979 } 5980 const hR = bgR + 20 > 255 ? 255 : bgR + 20; 5981 const hG = bgG + 20 > 255 ? 255 : bgG + 20; 5982 const hB = bgB + 20 > 255 ? 255 : bgB + 20; 5983 const headerColor = hR.toString(16) + hG.toString(16) + hB.toString(16); 5984 return { 5985 bg: '#' + headerColor, 5986 text: headerTextColor, 5987 trash: trashIcon, 5988 bookmark: bookmarkIcon, 5989 popup: popupIcon, 5990 }; 5991 } 5992 /** 5993 * Activate an NgbModal to display the selected message 5994 * @param msg VirtrolioMessage object 5995 */ 5996 popupMessage(msg) { 5997 this.viewService.currentMessageModal = msg; 5998 this.modalService.show(_message_modal_message_modal_component__WEBPACK_IMPORTED_MODULE_0__.MessageModalComponent, {
5999 class: 'modal-dialog-centered', 6000 }); 6001 } 6002 /** 6003 * Swap between message viewing styles 6004 */ 6005 toggleViewStyle() { 6006 this.viewService.isCarouselView = this.viewService.isCarouselView === false; 6007 } 6008} 6009MessagesComponent.ɵfac = function MessagesComponent_Factory(t) { return new (t || MessagesComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdirectiveInject"](_core_viewing_service__WEBPACK_IMPORTED_MODULE_1__.ViewingService), _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdirectiveInject"](_core_auth_service__WEBPACK_IMPORTED_MODULE_2__.AuthService), _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_8__.ActivatedRoute), _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_8__.Router), _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdirectiveInject"](_angular_common__WEBPACK_IMPORTED_MODULE_9__.ViewportScroller), _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdirectiveInject"](ngx_toastr__WEBPACK_IMPORTED_MODULE_10__.ToastrService), _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdirectiveInject"](ngx_bootstrap_modal__WEBPACK_IMPORTED_MODULE_3__.BsModalService), _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdirectiveInject"](_core_msg_io_service__WEBPACK_IMPORTED_MODULE_4__.MsgIoService)); }; 6010MessagesComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdefineComponent"]({ type: MessagesComponent, selectors: [["app-messages"]], inputs: { setMessageList: "setMessageList", setIsLoading: "setIsLoading" }, decls: 3, vars: 2, consts: [["class", "centered-container d-flex justify-content-center", 4, "ngIf", "ngIfElse"], ["messages", ""], [1, "centered-container", "d-flex", "justify-content-center"], ["role", "status", 1, "spinner-border"], ["showMessages", ""], ["aria-hidden", "true", "aria-labelledby", "delete-message-modal-title", "id", "delete", "role", "dialog", "tabindex", "-1", 1, "modal", "fade"], ["role", "document", 1, "modal-dialog", "modal-dialog-centered"], [1, "modal-content"], [1, "modal-header"], ["id", "delete-message-modal-title", 1, "modal-title"], ["aria-label", "Close", "data-dismiss", "modal", "type", "button", 1, "close"], ["aria-hidden", "true"], ["id", "delete-message-body", 1, "modal-body"], [1, "modal-footer"], ["data-dismiss", "modal", "type", "button", 1, "btn", "btn-danger", 3, "click"], ["data-dismiss", "modal", "type", "button", 1, "btn", "btn-secondary"], [1, "empty-state-container", "px-5"], ["alt", "No messages", "src", "../../../assets/images/EmptyMessages.svg", 1, "empty-state-img"], [1, "empty-state-header", "pt-2"], [1, "empty-state-body", "pt-2"], ["routerLink", "/my-virtrolio", "routerLinkActive", "navbar-nav-active"], [1, "row", "my-3"], [1, "col-12"], ["class", "btn-sm btn-primary shadow", 3, "click", 4, "ngIf"], ["class", "card-columns mt-3", 4, "ngIf"], ["class", "viewing-container mb-5", 4, "ngIf"], [1, "btn-sm", "btn-primary", "shadow", 3, "click"], [1, "card-columns", "mt-3"], ["class", "card shadow", 3, "id", 4, "ngFor", "ngForOf"], [1, "card", "shadow", 3, "id"], [1, "msg-header", 3, "ngStyle"], [1, "msg-header-group", "pt-1"], [1, "header-table"], [1, "profile-pic-container-small", "mr-2"], ["alt", "profile-pic", 1, "profile-pic", 3, "src"], [1, "msg-header-text"], [1, "msg-header-date"], [1, "card-header-group"], ["type", "button", 1, "btn", "card-button", 3, "click"], ["alt", "popup", 1, "card-icon", 3, "src"], ["target", "_blank", 3, "routerLink", "queryParams"], ["alt", "bookmark", 1, "card-icon", 3, "src"], ["data-target", "#delete", "data-toggle", "modal", "type", "button", 1, "btn", "card-button", 3, "click"], ["alt", "delete", 1, "card-icon", 3, "src"], [1, "card-body", "message-card", "message", 3, "ngStyle", "click"], ["emoji", "", 3, "data"], [3, "imageList", "backColor", "popupMessage", 4, "ngIf"], [3, "imageList", "backColor", "popupMessage"], [1, "viewing-container", "mb-5"], ["data-interval", "false", "data-ride", "carousel", "id", "carousel", 1, "carousel", "slide", "border", "rounded"], [1, "carousel-inner"], [1, "carousel-item", "active"], [1, "msg-header"], ["alt", "profile-pic", "src", "../../../../assets/images/logo_reg.png", 1, "profile-pic"], [1, "page", "title-page", "vertical-center"], [1, "title-text"], ["class", "carousel-item", 4, "ngFor", "ngForOf"], [1, "carousel-control
6010s", "shadow"], ["data-slide", "prev", "href", "#carousel", "role", "button", 1, "carousel-controls-button"], ["data-slide", "next", "href", "#carousel", "role", "button", 1, "carousel-controls-button"], [1, "carousel-item"], [1, "card-header-group", "vertical-center"], [1, "card-body", "page", "message", 3, "ngStyle"], [3, "images", 4, "ngIf"], [3, "images"]], template: function MessagesComponent_Template(rf, ctx) { if (rf & 1) { 6011 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtemplate"](0, MessagesComponent_div_0_Template, 2, 0, "div", 0); 6012 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtemplate"](1, MessagesComponent_ng_template_1_Template, 21, 2, "ng-template", null, 1, _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtemplateRefExtractor"]); 6013 } if (rf & 2) { 6014 const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵreference"](2); 6015 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngIf", ctx.isLoading)("ngIfElse", _r1); 6016 } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_9__.NgIf, _angular_router__WEBPACK_IMPORTED_MODULE_8__.RouterLinkWithHref, _angular_router__WEBPACK_IMPORTED_MODULE_8__.RouterLinkActive, _angular_common__WEBPACK_IMPORTED_MODULE_9__.NgForOf, _angular_common__WEBPACK_IMPORTED_MODULE_9__.NgStyle, ngx_markdown__WEBPACK_IMPORTED_MODULE_11__.MarkdownComponent, _image_footer_image_footer_component__WEBPACK_IMPORTED_MODULE_5__.ImageFooterComponent, _shared_components_inline_images_inline_images_component__WEBPACK_IMPORTED_MODULE_6__.InlineImagesComponent], styles: [".title-page[_ngcontent-%COMP%] {\n text-align: center;\n font-size: 1em;\n font-family: Montserrat, sans-serif;\n}\n\n.empty-state-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.empty-state-img[_ngcontent-%COMP%] {\n width: 10em;\n}\n\n.empty-state-header[_ngcontent-%COMP%] {\n font-size: 1.5em;\n color: var(--light-grey);\n}\n\n.empty-state-body[_ngcontent-%COMP%] {\n font-size: 1em;\n color: var(--light-grey);\n}\n\n.message[_ngcontent-%COMP%] {\n text-align: justify;\n font-size: 1em;\n}\n\n\n\n.card[_ngcontent-%COMP%] {\n display: inline-block;\n}\n\n.message-card[_ngcontent-%COMP%] {\n position: relative;\n background-color: var(--light-grey);\n width: 100%;\n word-break: break-word;\n max-height: 30em;\n overflow: hidden;\n cursor: pointer;\n}\n\n.table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n overflow-wrap: break-word;\n}\n\n\n\n.page[_ngcontent-%COMP%] {\n background-color: var(--accent);\n box-shadow: 0 0.15em 0.25em 0.05em rgba(0, 0, 0, 0.175);\n color: white;\n height: 70vh;\n padding: 1.5em;\n overflow-y: auto;\n}\n\n.carousel-controls[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n padding: 1em 2em;\n}\n\n.carousel-controls-button[_ngcontent-%COMP%] {\n color: var(--accent);\n font-weight: bold;\n}\n\n.carousel-controls-button[_ngcontent-%COMP%]:hover {\n text-decoration: none;\n}\n\n\n\n.msg-header[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n line-height: 1em;\n height: 3.5em;\n padding: 0.5em 0.5em 0.5em 1em;\n}\n\n.msg-header-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n}\n\n.msg-header-text[_ngcontent-%COMP%] {\n font-weight: bold;\n font-size: 0.9em;\n margin: 0.2em 0 0 0.5em;\n max-width: 10em;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.msg-header-date[_ngcontent-%COMP%] {\n font-size: 0.7em;\n margin: 0 0 0 0.5em;\n}\n\n.profile-pic-container-small[_ngcontent-%COMP%] {\n background: #ffffff;\n height: 1.7em;\n width: 1.7em;\n border-radius: 100%;\n display: flex;\n}\n\n\n\n.btn[_ngcontent-%COMP%]:focus, .btn[_ngcontent-%COMP%]:active {\n outline: none !important;\n box-shadow: none !important;\n}\n\n.card-button[_ngcontent-%COMP%] {\n display: flex;\n float: right;\n margin-top: 0;\n align-self: flex-end;\n}\n\n.card-icon[_ngcontent-%COMP%] {\n width: 1.2em;\n height: 1.2em;\n border-radius: 0.15em;\n padding: 0.1em;\n}\n\n.btn[_ngcontent-%COMP%] {\n padding: 0 0.5em;\n}\n\n@media (min-width: 0px) {\n .card-columns[_ngcontent-%COMP%] {\n -moz-column-count: 1;\n column-count: 1;\n }\n\n .card-columns[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] {\n width: 100%;\n }\n}\n\n@media (min-width: 576px) {\n .card-columns[_ngcontent-%COMP%] {\n -moz-column-count: 1;\n column-count: 1;\n }\n}\n\n@media (min-width: 768px) {\n .card-columns[_ngcontent-%COMP%] {\n -moz-column-count: 2;\n column-count: 2;\n }\n}\n\n@media (min-width: 992px) {\n .card-columns[_ngcontent-%COMP%] {\n -moz-column-count: 3;\n column-count: 3;\n }\n}\n\n@media (min-width: 1200px) {\n .card-columns[_ngcontent-%COMP%] {\n -moz-column-count: 3;\n column-count: 3;\n }\n}\n\n\n\n[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 0.2em;\n}\n\n\n\n[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n opacity: 0;\n}\n\n\n\n[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--scrollbar-thumb);\n opacity: 0.1;\n border-radius: 1em;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lc3NhZ2VzLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLG1DQUFtQztBQUNyQzs7QUFFQTtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxXQUFXO0FBQ2I7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsY0FBYztFQUNkLHdCQUF3QjtB
6016QUMxQjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixjQUFjO0FBQ2hCOztBQUVBLGlCQUFpQjs7QUFDakI7RUFDRSxxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUNBQW1DO0VBQ25DLFdBQVc7RUFDWCxzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUVBLDBCQUEwQjs7QUFDMUI7RUFDRSwrQkFBK0I7RUFDL0IsdURBQXVEO0VBQ3ZELFlBQVk7RUFDWixZQUFZO0VBQ1osY0FBYztFQUNkLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLHFCQUFxQjtBQUN2Qjs7QUFFQSxtQkFBbUI7O0FBQ25CO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYiw4QkFBOEI7QUFDaEM7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQixhQUFhO0FBQ2Y7O0FBRUEsa0ZBQWtGOztBQUNsRjs7RUFFRSx3QkFBd0I7RUFDeEIsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7RUFDWixhQUFhO0VBQ2Isb0JBQW9CO0FBQ3RCOztBQUVBO0VBQ0UsWUFBWTtFQUNaLGFBQWE7RUFDYixxQkFBcUI7RUFDckIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFO0lBQ0Usb0JBQWU7U0FBZixlQUFlO0VBQ2pCOztFQUVBO0lBQ0UsV0FBVztFQUNiO0FBQ0Y7O0FBRUE7RUFDRTtJQUNFLG9CQUFlO1NBQWYsZUFBZTtFQUNqQjtBQUNGOztBQUVBO0VBQ0U7SUFDRSxvQkFBZTtTQUFmLGVBQWU7RUFDakI7QUFDRjs7QUFFQTtFQUNFO0lBQ0Usb0JBQWU7U0FBZixlQUFlO0VBQ2pCO0FBQ0Y7O0FBRUE7RUFDRTtJQUNFLG9CQUFlO1NBQWYsZUFBZTtFQUNqQjtBQUNGOztBQUVBLFVBQVU7O0FBQ1Y7RUFDRSxZQUFZO0FBQ2Q7O0FBRUEsVUFBVTs7QUFDVjtFQUNFLFVBQVU7QUFDWjs7QUFFQSxXQUFXOztBQUNYO0VBQ0Usa0NBQWtDO0VBQ2xDLFlBQVk7RUFDWixrQkFBa0I7QUFDcEIiLCJmaWxlIjoibWVzc2FnZXMuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi50aXRsZS1wYWdlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDFlbTtcbiAgZm9udC1mYW1pbHk6IE1vbnRzZXJyYXQsIHNhbnMtc2VyaWY7XG59XG5cbi5lbXB0eS1zdGF0ZS1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZW1wdHktc3RhdGUtaW1nIHtcbiAgd2lkdGg6IDEwZW07XG59XG5cbi5lbXB0eS1zdGF0ZS1oZWFkZXIge1xuICBmb250LXNpemU6IDEuNWVtO1xuICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JleSk7XG59XG5cbi5lbXB0eS1zdGF0ZS1ib2R5IHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiB2YXIoLS1saWdodC1ncmV5KTtcbn1cblxuLm1lc3NhZ2Uge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogTWVzc2FnZSBDYXJkICovXG4uY2FyZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm1lc3NhZ2UtY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHQtZ3JleSk7XG4gIHdpZHRoOiAxMDAlO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBtYXgtaGVpZ2h0OiAzMGVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50YWJsZSB0ZCB7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi8qIE1lc3NhZ2UgQ2Fyb3VzZWwgUGFnZSAqL1xuLnBhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICBib3gtc2hhZG93OiAwIDAuMTVlbSAwLjI1ZW0gMC4wNWVtIHJnYmEoMCwgMCwgMCwgMC4xNzUpO1xuICBjb2xvcjogd2hpdGU7XG4gIGhlaWdodDogNzB2aDtcbiAgcGFkZGluZzogMS41ZW07XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5jYXJvdXNlbC1jb250cm9scyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMWVtIDJlbTtcbn1cblxuLmNhcm91c2VsLWNvbnRyb2xzLWJ1dHRvbiB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmNhcm91c2VsLWNvbnRyb2xzLWJ1dHRvbjpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLyogTWVzc2FnZSBIZWFkZXIgKi9cbi5tc2ctaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBoZWlnaHQ6IDMuNWVtO1xuICBwYWRkaW5nOiAwLjVlbSAwLjVlbSAwLjVlbSAxZW07XG59XG5cbi5tc2ctaGVhZGVyLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cblxuLm1zZy1oZWFkZXItdGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBtYXJnaW46IDAuMmVtIDAgMCAwLjVlbTtcbiAgbWF4LXdpZHRoOiAxMGVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1zZy1oZWFkZXItZGF0ZSB7XG4gIGZvbnQtc2l6ZTogMC43ZW07XG4gIG1hcmdpbjogMCAwIDAgMC41ZW07XG59XG5cbi5wcm9maWxlLXBpYy1jb250YWluZXItc21hbGwge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBoZWlnaHQ6IDEuN2VtO1xuICB3aWR0aDogMS43ZW07XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8qIFJlbW92ZSB0aGUgYmx1ZSBvdXRsaW5lIGFyb3VuZCB0aGUgYnV0dG9ucyBvbiB0aGUgaGVhZGVyIHdoZW4gdGhleSdyZSBjbGlja2VkICovXG4uYnRuOmZvY3VzLFxuLmJ0bjphY3RpdmUge1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmNhcmQtYnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAwO1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbn1cblxuLmNhcmQtaWNvbiB7XG4gIHdpZHRoOiAxLjJlbTtcbiAgaGVpZ2h0OiAxLjJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4xNWVtO1xuICBwYWRkaW5nOiAwLjFlbTtcbn1cblxuLmJ0biB7XG4gIHBhZGRpbmc6IDAgMC41ZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAwcHgpIHtcbiAgLmNhcmQtY29sdW1ucyB7XG4gICAgY29sdW1uLWNvdW50OiAxO1xuICB9XG5cbiAgLmNhcmQtY29sdW1ucyAuY2FyZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5jYXJkLWNvbHVtbnMge1xuICAgIGNvbHVtbi1jb3VudDogMTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNhcmQtY29sdW1ucyB7XG4gICAgY29sdW1uLWNvdW50OiAyO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuY2FyZC1jb2x1bW5zIHtcbiAgICBjb2x1bW4tY291bnQ6IDM7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuY2FyZC1jb2x1bW5zIHtcbiAgICBjb2x1bW4tY291bnQ6IDM7XG4gIH1cbn1cblxuLyogd2lkdGggKi9cbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMC4yZW07XG59XG5cbi8qIFRyYWNrICovXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuLyogSGFuZGxlICovXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Nyb2xsYmFyLXRodW1iKTtcbiAgb3BhY2l0eTogMC4xO1xuICBib3JkZXItcmFkaXVzOiAxZW07XG59XG4iXX0= */"] }); 6017 6018 6019/***/ }), 6020 6021/***/ 39161: 6022/*!**************************************************************************!*\ 6023 !*** ./src/app/pages/viewing/responses-list/responses-list.component.ts ***! 6024 \**************************************************************************/ 6025/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 6026 6027"use strict"; 6028__webpack_require__.r(__webpack_exports__); 6029/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6030/* harmony export */ "ResponsesListComponent": function() { return /* binding */ ResponsesListComponent; } 6031/* harmony export */ }); 6032/* harmony import */ var _core_common_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../core/common.service */ 80150); 6033/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 37716); 6034/* harmony import */ var _core_viewing_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../core/viewing.service */ 91225); 6035/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common */ 38583); 6036/* harmony import */ var _core_auth_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../core/auth.service */ 87341); 6037/* harmony import */ var ngx_cookie_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ngx-cookie-service */ 31584); 6038 6039 6040 6041 6042 6043 6044function ResponsesListComponent_div_2_img_1_Template(rf, ctx) { if (rf & 1) { 6045 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](0, "img", 14); 6046} } 6047function ResponsesListComponent_div_2_img_2_Template(rf, ctx) { if (rf & 1) { 6048 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](0, "img", 15); 6049} } 6050function ResponsesListComponent_div_2_Template(rf, ctx) { if (rf & 1) { 6051 const _r7 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵgetCurrentView"](); 6052 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 11); 6053 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function ResponsesListComponent_div_2_Template_div_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵrestoreView"](_r7); const ctx_r6 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); return ctx_r6.navToggle(); }); 6054 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](1, ResponsesListComponent_div_2_img_1_Template, 1, 0, "img", 12); 6055 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](2, ResponsesListComponent_div_2_img_2_Template, 1, 0, "img", 13); 6056 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6057} if (rf & 2) { 6058 const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); 6059 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵclassProp"]("flashy-hamburger", ctx_r0.showNewToViewing); 6060 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); 6061 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", !ctx_r0.navIsOpen); 6062 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); 6063 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx_r0.navIsOpen); 6064} } 6065function ResponsesListComponent_div_8_Template(rf, ctx) { if (rf & 1) { 6066 const _r11 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵgetCurrentView"](); 6067 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 16); 6068 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function ResponsesListComponent_div_8_Template_div_click_0_listener() { const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵrestoreView"](_r11); const msg_r8 = restoredCtx.$implicit; const ctx_r10 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); return ctx_r10.showMessage(msg_r8.id); }); 6069 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](1, "table", 17); 6070 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](2, "tr"); 6071 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](3, "td", 18); 6072 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](4, "div", 19); 6073 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](5, "img", 20); 6074 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6075 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6076 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](6, "td", 21); 6077 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](7, "table"); 6078 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](8, "tr", 22); 6079 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](9, "td"); 6080 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](10, "a", 23); 6081 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](11); 6082 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6083 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6084 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6085 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](12, "tr", 24); 6086 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](13); 6087 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6088 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6089 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6090 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6091 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6092 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6093} if (rf & 2) { 6094 const msg_r8 = ctx.$implicit; 6095 const i_r9 = ctx.index; 6096 const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); 6097 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵattribute"]("data-sli
6097de-to", i_r9 + 1); 6098 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](5); 6099 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpropertyInterpolate"]("src", msg_r8.fromPic, _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵsanitizeUrl"]); 6100 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](6); 6101 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate"](msg_r8.fromName); 6102 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](2); 6103 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate1"](" ", ctx_r1.viewService.timeSince(ctx_r1.viewService.nowMillis, msg_r8.timestamp.toMillis(), msg_r8.timestamp.toDate().toDateString()), " "); 6104} } 6105function ResponsesListComponent_div_11_img_1_Template(rf, ctx) { if (rf & 1) { 6106 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](0, "img", 14); 6107} } 6108function ResponsesListComponent_div_11_img_2_Template(rf, ctx) { if (rf & 1) { 6109 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](0, "img", 15); 6110} } 6111function ResponsesListComponent_div_11_Template(rf, ctx) { if (rf & 1) { 6112 const _r15 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵgetCurrentView"](); 6113 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 25); 6114 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function ResponsesListComponent_div_11_Template_div_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵrestoreView"](_r15); const ctx_r14 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); return ctx_r14.navToggle(); }); 6115 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](1, ResponsesListComponent_div_11_img_1_Template, 1, 0, "img", 12); 6116 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](2, ResponsesListComponent_div_11_img_2_Template, 1, 0, "img", 13); 6117 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6118} if (rf & 2) { 6119 const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); 6120 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵclassProp"]("flashy-hamburger-mobile", ctx_r2.showNewToViewing); 6121 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); 6122 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", !ctx_r2.navIsOpen); 6123 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); 6124 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx_r2.navIsOpen); 6125} } 6126function ResponsesListComponent_div_17_Template(rf, ctx) { if (rf & 1) { 6127 const _r19 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵgetCurrentView"](); 6128 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 16); 6129 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function ResponsesListComponent_div_17_Template_div_click_0_listener() { const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵrestoreView"](_r19); const msg_r16 = restoredCtx.$implicit; const ctx_r18 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); return ctx_r18.showMessage(msg_r16.id); }); 6130 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](1, "table", 17); 6131 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](2, "tr"); 6132 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](3, "td", 18); 6133 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](4, "div", 19); 6134 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](5, "img", 20); 6135 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6136 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6137 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](6, "td", 21); 6138 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](7, "table"); 6139 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](8, "tr", 22); 6140 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](9, "td"); 6141 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](10, "a", 23); 6142 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](11); 6143 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6144 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6145 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6146 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](12, "tr", 24); 6147 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](13); 6148 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6149 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6150 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6151 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6152 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6153 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6154} if (rf & 2) { 6155 const msg_r16 = ctx.$implicit; 6156 const i_r17 = ctx.index; 6157 const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); 6158 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵattribute"]("data-sli
6158de-to", i_r17 + 1); 6159 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](5); 6160 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpropertyInterpolate"]("src", msg_r16.fromPic, _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵsanitizeUrl"]); 6161 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](6); 6162 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate"](msg_r16.fromName); 6163 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](2); 6164 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate1"](" ", ctx_r3.viewService.timeSince(ctx_r3.viewService.nowMillis, msg_r16.timestamp.toMillis(), msg_r16.timestamp.toDate().toDateString()), " "); 6165} } 6166class ResponsesListComponent { 6167 constructor(viewService, vps, authService, cookieService) { 6168 this.viewService = viewService; 6169 this.vps = vps; 6170 this.authService = authService; 6171 this.cookieService = cookieService; 6172 this.navIsOpen = false; 6173 this.messageList = []; 6174 this.showNewToViewing = true; 6175 try { 6176 this.uid = this.authService.uid(); 6177 } 6178 catch (e) { 6179 _core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(e); 6180 } 6181 try { 6182 this.authService.displayName(this.uid).then((displayName) => { 6183 this.displayName = displayName; 6184 }); 6185 } 6186 catch (e) { 6187 this.displayName = 'User'; 6188 } 6189 try { 6190 this.authService.profilePictureLink(this.uid).then((photoUrl) => { 6191 this.photoUrl = photoUrl; 6192 }); 6193 } 6194 catch (e) { 6195 // Use the logo as a fallback profile picture 6196 this.photoUrl = '../../../../assets/images/logo_reg.png'; 6197 } 6198 } 6199 /** 6200 * Assign messages passed via the [setMessageList] binding 6201 * @param messages list of verified VirtrolioMessages 6202 */ 6203 set setMessageList(messages) { 6204 if (messages) { 6205 this.messageList = messages; 6206 } 6207 } 6208 ngOnInit() { 6209 if (this.cookieService.check('viewing-cookie') === false) { 6210 this.cookieService.set('viewing-cookie', 'true', 365); 6211 } 6212 this.showNewToViewingValue = this.cookieService.get('viewing-cookie'); 6213 if (this.showNewToViewingValue === 'true') { 6214 this.showNewToViewing = true; 6215 } 6216 else if (this.showNewToViewingValue === 'false') { 6217 this.showNewToViewing = false; 6218 } 6219 else { 6220 _core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError('Viewing-cookie not found or initialized properly.'); 6221 } 6222 } 6223 /** 6224 * Toggle the state of the side nav menu 6225 */ 6226 navToggle() { 6227 this.navIsOpen = !this.navIsOpen; 6228 if (this.showNewToViewing) { 6229 this.cookieService.set('viewing-cookie', 'false', 365); 6230 this.showNewToViewing = false; 6231 } 6232 } 6233 /** 6234 * Scroll to the card with the given id and update the URL 6235 * @param id: id attribute of the card 6236 */ 6237 showMessage(id) { 6238 this.navToggle(); 6239 if (!this.viewService.isCarouselView) { 6240 this.vps.scrollToAnchor(id); 6241 } 6242 } 6243} 6244ResponsesListComponent.ɵfac = function ResponsesListComponent_Factory(t) { return new (t || ResponsesListComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_core_viewing_service__WEBPACK_IMPORTED_MODULE_1__.ViewingService), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_angular_common__WEBPACK_IMPORTED_MODULE_4__.ViewportScroller), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_core_auth_service__WEBPACK_IMPORTED_MODULE_2__.AuthService), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](ngx_cookie_service__WEBPACK_IMPORTED_MODULE_5__.CookieService)); }; 6245ResponsesListComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdefineComponent"]({ type: ResponsesListComponent, selectors: [["app-responses-list"]], inputs: { setMessageList: "setMessageList" }, decls: 18, vars: 8, consts: [[1, "d-none", "d-md-block"], [1, "side-nav-container"], ["class", "hamburger vertical-center shadow", 3, "flashy-hamburger", "click", 4, "ngIf"], [1, "sidenav", "shadow"], [1, "close-btn", 3, "click"], [1, "nav-item", "mb-2", "ml-4", "response-title"], ["class", "author-container", "data-target", "#carousel", 3, "click", 4, "ngFor", "ngForOf"], [1, "d-block", "d-md-none"], [1, "side-nav-container-mobile"], ["class", "hamburger-mobile vertical-center shadow", 3, "flashy-hamburger-mobile", "click", 4, "ngIf"], [1, "sidenav-mobile", "shadow"], [1, "hamburger", "vertical-center", "shadow", 3, "click"], ["class", "chevron", "alt", "response-list", "src", "../../../../assets/images/icons/chevron-right.svg", 4, "ngIf"], ["class", "chevron", "alt", "response-list", "src", "../../../../assets/images/icons/chevron-left.svg", 4, "ngIf"], ["alt", "response-list", "src", "../../../../assets/images/icons/chevron-right.svg", 1, "chevron"], ["alt", "response-list", "src", "../../../../assets/images/icons/chevron-left.svg", 1, "chevron"], ["data-target", "#carousel", 1, "author-container", 3, "click"], [1, "header-table"], [1, "profile-pic-col"], [1, "profile-pic-container"], ["alt", "profile-pic", 1, "profile-pic", 3, "src"], [1, "author-col"], [1, "msg-header-text", "author-name"], ["href", "javascript: void(0)", 1, "subtle-link"], [1, "msg-header-date"], [1, "hamburger-mobile", "vertical-center", "shadow", 3, "click"]], template: function ResponsesListComponent_Template(rf, ctx) { if (rf & 1) { 6246 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 0); 6247 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](1, "div", 1); 6248 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](2, ResponsesListComponent_div_2_Template, 3, 4, "div", 2); 6249 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](3, "div", 3); 6250 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](4, "a", 4); 6251 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function ResponsesListComponent_Template_a_click_4_listener() { return ctx.navToggle(); }); 6252 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](5, "\u00D7"); 6253 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6254 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](6, "div", 5); 6255 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](7, "My Messages"); 6256 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6257 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](8, ResponsesListComponent_div_8_Template, 14, 4, "div", 6); 6258 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6259 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6260 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6261 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](9, "div", 7);
6262 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](10, "div", 8); 6263 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](11, ResponsesListComponent_div_11_Template, 3, 4, "div", 9); 6264 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](12, "div", 10); 6265 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](13, "a", 4); 6266 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function ResponsesListComponent_Template_a_click_13_listener() { return ctx.navToggle(); }); 6267 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](14, "\u00D7"); 6268 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6269 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](15, "div", 5); 6270 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](16, "My Messages"); 6271 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6272 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](17, ResponsesListComponent_div_17_Template, 14, 4, "div", 6); 6273 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6274 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6275 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); 6276 } if (rf & 2) { 6277 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); 6278 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵclassProp"]("nav-open", ctx.navIsOpen); 6279 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); 6280 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx.messageList.length !== 0); 6281 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](6); 6282 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngForOf", ctx.messageList); 6283 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](2); 6284 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵclassProp"]("nav-mobile-open", ctx.navIsOpen); 6285 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); 6286 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx.messageList.length !== 0); 6287 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](6); 6288 _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngForOf", ctx.messageList); 6289 } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_4__.NgForOf], styles: [".side-nav-container[_ngcontent-%COMP%] {\n height: calc(100% - var(--navbar-height));\n position: fixed;\n left: -25em;\n \n z-index: 1050;\n transition: 0.5s;\n}\n\n.sidenav[_ngcontent-%COMP%] {\n width: 25em;\n height: 100%;\n background-color: white;\n overflow-x: hidden;\n padding-top: 2em;\n z-index: 1050;\n}\n.sidenav[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%] {\n position: absolute;\n color: var(--dark);\n top: 0;\n right: 25px;\n font-size: 36px;\n margin-left: 50px;\n}\n\n.hamburger[_ngcontent-%COMP%] {\n position: absolute;\n height: 6em;\n width: 2em;\n top: 2em;\n right: -2em;\n font-size: 1em;\n font-weight: bold;\n color: white;\n background: var(--accent);\n border-radius: 0 0.5em 0.5em 0;\n cursor: pointer;\n transition: 0.5s;\n z-index: 1049;\n}\n.hamburger[_ngcontent-%COMP%]:hover {\n transform: translate(1em, 0);\n width: 3em;\n transition: 0.5s;\n}\n\n.nav-open[_ngcontent-%COMP%] {\n left: 0;\n}\n\n.side-nav-container-mobile[_ngcontent-%COMP%] {\n height: calc(100% - var(--navbar-height));\n position: fixed;\n right: 100vw;\n \n z-index: 1050;\n transition: 0.5s;\n}\n\n.sidenav-mobile[_ngcontent-%COMP%] {\n width: 100vw;\n height: 100%;\n background-color: white;\n overflow-x: hidden;\n padding-top: 2em;\n z-index: 1050;\n}\n.sidenav-mobile[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%] {\n position: absolute;\n color: var(--dark);\n top: 0;\n right: 25px;\n font-size: 36px;\n margin-left: 50px;\n}\n\n.nav-mobile-open[_ngcontent-%COMP%] {\n right: 0;\n}\n\n.hamburger-mobile[_ngcontent-%COMP%] {\n position: absolute;\n height: 3em;\n width: 2em;\n top: 3em;\n right: -2em;\n font-size: 1em;\n font-weight: bold;\n color: white;\n background: var(--accent);\n border-radius: 0 0.5em 0.5em 0;\n cursor: pointer;\n transition: 0.5s;\n z-index: 1049;\n}\n\n\n.close-btn[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n.close-btn[_ngcontent-%COMP%]:hover {\n text-decoration: none;\n}\n.chevron[_ngcontent-%COMP%] {\n position: absolute;\n right: 0;\n}\n\n.response-title[_ngcontent-%COMP%] {\n font-size: 1.4em;\n font-weight: bold;\n}\n.author-container[_ngcontent-%COMP%] {\n padding: 1em 1em 1em 2em;\n line-height: 1.2em;\n border-bottom: 0.05em solid var(--lighter-grey);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: pointer;\n}\n.author-container[_ngcontent-%COMP%]:hover {\n background: var(--response-list-hover);\n}\n.header-table[_ngcontent-%COMP%] {\n table-layout: fixed;\n width: 100%;\n}\n.profile-pic-col[_ngcontent-%COMP%] {\n width: 2.5em;
6289\n}\n.author-col[_ngcontent-%COMP%] {\n left: 1em;\n padding-left: 1em;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.profile-pic-container[_ngcontent-%COMP%] {\n background: white;\n height: 2.5em;\n width: 2.5em;\n border-radius: 100%;\n}\n.author-name[_ngcontent-%COMP%] {\n font-weight: bold;\n font-size: 1em;\n margin: 0.2em 0 0 0;\n color: var(--dark);\n}\n.author-name[_ngcontent-%COMP%]:hover {\n text-decoration: none;\n}\n.msg-header-date[_ngcontent-%COMP%] {\n font-size: 0.7em;\n margin: 0;\n}\n@media screen and (max-height: 450px) {\n .sidenav[_ngcontent-%COMP%] {\n padding-top: 15px;\n }\n\n .sidenav[_ngcontent-%COMP%] a[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n}\n\n\n.flashy-hamburger[_ngcontent-%COMP%] {\n animation: FlashyHamburger 2s ease infinite;\n}\n@keyframes FlashyHamburger {\n 0% {\n transform: translate(0, 0);\n width: 2em;\n }\n 50% {\n transform: translate(1em, 0);\n width: 3em;\n }\n 100% {\n transform: translate(0, 0);\n width: 2em;\n }\n}\n\n\n.flashy-hamburger-mobile[_ngcontent-%COMP%] {\n animation: FlashyHamburgerMobile 2s ease infinite;\n}\n@keyframes FlashyHamburgerMobile {\n 0% {\n transform: translate(0, 0);\n width: 2em;\n }\n 50% {\n transform: translate(0.4em, 0);\n width: 3em;\n }\n 100% {\n transform: translate(0, 0);\n width: 2em;\n }\n}\n\n\n[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 0.2em;\n}\n\n[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n opacity: 0;\n}\n\n[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--scrollbar-thumb);\n opacity: 0.1;\n border-radius: 1em;\n}\n.subtle-link[_ngcontent-%COMP%], .subtle-link[_ngcontent-%COMP%]:hover {\n color: #000000;\n text-decoration: none;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlc3BvbnNlcy1saXN0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZTtBQUNmLG9EQUFvRDtBQUNwRDtFQUNFLHlDQUF5QztFQUN6QyxlQUFlO0VBQ2YsV0FBVztFQUNYLG9EQUFvRDtFQUNwRCxhQUFhO0VBQ2IsZ0JBQWdCO0FBQ2xCO0FBRUEsbUJBQW1CO0FBQ25CO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWix1QkFBdUI7RUFDdkIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixhQUFhO0FBQ2Y7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLFdBQVc7RUFDWCxlQUFlO0VBQ2YsaUJBQWlCO0FBQ25CO0FBRUEscUJBQXFCO0FBQ3JCO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxVQUFVO0VBQ1YsUUFBUTtFQUNSLFdBQVc7RUFDWCxjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWix5QkFBeUI7RUFDekIsOEJBQThCO0VBQzlCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsYUFBYTtBQUNmO0FBRUE7RUFDRSw0QkFBNEI7RUFDNUIsVUFBVTtFQUNWLGdCQUFnQjtBQUNsQjtBQUVBLGtDQUFrQztBQUNsQztFQUNFLE9BQU87QUFDVDtBQUVBLGNBQWM7QUFFZDtFQUNFLHlDQUF5QztFQUN6QyxlQUFlO0VBQ2YsWUFBWTtFQUNaLG9EQUFvRDtFQUNwRCxhQUFhO0VBQ2IsZ0JBQWdCO0FBQ2xCO0FBRUEsbUJBQW1CO0FBQ25CO0VBQ0UsWUFBWTtFQUNaLFlBQVk7RUFDWix1QkFBdUI7RUFDdkIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixhQUFhO0FBQ2Y7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLFdBQVc7RUFDWCxlQUFlO0VBQ2YsaUJBQWlCO0FBQ25CO0FBRUEsa0NBQWtDO0FBQ2xDO0VBQ0UsUUFBUTtBQUNWO0FBRUEscUJBQXFCO0FBQ3JCO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxVQUFVO0VBQ1YsUUFBUTtFQUNSLFdBQVc7RUFDWCxjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWix5QkFBeUI7RUFDekIsOEJBQThCO0VBQzlCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsYUFBYTtBQUNmO0FBRUEsY0FBYztBQUNkLFlBQVk7QUFDWjtFQUNFLGVBQWU7QUFDakI7QUFFQTtFQUNFLHFCQUFxQjtBQUN2QjtBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFFBQVE7QUFDVjtBQUVBLGtCQUFrQjtBQUNsQjtFQUNFLGdCQUFnQjtFQUNoQixpQkFBaUI7QUFDbkI7QUFFQTtFQUNFLHdCQUF3QjtFQUN4QixrQkFBa0I7RUFDbEIsK0NBQStDO0VBQy9DLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLGVBQWU7QUFDakI7QUFFQTtFQUNFLHNDQUFzQztBQUN4QztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLFdBQVc7QUFDYjtBQUVBO0VBQ0UsWUFBWTtBQUNkO0FBRUE7RUFDRSxTQUFTO0VBQ1QsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIsbUJBQW1CO0FBQ3JCO0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsYUFBYTtFQUNiLFlBQVk7RUFDWixtQkFBbUI7QUFDckI7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLGtCQUFrQjtBQUNwQjtBQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCO0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsU0FBUztBQUNYO0FBRUE7RUFDRTtJQUNFLGlCQUFpQjtFQUNuQjs7RUFFQTtJQUNFLGVBQWU7RUFDakI7QUFDRjtBQUVBLHdEQUF3RDtBQUN4RCwrQkFBK0I7QUFDL0I7RUFHRSwyQ0FBMkM7QUFDN0M7QUFnQ0E7RUFDRTtJQUNFLDBCQUEwQjtJQUMxQixVQUFVO0VBQ1o7RUFDQTtJQUNFLDRCQUE0QjtJQUM1QixVQUFVO0VBQ1o7RUFDQTtJQUNFLDBCQUEwQjtJQUMxQixVQUFVO0VBQ1o7QUFDRjtBQUVBLHdEQUF3RDtBQUN4RCwrQkFBK0I7QUFDL0I7RUFHRSxpRE
6289FBaUQ7QUFDbkQ7QUFnQ0E7RUFDRTtJQUNFLDBCQUEwQjtJQUMxQixVQUFVO0VBQ1o7RUFDQTtJQUNFLDhCQUE4QjtJQUM5QixVQUFVO0VBQ1o7RUFDQTtJQUNFLDBCQUEwQjtJQUMxQixVQUFVO0VBQ1o7QUFDRjtBQUVBLGlCQUFpQjtBQUNqQixVQUFVO0FBQ1Y7RUFDRSxZQUFZO0FBQ2Q7QUFFQSxVQUFVO0FBQ1Y7RUFDRSxVQUFVO0FBQ1o7QUFFQSxXQUFXO0FBQ1g7RUFDRSxrQ0FBa0M7RUFDbEMsWUFBWTtFQUNaLGtCQUFrQjtBQUNwQjtBQUVBOztFQUVFLGNBQWM7RUFDZCxxQkFBcUI7QUFDdkIiLCJmaWxlIjoicmVzcG9uc2VzLWxpc3QuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHx8IERFU0tUT1AgKi9cbi8qIFNpZGUgbmF2IGNvbnRhaW5lciAtIGhvdXNlcyBsaXN0IGFuZCB0YWIgYnV0dG9uICovXG4uc2lkZS1uYXYtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1uYXZiYXItaGVpZ2h0KSk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogLTI1ZW07XG4gIC8qIHotaW5kZXggb2YgMTA1MSBpcyB0aGUgbGV2ZWwgdGhhdCBtb2RhbHMgYXBwZWFyICovXG4gIHotaW5kZXg6IDEwNTA7XG4gIHRyYW5zaXRpb246IDAuNXM7XG59XG5cbi8qIExpc3QgY29tcG9uZW50ICovXG4uc2lkZW5hdiB7XG4gIHdpZHRoOiAyNWVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBhZGRpbmctdG9wOiAyZW07XG4gIHotaW5kZXg6IDEwNTA7XG59XG5cbi5zaWRlbmF2IC5jbG9zZS1idG4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiB2YXIoLS1kYXJrKTtcbiAgdG9wOiAwO1xuICByaWdodDogMjVweDtcbiAgZm9udC1zaXplOiAzNnB4O1xuICBtYXJnaW4tbGVmdDogNTBweDtcbn1cblxuLyogQnV0dG9uIGNvbXBvbmVudCAqL1xuLmhhbWJ1cmdlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiA2ZW07XG4gIHdpZHRoOiAyZW07XG4gIHRvcDogMmVtO1xuICByaWdodDogLTJlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7XG4gIGJvcmRlci1yYWRpdXM6IDAgMC41ZW0gMC41ZW0gMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiAwLjVzO1xuICB6LWluZGV4OiAxMDQ5O1xufVxuXG4uaGFtYnVyZ2VyOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMWVtLCAwKTtcbiAgd2lkdGg6IDNlbTtcbiAgdHJhbnNpdGlvbjogMC41cztcbn1cblxuLyogQ29uZGl0aW9uYWxseS1hY3RpdmF0ZWQgY2xhc3MgKi9cbi5uYXYtb3BlbiB7XG4gIGxlZnQ6IDA7XG59XG5cbi8qIHx8IE1PQklMRSAqL1xuXG4uc2lkZS1uYXYtY29udGFpbmVyLW1vYmlsZSB7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gdmFyKC0tbmF2YmFyLWhlaWdodCkpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAxMDB2dztcbiAgLyogei1pbmRleCBvZiAxMDUxIGlzIHRoZSBsZXZlbCB0aGF0IG1vZGFscyBhcHBlYXIgKi9cbiAgei1pbmRleDogMTA1MDtcbiAgdHJhbnNpdGlvbjogMC41cztcbn1cblxuLyogTGlzdCBjb21wb25lbnQgKi9cbi5zaWRlbmF2LW1vYmlsZSB7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwYWRkaW5nLXRvcDogMmVtO1xuICB6LWluZGV4OiAxMDUwO1xufVxuXG4uc2lkZW5hdi1tb2JpbGUgLmNsb3NlLWJ0biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6IHZhcigtLWRhcmspO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAyNXB4O1xuICBmb250LXNpemU6IDM2cHg7XG4gIG1hcmdpbi1sZWZ0OiA1MHB4O1xufVxuXG4vKiBDb25kaXRpb25hbGx5LWFjdGl2YXRlZCBjbGFzcyAqL1xuLm5hdi1tb2JpbGUtb3BlbiB7XG4gIHJpZ2h0OiAwO1xufVxuXG4vKiBCdXR0b24gY29tcG9uZW50ICovXG4uaGFtYnVyZ2VyLW1vYmlsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAzZW07XG4gIHdpZHRoOiAyZW07XG4gIHRvcDogM2VtO1xuICByaWdodDogLTJlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7XG4gIGJvcmRlci1yYWRpdXM6IDAgMC41ZW0gMC41ZW0gMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiAwLjVzO1xuICB6LWluZGV4OiAxMDQ5O1xufVxuXG4vKiB8fCBTSEFSRUQgKi9cbi8qIEJ1dHRvbnMgKi9cbi5jbG9zZS1idG4ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jbG9zZS1idG46aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5jaGV2cm9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbn1cblxuLyogTGlzdCBjb250ZW50cyAqL1xuLnJlc3BvbnNlLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjRlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5hdXRob3ItY29udGFpbmVyIHtcbiAgcGFkZGluZzogMWVtIDFlbSAxZW0gMmVtO1xuICBsaW5lLWhlaWdodDogMS4yZW07XG4gIGJvcmRlci1ib3R0b206IDAuMDVlbSBzb2xpZCB2YXIoLS1saWdodGVyLWdyZXkpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYXV0aG9yLWNvbnRhaW5lcjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXJlc3BvbnNlLWxpc3QtaG92ZXIpO1xufVxuXG4uaGVhZGVyLXRhYmxlIHtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5wcm9maWxlLXBpYy1jb2wge1xuICB3aWR0aDogMi41ZW07XG59XG5cbi5hdXRob3ItY29sIHtcbiAgbGVmdDogMWVtO1xuICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5wcm9maWxlLXBpYy1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgaGVpZ2h0OiAyLjVlbTtcbiAgd2lkdGg6IDIuNWVtO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuXG4uYXV0aG9yLW5hbWUge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1hcmdpbjogMC4yZW0gMCAwIDA7XG4gIGNvbG9yOiB2YXIoLS1kYXJrKTtcbn1cblxuLmF1dGhvci1uYW1lOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ubXNnLWhlYWRlci1kYXRlIHt
6289cbiAgZm9udC1zaXplOiAwLjdlbTtcbiAgbWFyZ2luOiAwO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogNDUwcHgpIHtcbiAgLnNpZGVuYXYge1xuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICB9XG5cbiAgLnNpZGVuYXYgYSB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICB9XG59XG5cbi8qIFN1cHJlc3Mgd2FybmluZyBmb3IgY29uZGl0aW9uYWxseS1hcHBsaWVkIENTUyBjbGFzcyAqL1xuLypub2luc3BlY3Rpb24gQ3NzVW51c2VkU3ltYm9sKi9cbi5mbGFzaHktaGFtYnVyZ2VyIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IEZsYXNoeUhhbWJ1cmdlciAycyBlYXNlIGluZmluaXRlO1xuICAtbW96LWFuaW1hdGlvbjogRmxhc2h5SGFtYnVyZ2VyIDJzIGVhc2UgaW5maW5pdGU7XG4gIGFuaW1hdGlvbjogRmxhc2h5SGFtYnVyZ2VyIDJzIGVhc2UgaW5maW5pdGU7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBGbGFzaHlIYW1idXJnZXIge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgd2lkdGg6IDJlbTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDFlbSwgMCk7XG4gICAgd2lkdGg6IDNlbTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICB3aWR0aDogMmVtO1xuICB9XG59XG5cbkAtbW96LWtleWZyYW1lcyBGbGFzaHlIYW1idXJnZXIge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgd2lkdGg6IDJlbTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDFlbSwgMCk7XG4gICAgd2lkdGg6IDNlbTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICB3aWR0aDogMmVtO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgRmxhc2h5SGFtYnVyZ2VyIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgIHdpZHRoOiAyZW07XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxZW0sIDApO1xuICAgIHdpZHRoOiAzZW07XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgd2lkdGg6IDJlbTtcbiAgfVxufVxuXG4vKiBTdXByZXNzIHdhcm5pbmcgZm9yIGNvbmRpdGlvbmFsbHktYXBwbGllZCBDU1MgY2xhc3MgKi9cbi8qbm9pbnNwZWN0aW9uIENzc1VudXNlZFN5bWJvbCovXG4uZmxhc2h5LWhhbWJ1cmdlci1tb2JpbGUge1xuICAtd2Via2l0LWFuaW1hdGlvbjogRmxhc2h5SGFtYnVyZ2VyTW9iaWxlIDJzIGVhc2UgaW5maW5pdGU7XG4gIC1tb3otYW5pbWF0aW9uOiBGbGFzaHlIYW1idXJnZXJNb2JpbGUgMnMgZWFzZSBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uOiBGbGFzaHlIYW1idXJnZXJNb2JpbGUgMnMgZWFzZSBpbmZpbml0ZTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIEZsYXNoeUhhbWJ1cmdlck1vYmlsZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICB3aWR0aDogMmVtO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMC40ZW0sIDApO1xuICAgIHdpZHRoOiAzZW07XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgd2lkdGg6IDJlbTtcbiAgfVxufVxuXG5ALW1vei1rZXlmcmFtZXMgRmxhc2h5SGFtYnVyZ2VyTW9iaWxlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgIHdpZHRoOiAyZW07XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLjRlbSwgMCk7XG4gICAgd2lkdGg6IDNlbTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICB3aWR0aDogMmVtO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgRmxhc2h5SGFtYnVyZ2VyTW9iaWxlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgIHdpZHRoOiAyZW07XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLjRlbSwgMCk7XG4gICAgd2lkdGg6IDNlbTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICB3aWR0aDogMmVtO1xuICB9XG59XG5cbi8qIHx8IFNDUk9MTEJBUiAqL1xuLyogd2lkdGggKi9cbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMC4yZW07XG59XG5cbi8qIFRyYWNrICovXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuLyogSGFuZGxlICovXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Nyb2xsYmFyLXRodW1iKTtcbiAgb3BhY2l0eTogMC4xO1xuICBib3JkZXItcmFkaXVzOiAxZW07XG59XG5cbi5zdWJ0bGUtbGluayxcbi5zdWJ0bGUtbGluazpob3ZlciB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4iXX0= */"] }); 6290 6291 6292/***/ }), 6293 6294/***/ 60189: 6295/*!**************************************************************************!*\ 6296 !*** ./src/app/pages/viewing/single-message/single-message.component.ts ***! 6297 \**************************************************************************/ 6298/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 6299 6300"use strict"; 6301__webpack_require__.r(__webpack_exports__); 6302/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6303/* harmony export */ "SingleMessageComponent": function() { return /* binding */ SingleMessageComponent; } 6304/* harmony export */ }); 6305/* harmony import */ var _core_common_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../core/common.service */ 80150); 6306/* harmony import */ var firebase_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/app */ 42329); 6307/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! firebase/firestore */ 72491);
6308/* harmony import */ var _shared_interfaces_messages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../shared/interfaces/messages */ 38031); 6309/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 37716); 6310/* harmony import */ var _core_viewing_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../core/viewing.service */ 91225); 6311/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/router */ 39895); 6312/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ngx-toastr */ 49344); 6313/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/common */ 38583); 6314/* harmony import */ var _core_msg_io_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../core/msg-io.service */ 84468); 6315/* harmony import */ var ngx_markdown__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ngx-markdown */ 76715); 6316/* harmony import */ var _shared_components_inline_images_inline_images_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../shared/components/inline-images/inline-images.component */ 72321); 6317 6318 6319 6320 6321var firestore = firebase_app__WEBPACK_IMPORTED_MODULE_1__.default.firestore; 6322var Timestamp = firestore.Timestamp; 6323 6324 6325 6326 6327 6328 6329 6330 6331function SingleMessageComponent_app_inline_images_14_Template(rf, ctx) { if (rf & 1) { 6332 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelement"](0, "app-inline-images", 12); 6333} if (rf & 2) { 6334 const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵnextContext"](); 6335 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("images", ctx_r0.singleMessage.images); 6336} } 6337const _c0 = function (a0, a1, a2) { return { background: a0, color: a1, "font-family": a2 }; }; 6338class SingleMessageComponent { 6339 constructor(viewService, route, router, toastr, location, msgIOService) { 6340 this.viewService = viewService; 6341 this.route = route; 6342 this.router = router; 6343 this.toastr = toastr; 6344 this.location = location; 6345 this.msgIOService = msgIOService; 6346 this.showCloseButton = false; 6347 this.singleMessage = Object.assign(Object.assign({}, new _shared_interfaces_messages__WEBPACK_IMPORTED_MODULE_3__.VirtrolioMessageTemplate()), { from: '', fromName: '', fromPic: '', isRead: false, key: '', timestamp: new Timestamp(0, 0), year: 0, id: '' }); 6348 this.singleMessage.contents = 'Message is loading...'; 6349 this.singleMessage.backColor = '#FFFFFF'; 6350 this.singleMessage.fontColor = '#000000'; 6351 this.singleMessage.fontFamily = 'Arial'; 6352 this.route.queryParams.subscribe((params) => { 6353 this.currentMessageId = params.messageId; 6354 }); 6355 if (this.route.snapshot.queryParams.showBookmarkAlert) { 6356 this.toastr.info('This page can now be bookmarked so you can view this message later!', 'Bookmark', { positionClass: 'toast-bottom-full-width' }); 6357 this.showCloseButton = true; 6358 this.location.go('/viewing', '?messageId=' + this.currentMessageId); 6359 } 6360 } 6361 ngOnInit() { 6362 this.viewService.msgIo 6363 .getMessage(this.currentMessageId) 6364 .subscribe((message) => { 6365 try { 6366 this.viewService.msgIo.verifyMessage(message); 6367 this.singleMessage = message; 6368 } 6369 catch (e) { 6370 _core_common_service__WEBPACK_IMPORTED_MODULE_0__.CommonService.displayError(e); 6371 // noinspection JSIgnoredPromiseFromCall 6372 this.router.navigate(['/viewing']); 6373 } 6374 }); 6375 } 6376 /** 6377 * Go to 'all messages' view 6378 */ 6379 goToMessages() { 6380 this.router.navigate(['/viewing']).then(() => { 6381 window.location.reload(); 6382 }); 6383 } 6384} 6385SingleMessageComponent.ɵfac = function SingleMessageComponent_Factory(t) { return new (t || SingleMessageComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdirectiveInject"](_core_viewing_service__WEBPACK_IMPORTED_MODULE_4__.ViewingService), _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_8__.ActivatedRoute), _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_8__.Router), _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdirectiveInject"](ngx_toastr__WEBPACK_IMPORTED_MODULE_9__.ToastrService), _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdirectiveInject"](_angular_common__WEBPACK_IMPORTED_MODULE_10__.Location), _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdirectiveInject"](_core_msg_io_service__WEBPACK_IMPORTED_MODULE_5__.MsgIoService)); }; 6386SingleMessageComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵdefineComponent"]({ type: SingleMessageComponent, selectors: [["app-single-message"]], decls: 15, vars: 10, consts: [[1, "row", "justify-content-center", "py-5"], [1, "single-message-view", "col-12", "col-sm-12", "col-md-8", "col-lg-8", "col-xl-8"], [1, "author-card"], [1, "profile-pic-container-small"], ["alt", "profile-pic", 1, "profile-pic", 3, "src"], [1, "author-card", "mb-3"], [1, "msg-header-text"], [1, "msg-header-date"], [1, "card", "shadow", "message-card"], [1, "card-body", "message-card", "message", 3, "ngStyle"], ["emoji", "", 3, "data"], [3, "images", 4, "ngIf"], [3, "images"]], template: function SingleMessageComponent_Template(rf, ctx) { if (rf & 1) { 6387 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](0, "div", 0); 6388 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](1, "div", 1); 6389 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](2, "div", 2); 6390 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](3, "span", 3); 6391 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelement"](4, "img", 4); 6392 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 6393 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 6394 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](5, "div", 5); 6395 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](6, "table"); 6396 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](7, "tr", 6); 6397 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](8); 6398 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 6399 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](9, "tr", 7);
6400 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtext"](10); 6401 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 6402 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 6403 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 6404 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](11, "div", 8); 6405 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementStart"](12, "div", 9); 6406 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelement"](13, "markdown", 10); 6407 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtemplate"](14, SingleMessageComponent_app_inline_images_14_Template, 1, 1, "app-inline-images", 11); 6408 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 6409 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 6410 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 6411 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵelementEnd"](); 6412 } if (rf & 2) { 6413 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](4); 6414 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpropertyInterpolate"]("src", ctx.singleMessage.fromPic, _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵsanitizeUrl"]); 6415 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](4); 6416 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtextInterpolate1"](" ", ctx.singleMessage.fromName, " "); 6417 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](2); 6418 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵtextInterpolate1"](" ", ctx.singleMessage.timestamp.toDate().toDateString(), " "); 6419 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](2); 6420 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpureFunction3"](6, _c0, ctx.singleMessage.backColor, ctx.singleMessage.fontColor, ctx.viewService.fonts[ctx.singleMessage.fontFamily].fontFamily + "," + ctx.viewService.fonts[ctx.singleMessage.fontFamily].backupFont)); 6421 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](1); 6422 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵpropertyInterpolate"]("data", ctx.viewService.decodeHtml(ctx.singleMessage.contents)); 6423 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵadvance"](1); 6424 _angular_core__WEBPACK_IMPORTED_MODULE_7__["ɵɵproperty"]("ngIf", ctx.singleMessage.images); 6425 } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_10__.NgStyle, ngx_markdown__WEBPACK_IMPORTED_MODULE_11__.MarkdownComponent, _angular_common__WEBPACK_IMPORTED_MODULE_10__.NgIf, _shared_components_inline_images_inline_images_component__WEBPACK_IMPORTED_MODULE_6__.InlineImagesComponent], styles: [".message-card[_ngcontent-%COMP%] {\n width: 100%;\n height: 70vh;\n}\n\n.author-card[_ngcontent-%COMP%] {\n width: 100%;\n height: auto;\n display: flex;\n justify-content: center;\n}\n\n.message-card[_ngcontent-%COMP%] {\n background-color: var(--light-grey);\n width: 100%;\n word-break: break-word;\n overflow-y: auto;\n}\n\n.msg-header-text[_ngcontent-%COMP%] {\n font-weight: bold;\n font-size: 1.6em;\n max-width: 80vw;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: center;\n white-space: nowrap;\n}\n\n.msg-header-date[_ngcontent-%COMP%] {\n font-size: 1em;\n max-width: 80vw;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: center;\n white-space: nowrap;\n}\n\n.profile-pic-container-small[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0);\n height: 4.2em;\n width: 4.2em;\n border-radius: 100%;\n display: flex;\n}\n\n\n\n[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 0.2em;\n}\n\n\n\n[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n opacity: 0;\n}\n\n\n\n[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--scrollbar-thumb);\n opacity: 0.1;\n border-radius: 1em;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbmdsZS1tZXNzYWdlLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixhQUFhO0VBQ2IsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsbUNBQW1DO0VBQ25DLFdBQVc7RUFDWCxzQkFBc0I7RUFDdEIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLHVC
6425QUF1QjtFQUN2QixrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsY0FBYztFQUNkLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsdUJBQXVCO0VBQ3ZCLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxrQ0FBa0M7RUFDbEMsYUFBYTtFQUNiLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsYUFBYTtBQUNmOztBQUVBLFVBQVU7O0FBQ1Y7RUFDRSxZQUFZO0FBQ2Q7O0FBRUEsVUFBVTs7QUFDVjtFQUNFLFVBQVU7QUFDWjs7QUFFQSxXQUFXOztBQUNYO0VBQ0Usa0NBQWtDO0VBQ2xDLFlBQVk7RUFDWixrQkFBa0I7QUFDcEIiLCJmaWxlIjoic2luZ2xlLW1lc3NhZ2UuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tZXNzYWdlLWNhcmQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA3MHZoO1xufVxuXG4uYXV0aG9yLWNhcmQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm1lc3NhZ2UtY2FyZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LWdyZXkpO1xuICB3aWR0aDogMTAwJTtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLm1zZy1oZWFkZXItdGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuNmVtO1xuICBtYXgtd2lkdGg6IDgwdnc7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tc2ctaGVhZGVyLWRhdGUge1xuICBmb250LXNpemU6IDFlbTtcbiAgbWF4LXdpZHRoOiA4MHZ3O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucHJvZmlsZS1waWMtY29udGFpbmVyLXNtYWxsIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgaGVpZ2h0OiA0LjJlbTtcbiAgd2lkdGg6IDQuMmVtO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vKiB3aWR0aCAqL1xuOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiAwLjJlbTtcbn1cblxuLyogVHJhY2sgKi9cbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBvcGFjaXR5OiAwO1xufVxuXG4vKiBIYW5kbGUgKi9cbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zY3JvbGxiYXItdGh1bWIpO1xuICBvcGFjaXR5OiAwLjE7XG4gIGJvcmRlci1yYWRpdXM6IDFlbTtcbn1cbiJdfQ== */"] }); 6426 6427 6428/***/ }), 6429 6430/***/ 68106: 6431/*!****************************************************!*\ 6432 !*** ./src/app/pages/viewing/viewing.component.ts ***! 6433 \****************************************************/ 6434/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 6435 6436"use strict"; 6437__webpack_require__.r(__webpack_exports__); 6438/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6439/* harmony export */ "ViewingComponent": function() { return /* binding */ ViewingComponent; } 6440/* harmony export */ }); 6441/* harmony import */ var firebase_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! firebase/app */ 42329); 6442/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/firestore */ 72491); 6443/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 37716); 6444/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/router */ 39895); 6445/* harmony import */ var _core_viewing_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/viewing.service */ 91225); 6446/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 6447/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/common */ 38583); 6448/* harmony import */ var _single_message_single_message_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./single-message/single-message.component */ 60189); 6449/* harmony import */ var _responses_list_responses_list_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./responses-list/responses-list.component */ 39161); 6450/* harmony import */ var _messages_messages_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./messages/messages.component */ 2360); 6451 6452 6453var firestore = firebase_app__WEBPACK_IMPORTED_MODULE_0__.default.firestore; 6454var Timestamp = firestore.Timestamp; 6455 6456 6457 6458 6459 6460 6461 6462 6463function ViewingComponent_div_0_Template(rf, ctx) { if (rf & 1) { 6464 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](0, "div"); 6465 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](1, "div", 2); 6466 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelement"](2, "app-single-message"); 6467 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"](); 6468 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"](); 6469} } 6470function ViewingComponent_ng_template_1_div_5_Template(rf, ctx) { if (rf & 1) { 6471 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](0, "div", 8); 6472 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](1, "p", 9); 6473 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtext"](2, " \u26A0 One of your messages isn't being shown because it does not conform to the message requirements. "); 6474 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](3, "a", 10); 6475 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtext"](4, "Contact Us"); 6476 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"](); 6477 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtext"](5, " if you see this message. "); 6478 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"](); 6479 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"](); 6480} } 6481function ViewingComponent_ng_template_1_div_6_Template(rf, ctx) { if (rf & 1) { 6482 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](0, "div", 8); 6483 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](1, "p", 9); 6484 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtext"](2); 6485 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](3, "a", 10); 6486 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtext"](4, "Contact Us"); 6487 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"](); 6488 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtext"](5, " if you see this message. "); 6489 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"](); 6490 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"](); 6491} if (rf & 2) { 6492 const ctx_r4 = _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵnextContext"](2); 6493 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵadvance"](2); 6494 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtextInterpolate1"](" \u26A0 ", ctx_r4.invalidMessageCount, " of your messages are not being shown because they do not conform to the message requirements. "); 6495} } 6496function ViewingComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) { 6497 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](0, "div", 2); 6498 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelement"](1, "app-responses-list", 3); 6499 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](2, "div", 4); 6500 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](3, "div", 5); 6501 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelement"](4, "app-messages", 6); 6502 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtemplate"](5, ViewingComponent_ng_template_1_div_5_Template, 6, 0, "div", 7);
6503 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtemplate"](6, ViewingComponent_ng_template_1_div_6_Template, 6, 1, "div", 7); 6504 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"](); 6505 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"](); 6506 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"](); 6507} if (rf & 2) { 6508 const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵnextContext"](); 6509 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵadvance"](1); 6510 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵproperty"]("setMessageList", ctx_r2.messageList); 6511 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵadvance"](3); 6512 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵproperty"]("setMessageList", ctx_r2.messageList)("setIsLoading", ctx_r2.isLoading); 6513 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵadvance"](1); 6514 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵproperty"]("ngIf", ctx_r2.invalidMessageCount == 1); 6515 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵadvance"](1); 6516 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵproperty"]("ngIf", ctx_r2.invalidMessageCount > 1); 6517} } 6518class ViewingComponent { 6519 constructor(route, viewService, title) { 6520 this.route = route; 6521 this.viewService = viewService; 6522 this.title = title; 6523 this.isLoading = true; 6524 this.isSingleMessageView = false; 6525 this.invalidMessageCount = 0; 6526 } 6527 ngOnInit() { 6528 this.title.setTitle('View Your Messages | Virtrolio'); 6529 // Determine if the viewing link has messageId query param 6530 if (this.route.snapshot.queryParams.messageId) { 6531 this.isSingleMessageView = true; 6532 } 6533 this.viewService.msgIo 6534 .getMessages() 6535 .subscribe((messages) => { 6536 // Get the current time to use as time since reference 6537 this.viewService.nowMillis = Timestamp.now().toMillis(); 6538 // Clear the messageList 6539 this.messageList = []; 6540 messages.forEach((message) => { 6541 try { 6542 // Add message to messageList if verifyMessage succeeds 6543 this.viewService.msgIo.verifyMessage(message); 6544 this.messageList.push(message); 6545 } 6546 catch (e) { 6547 this.invalidMessageCount += 1; 6548 } 6549 }); 6550 this.isLoading = false; 6551 }); 6552 } 6553} 6554ViewingComponent.ɵfac = function ViewingComponent_Factory(t) { return new (t || ViewingComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_7__.ActivatedRoute), _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵdirectiveInject"](_core_viewing_service__WEBPACK_IMPORTED_MODULE_2__.ViewingService), _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_8__.Title)); }; 6555ViewingComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵdefineComponent"]({ type: ViewingComponent, selectors: [["app-viewing"]], decls: 3, vars: 2, consts: [[4, "ngIf", "ngIfElse"], ["allMessages", ""], [1, "container"], [3, "setMessageList"], [1, "row", "justify-content-center"], [1, "col-12"], [3, "setMessageList", "setIsLoading"], ["class", "pt-3", 4, "ngIf"], [1, "pt-3"], [1, "invalid-msg-warning"], ["href", "https://virtrolio.web.app/contact"]], template: function ViewingComponent_Template(rf, ctx) { if (rf & 1) { 6556 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtemplate"](0, ViewingComponent_div_0_Template, 3, 0, "div", 0); 6557 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtemplate"](1, ViewingComponent_ng_template_1_Template, 7, 5, "ng-template", null, 1, _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtemplateRefExtractor"]); 6558 } if (rf & 2) { 6559 const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵreference"](2); 6560 _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵproperty"]("ngIf", ctx.isSingleMessageView)("ngIfElse", _r1); 6561 } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_9__.NgIf, _single_message_single_message_component__WEBPACK_IMPORTED_MODULE_3__.SingleMessageComponent, _responses_list_responses_list_component__WEBPACK_IMPORTED_MODULE_4__.ResponsesListComponent, _messages_messages_component__WEBPACK_IMPORTED_MODULE_5__.MessagesComponent], styles: [".invalid-msg-warning[_ngcontent-%COMP%] {\n color: var(--light-grey);\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpZXdpbmcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHdCQUF3QjtB
6561QUMxQiIsImZpbGUiOiJ2aWV3aW5nLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaW52YWxpZC1tc2ctd2FybmluZyB7XG4gIGNvbG9yOiB2YXIoLS1saWdodC1ncmV5KTtcbn1cbiJdfQ== */"] }); 6562 6563 6564/***/ }), 6565 6566/***/ 72321: 6567/*!****************************************************************************!*\ 6568 !*** ./src/app/shared/components/inline-images/inline-images.component.ts ***! 6569 \****************************************************************************/ 6570/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 6571 6572"use strict"; 6573__webpack_require__.r(__webpack_exports__); 6574/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6575/* harmony export */ "InlineImagesComponent": function() { return /* binding */ InlineImagesComponent; } 6576/* harmony export */ }); 6577/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 37716); 6578/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common */ 38583); 6579/* harmony import */ var _angular_fire_storage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/fire/storage */ 68274); 6580 6581 6582 6583function InlineImagesComponent_div_0_Template(rf, ctx) { if (rf & 1) { 6584 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 1); 6585 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div"); 6586 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "a", 2); 6587 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpipe"](3, "getDownloadURL"); 6588 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](4, "img", 3); 6589 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpipe"](5, "getDownloadURL"); 6590 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "div", 4); 6591 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](7, "img", 5); 6592 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 6593 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 6594 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 6595 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); 6596} if (rf & 2) { 6597 const image_r1 = ctx.$implicit; 6598 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); 6599 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("href", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpipeBind1"](3, 2, image_r1), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsanitizeUrl"]); 6600 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); 6601 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("src", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpipeBind1"](5, 4, image_r1), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsanitizeUrl"]); 6602} } 6603class InlineImagesComponent { 6604 constructor() { } 6605 ngOnInit() { } 6606} 6607InlineImagesComponent.ɵfac = function InlineImagesComponent_Factory(t) { return new (t || InlineImagesComponent)(); }; 6608InlineImagesComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: InlineImagesComponent, selectors: [["app-inline-images"]], inputs: { images: "images" }, decls: 1, vars: 1, consts: [["class", "d-flex p-2 justify-content-center", 4, "ngFor", "ngForOf"], [1, "d-flex", "p-2", "justify-content-center"], ["target", "_blank", 1, "col", "p-0", "d-flex", "justify-content-center", 3, "href"], ["alt", "Virtrolio Message image", 1, "msg-footer-img", 3, "src"], [1, "msg-footer-img-overlay"], ["src", "../../../../assets/images/icons/external-link.svg", "alt", "Virtrolio Message image", 1, "external-link-icon"]], template: function InlineImagesComponent_Template(rf, ctx) { if (rf & 1) { 6609 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, InlineImagesComponent_div_0_Template, 8, 6, "div", 0); 6610 } if (rf & 2) { 6611 _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx.images); 6612 } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__.NgForOf], pipes: [_angular_fire_storage__WEBPACK_IMPORTED_MODULE_2__.GetDownloadURLPipe], styles: [".msg-footer[_ngcontent-%COMP%] {\n height: 7em;\n}\n\n.msg-footer-img[_ngcontent-%COMP%] {\n width: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n transition: all linear 0.2s;\n}\n\n.msg-footer-img-overlay[_ngcontent-%COMP%] {\n background-color: rgba(0, 0, 0, 0.5);\n height: 100%;\n width: 100%;\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n opacity: 0;\n transition: all linear 0.2s;\n}\n\n.msg-footer-img-overlay[_ngcontent-%COMP%]:hover {\n opacity: 100%;\n}\n\n.external-link-icon[_ngcontent-%COMP%] {\n height: 2em;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlubGluZS1pbWFnZXMuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5QkFBeUI7O0FBRXpCO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsV0FBVztFQUNYLG9CQUFpQjtLQUFqQixpQkFBaUI7RUFDakIsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0Usb0NBQW9DO0VBQ3BDLFlBQVk7RUFDWixXQUFXO0VBQ1gsV0FBVztFQUNYLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsV0FBVztBQUNiIiwiZmlsZSI6ImlubGluZS1pbWFnZXMuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIE1lc3NhZ2UgaW1hZ2UgZm9vdGVyICovXG5cbi5tc2ctZm9vdGVyIHtcbiAgaGVpZ2h0OiA3ZW07XG59XG5cbi5tc2ctZm9vdGVyLWltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgdHJhbnNpdGlvbjogYWxsIGxpbmVhciAwLjJzO1xufVxuXG4ubXNnLWZvb3Rlci1pbWctb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW
66121zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IGFsbCBsaW5lYXIgMC4ycztcbn1cblxuLm1zZy1mb290ZXItaW1nLW92ZXJsYXk6aG92ZXIge1xuICBvcGFjaXR5OiAxMDAlO1xufVxuXG4uZXh0ZXJuYWwtbGluay1pY29uIHtcbiAgaGVpZ2h0OiAyZW07XG59XG4iXX0= */"] }); 6613 6614 6615/***/ }), 6616 6617/***/ 74743: 6618/*!********************************************!*\ 6619 !*** ./src/app/shared/interfaces/fonts.ts ***! 6620 \********************************************/ 6621/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 6622 6623"use strict"; 6624__webpack_require__.r(__webpack_exports__); 6625/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6626/* harmony export */ "Font": function() { return /* binding */ Font; } 6627/* harmony export */ }); 6628class Font { 6629 constructor(fontFamily, backupFont) { 6630 this.fontFamily = fontFamily; 6631 this.backupFont = backupFont; 6632 } 6633} 6634 6635 6636/***/ }), 6637 6638/***/ 38031: 6639/*!***********************************************!*\ 6640 !*** ./src/app/shared/interfaces/messages.ts ***! 6641 \***********************************************/ 6642/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 6643 6644"use strict"; 6645__webpack_require__.r(__webpack_exports__); 6646/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6647/* harmony export */ "VirtrolioMessageTemplate": function() { return /* binding */ VirtrolioMessageTemplate; } 6648/* harmony export */ }); 6649/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! firebase/firestore */ 72491); 6650 6651class VirtrolioMessageTemplate { 6652 constructor() { 6653 this.backColor = ''; 6654 this.contents = ''; 6655 this.fontColor = ''; 6656 this.fontFamily = ''; 6657 this.to = ''; 6658 } 6659} 6660 6661 6662/***/ }), 6663 6664/***/ 44466: 6665/*!*****************************************!*\ 6666 !*** ./src/app/shared/shared.module.ts ***! 6667 \*****************************************/ 6668/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 6669 6670"use strict"; 6671__webpack_require__.r(__webpack_exports__); 6672/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6673/* harmony export */ "SharedModule": function() { return /* binding */ SharedModule; } 6674/* harmony export */ }); 6675/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common */ 38583); 6676/* harmony import */ var _angular_fire_storage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/fire/storage */ 68274); 6677/* harmony import */ var _components_inline_images_inline_images_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/inline-images/inline-images.component */ 72321); 6678/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 37716); 6679 6680 6681 6682 6683class SharedModule { 6684} 6685SharedModule.ɵfac = function SharedModule_Factory(t) { return new (t || SharedModule)(); }; 6686SharedModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineNgModule"]({ type: SharedModule }); 6687SharedModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjector"]({ imports: [[_angular_fire_storage__WEBPACK_IMPORTED_MODULE_2__.AngularFireStorageModule, _angular_common__WEBPACK_IMPORTED_MODULE_3__.CommonModule]] }); 6688(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsetNgModuleScope"](SharedModule, { declarations: [_components_inline_images_inline_images_component__WEBPACK_IMPORTED_MODULE_0__.InlineImagesComponent], imports: [_angular_fire_storage__WEBPACK_IMPORTED_MODULE_2__.AngularFireStorageModule, _angular_common__WEBPACK_IMPORTED_MODULE_3__.CommonModule], exports: [_components_inline_images_inline_images_component__WEBPACK_IMPORTED_MODULE_0__.InlineImagesComponent] }); })(); 6689 6690 6691/***/ }), 6692 6693/***/ 89019: 6694/*!**********************************************!*\ 6695 !*** ./src/environments/environment.prod.ts ***! 6696 \**********************************************/ 6697/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 6698 6699"use strict"; 6700__webpack_require__.r(__webpack_exports__); 6701/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6702/* harmony export */ "environment": function() { return /* binding */ environment; } 6703/* harmony export */ }); 6704const environment = { 6705 production: true, 6706 firebase: { 6707 apiKey: 'AIzaSyB4bucqAGYm0ZZi6xVawtXdA7pDvrcp4PU', 6708 authDomain: 'virtrolio.firebaseapp.com', 6709 databaseURL: 'https://virtrolio.firebaseio.com', 6710 projectId: 'virtrolio', 6711 storageBucket: 'virtrolio.appspot.com', 6712 messagingSenderId: '929821853702', 6713 appId: '1:929821853702:web:dfb4740eb6984e49f69b87', 6714 measurementId: 'G-BT5XXRVZXP', 6715 }, 6716}; 6717 6718 6719/***/ }), 6720 6721/***/ 92340: 6722/*!*****************************************!*\ 6723 !*** ./src/environments/environment.ts ***! 6724 \*****************************************/ 6725/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 6726 6727"use strict"; 6728__webpack_require__.r(__webpack_exports__); 6729/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6730/* harmony export */ "environment": function() { return /* binding */ environment; } 6731/* harmony export */ }); 6732// This file can be replaced during build by using the `fileReplacements` array. 6733// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
6734// The list of file replacements can be found in `angular.json`. 6735// noinspection SpellCheckingInspection 6736const environment = { 6737 production: false, 6738 firebase: { 6739 apiKey: 'AIzaSyB4bucqAGYm0ZZi6xVawtXdA7pDvrcp4PU', 6740 authDomain: 'virtrolio.firebaseapp.com', 6741 databaseURL: 'https://virtrolio.firebaseio.com', 6742 projectId: 'virtrolio', 6743 storageBucket: 'virtrolio.appspot.com', 6744 messagingSenderId: '929821853702', 6745 appId: '1:929821853702:web:dfb4740eb6984e49f69b87', 6746 measurementId: 'G-BT5XXRVZXP', 6747 }, 6748}; 6749/* 6750 * For easier debugging in development mode, you can import the following file 6751 * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 6752 * 6753 * This import should be commented out in production mode because it will have a negative impact 6754 * on performance if an error is thrown. 6755 */ 6756// import 'zone.js/plugins/zone-error'; // Included with Angular CLI. 6757 6758 6759/***/ }), 6760 6761/***/ 14431: 6762/*!*********************!*\ 6763 !*** ./src/main.ts ***! 6764 \*********************/ 6765/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 6766 6767"use strict"; 6768__webpack_require__.r(__webpack_exports__); 6769/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/platform-browser */ 39075); 6770/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 37716); 6771/* harmony import */ var _app_app_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app/app.module */ 36747); 6772/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./environments/environment */ 92340); 6773 6774 6775 6776 6777if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.production) { 6778 (0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.enableProdMode)(); 6779} 6780_angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__.platformBrowser() 6781 .bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_0__.AppModule) 6782 .catch((err) => console.error(err)); 6783 6784 6785/***/ }), 6786 6787/***/ 80925: 6788/*!********************************************!*\ 6789 !*** ./src/app/core/navbar/changelog.json ***! 6790 \********************************************/ 6791/***/ (function(module) { 6792 6793"use strict"; 6794module.exports = JSON.parse('[{"versionNumber":"2.0.0","releaseDate":"2021-06-16","newMessageAvailable":true,"betaUpdate":false,"items":[{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Signing","content":"Add the ability to upload (not just embed!) 3 images in a message"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Viewing","content":"Add the ability to view attached images in all message views"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Viewing","content":"Add a spinner animation while loading messages"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Signing","content":"Add a spinner animation while a message is being uploaded"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Viewing","content":"Replace the crying emoji with more professional content and graphics when there are no messages to view ð"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Sitewide","content":"Revamp the graphics used throughout the website"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Sitewide","content":"Add an underline to the current active page in the navbar"},{"type":"FIX","typeCSS":"changelog-fix","betaFlag":false,"location":"Sitewide","content":"Prevent modals remaining open when navigating to a new page"}]},{"versionNumber":"1.2.1","releaseDate":"2020-12-31","betaUpdate":false,"items":[{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Sitewide","content":"Since 2021 begins tomorrow, you can now sign each of your friend\'s virtrolios again for the new year."},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Sitewide","content":"Add animations to most website components (most notably, popups)"},{"type":"FIX","typeCSS":"changelog-fix","betaFlag":false,"location":"Viewing","content":"Fix navbar covering popup message cards"}]},{"versionNumber":"1.2.0","releaseDate":"2020-08-02","betaUpdate":false,"items":[{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Home","content":"Completely redesign the lower part of the homepage"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Home","content":"Add extra sign-in button at the bottom of the homepage"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Viewing","content":"Add bookmark button to cards view"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Viewing","content":"Add warning if invalid messages are detected"},{"type":"UPD","typeCSS":"changelog-upd","betaFlag":false,"location":"MyVirtrolio","content":"Update title and description of the âShare Linkâ embed to be more friendly"},{"type":"UPD","typeCSS":"changelog-upd","betaFlag":false,"location":"Viewing","content":"Animate response list opening and closing for mobile devices"},{"type":"UPD","typeCSS":"changelog-upd","betaFlag":false,"location":"Viewing","content":"Add Timestamp to Single Message View"},{"type":"FIX","typeCSS":"changelog-fix","betaFlag":false,"location":"Sitewide","content":"Prevent cookie alert from showing up on each refresh"},{"type":"FIX","typeCSS":"changelog-fix","betaFlag":false,"location":"Home","content":"Improve layout when viewing website in landscape on mobile devices"},{"type":"FIX","typeCSS":"changelog-fix","betaFlag":false,"location":"Viewing","content":"Fix improperly layered components and shadows"},{"type":"FIX","typeCSS":"changelog-fix","betaFlag":false,"location":"MyVirtrolio","content":"Fix improperly placed âShare Linkâ button"}]},{"versionNumber":"1.1.0","releaseDate":"2020-07-15","betaUpdate":false,"items":[{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Sitewide","content":"This changelog!\\r"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Sitewide","content":"Added a warning telling Internet Explorer users to get a better browser\\r"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"FAQ","content":"Updated FAQ for \\"How to embed images?\\"\\r"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Viewing","content":"Open single-message view automatically in a new tab when you bookmark a message\\r"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"MyVirtrolio","content":"Added Social Media Sharing buttons to the Sharing Link dialog. Uses native sharing on mobile devices and custom links on desktops.\\r"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Signing","content":"Added supp
6794ort for embedding images, including a new embed helper button in the formatting bar and disclaimer about responsibilities regarding images in the send confirm dialog\\r"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Signing","content":"Added an Emoji button in the formatting bar, guiding users on how to open the emoji menu on their devices\\r"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Signing","content":"Added \\"Signing is better on a desktop/laptop!\\" alert and dialog if a mobile device is detected\\r"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Viewing","content":"Clicking the bookmark button on a message opens it in a new tab so you can bookmark it in your browser\\r"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Viewing","content":"You can now delete messages from the carousel\\r"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Viewing","content":"The Responses List button will now pop out the first time to draw your attention to it. If you want to see it again, delete your cookies for the website.\\r"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"FAQ","content":"Added questions about embedding images into messages, changing your display name and custom sharing links\\r"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Sitewide","content":"Added warning for Internet Explorer users, telling them to use a newer browser\\r"},{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Legal","content":"Added summaries and clauses about image sharing\\r"},{"type":"UPD","typeCSS":"changelog-upd","betaFlag":false,"location":"Sitewide","content":"The footer and navbar are slightly shorter\\r"},{"type":"UPD","typeCSS":"changelog-upd","betaFlag":false,"location":"Navbar","content":"The Hamburger icon on mobile devices is now a bit brighter to be more visible\\r"},{"type":"UPD","typeCSS":"changelog-upd","betaFlag":false,"location":"Viewing","content":"Moved the Responses List button on mobile devices for easier one-handed access\\r"},{"type":"FIX","typeCSS":"changelog-fix","betaFlag":false,"location":"About","content":"Removed random scrollbars appearing in our pictures\\r"},{"type":"FIX","typeCSS":"changelog-fix","betaFlag":false,"location":"Sitewide","content":"Updated branding and capitalization for our brand. Virtrolio (capital V) is our company, while what we provide to you (your \'virtrolio\') uses a lowercase V\\r"},{"type":"FIX","typeCSS":"changelog-fix","betaFlag":false,"location":"Sitewide","content":"Added support for mobile popup browsers (like the ones that open when tapping a link in Instagram or Twitter). Previously produced an Access Denied error when trying to login\\r"},{"type":"FIX","typeCSS":"changelog-fix","betaFlag":false,"location":"Sitewide","content":"Any errors that occur during the sign-in process will now log you out to prevent further issues from trying to use the website with incomplete user data\\r"},{"type":"FIX","typeCSS":"changelog-fix","betaFlag":false,"location":"Signing","content":"Pressing a format button should no longer cause a long message to scroll to the top"}]},{"versionNumber":"1.0.0","releaseDate":"2020-07-07","betaUpdate":false,"items":[{"type":"NEW","typeCSS":"changelog-new","betaFlag":false,"location":"Sitewide","content":"Initial release"}]}]'); 6795 6796/***/ }), 6797 6798/***/ 53679: 6799/*!***********************************************!*\ 6800 !*** ./src/app/pages/about/contributors.json ***! 6801 \***********************************************/ 6802/***/ (function(module) { 6803 6804"use strict"; 6805module.exports = JSON.parse('[{"name":"Arvind Nagabhirava","images":{"regular":"https://bit.ly/3ikDVw3","silly":"https://bit.ly/2V596Pn"},"blurb":"Arvind is Virtrolio\'s ideator. He is well known for his compassion and spectacular,\\n radiant personality that always lifts the spirits of those around him. He is known to have an undying love for\\n sports and mathematics. He is currently studying Computer Science\\n at the University of Waterloo. In his
6805spare time, he loves to practice his nunchucks and his taekwondo\\n (especially <s>on</s> with his beloved friends)!","sharingLink":"/signing?uid=cEct1nbdddV3gpdcMqhci3yYNef2&key=inShambles","social":{"github":"","instagram":"_airwind","linkedIn":"https://www.linkedin.com/in/arvindn01/","website":""}},{"name":"Eric Chen","images":{"regular":"https://bit.ly/2NemLiC","silly":"https://bit.ly/3dk383t"},"blurb":"Eric is our fearless technical lead, and we would follow him into hellheim and back if we had to. Not only that, Eric enjoys his bike rides and <i>dank memes</i> like there is no tomorrow. Eric is brilliant, motivated, and occasionally transforms into the real-life embodiment of the angery-react emoji. Eric is extremely proficient in all things tech. To tell the truth, his expertise and leadership is highly valued by the team. Eric is currently studying Software Engineering at uOttawa.","sharingLink":"/signing?uid=s7OIMu1mrxZscVX4dx2K5d2XYvf2&key=maximumAngery","social":{"github":"ricetech","instagram":"the_ricetech","linkedIn":"https://www.linkedin.com/in/ericchen08/","website":""}},{"name":"Dabeer Abdul-Azeez","images":{"regular":"https://bit.ly/2zPaOwQ","silly":"https://bit.ly/3fOt0WT"},"blurb":"Dabeer is an exceptional person with many talents and a wide variety of interests! He is known to have an undying love for musicals and math. And he is plenty talented in both departments! Dabeer is currently studying in the iBiomed program at McMaster University. In his spare time, he loves to practice singing, work on personal projects, and hang out with his beloved friends! He is especially fond of dropping in on people unexpectedly, but pleasant surprises are always to be expected from Dabeer.","sharingLink":"/signing?uid=yluDqypoiiWtlj8M86x7HLp699r1&key=badaBoomBadaBing","social":{"github":"DabeerAzeez","instagram":"GuyInFridge","linkedIn":"https://www.linkedin.com/in/dabeerabdulazeez/","website":"abdulazd.wixsite.com/1p10portfolio"}},{"name":"Tommy Huang","images":{"regular":"https://bit.ly/3hQOJzo","silly":"https://bit.ly/3hW09Sk"},"blurb":"Tommyâbetter known as potatoes~~~~ by the people of Dota 2, Terraria, and Factorioâis an ABSOLUTE Legend! He is studying Computer Science at the University of Waterloo and lived in the weirdest room in UWP for his first year. Tommy is an avid rocketry enthusiast, having been a member of the rocketry team in high school and now at UW! He also has been biking o u t s i d e, which has been a fairly scary experience.","sharingLink":"/signing?uid=01GHzGKQMzXxU0oYDnvoU8jtvdr2&key=GOOSE","social":{"github":"TommyHuang-dev","instagram":"","linkedIn":"https://www.linkedin.com/in/tommyhuang999","website":"tommyhuang.net"}},{"name":"Janakitti Ratana-Rueangsri","images":{"regular":"https://bit.ly/3elvYBR","silly":"https://bit.ly/2B371wA"},"blurb":"Janakitti is the Gandalf of our team at Virtrolio. While a true technical and creative wizard on the keyboard and on Powerpoint, Janakitti is more importantly the rope that ties the sac together. He is currently studying Software Engineering at the University of Waterloo. In his spare time, Janakitti is known to be an extremely talented guitar player! You should also check out his extravagant website at janakitti.com","sharingLink":"/signing?uid=hTYLpcLKneOLsonAX5ZirLphc6h2&key=wizard","social":{"github":"janakitti","instagram":"janakitti","linkedIn":"https://www.linkedin.com/in/janakittiratana/","website":"janakitti.com"}},{"name":"Anthony Wang","images":{"regular":"https://bit.ly/31xUsnP","silly":"https://bit.ly/2YQTn94"},"blurb":"Anthony is the daring bug squasher and legal eagle at Virtrolio. While known for his spectacular puns and passion for extremely long hikes, he also enjoys building things ~with love~! Anthony is currently studying Software Engineering at the University of Waterloo. In his spare time, he likes to play the piano and travel (RIP). He also writes about math things, lands planes, and has made it out of REV alive.","sharingLink":"/signing?uid=fW6IT848K7SFUVbesGBzP67JIGl2&key=YpTyd3w","social":{"github":"Anthonyftwang","instagram":"itsanthonywang","linkedIn":"https://www.linkedin.com/in/anthonyftwang","website":"anthonywang.dev"}},{"name":"Kishan Manoharan","images":{"regular":"https://bit.ly/3ggfmxo","silly":"https://bit.ly/34RP2V0"},"blurb":"Kishan joined the Virtrolio team during the second round of development in 2021. Known for his addiction to Spotify\'s API, he likes developing software in his free time. He is currently studying as a Computer Program Analyst at George Brown College. As a software developer and an ex-Barista, he is always accompanied by a caffeinated drink in an unsuccessful attempt to solve his catastrophic sleep
6805schedule, but it only makes it worse.","sharingLink":"/signing?uid=GJ1uuin92HOoqwv8Nvub2Dx0ZH63&key=iWantBoba","social":{"github":"kishanmanoharan","instagram":"kish9n","linkedIn":"https://www.linkedin.com/in/kishan-manoharan-333464195/","website":"kishanm.ca"}},{"name":"John Zhou","images":{"regular":"https://bit.ly/3emaogl","silly":"https://bit.ly/2AUtyvt"},"blurb":"John is the fearless, heroic and noble soul who helped create the About and FAQ pages you see on the Virtrolio site. In his domain, all browsers are welcome (with the exception of IE11) and are served with the very best static pages. John is currently studying Computer Science at the University of Waterloo. In his spare time, John enjoys baking fresh peanut-butter chocolate chip cookies and watching MasterChef Australia. John has also been taking swimming lessons to improve his swimming skills.","sharingLink":"/signing?uid=0VKjHqwTRwNddcKkDHKyuy1wNTu2&key=itsjohnzhou","social":{"github":"johnzhoudev","instagram":"itsjon.zho","linkedIn":"https://www.linkedin.com/in/johnzhou123/","website":""}}]'); 6806 6807/***/ }) 6808 6809}, 6810/******/ function(__webpack_require__) { // webpackRuntimeModules 6811/******/ "use strict"; 6812/******/ 6813/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } 6814/******/ __webpack_require__.O(0, ["vendor"], function() { return __webpack_exec__(14431); }); 6815/******/ var __webpack_exports__ = __webpack_require__.O(); 6816/******/ } 6817]); 6818//# sourceMappingURL=main-es2015.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.