diff --git a/main.js b/main.js index 84f58c3..6510f7b 100644 --- a/main.js +++ b/main.js @@ -11,7 +11,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "AppRoutingModule": () => (/* binding */ AppRoutingModule) /* harmony export */ }); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/router */ 60124); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/router */ 60124); /* harmony import */ var _pages_developers_developers_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pages/developers/developers.component */ 972); /* harmony import */ var _pages_dashboard_dashboard_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pages/dashboard/dashboard.component */ 24789); /* harmony import */ var _pages_auth_signin_auth_signin_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pages/auth-signin/auth-signin.component */ 2771); @@ -23,7 +23,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _pages_webhook_logs_webhook_logs_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./pages/webhook-logs/webhook-logs.component */ 33007); /* harmony import */ var _pages_org_billing_org_billing_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./pages/org-billing/org-billing.component */ 57167); /* harmony import */ var _pages_org_team_org_team_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./pages/org-team/org-team.component */ 95957); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/core */ 22560); +/* harmony import */ var _pages_auth_reset_request_auth_reset_request_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./pages/auth-reset-request/auth-reset-request.component */ 38540); +/* harmony import */ var _pages_auth_reset_auth_reset_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./pages/auth-reset/auth-reset.component */ 48453); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/core */ 22560); + + @@ -43,6 +47,8 @@ const routes = [ { path: 'auth/signup', component: _pages_auth_signup_auth_signup_component__WEBPACK_IMPORTED_MODULE_3__.AuthSignupComponent }, { path: 'auth/invite', component: _pages_auth_signup_auth_signup_component__WEBPACK_IMPORTED_MODULE_3__.AuthSignupComponent }, { path: 'auth/signup/org', component: _pages_auth_signup_organization_auth_signup_organization_component__WEBPACK_IMPORTED_MODULE_4__.AuthSignupOrganizationComponent }, + { path: 'auth/reset/request', component: _pages_auth_reset_request_auth_reset_request_component__WEBPACK_IMPORTED_MODULE_11__.AuthResetRequestComponent }, + { path: 'auth/reset', component: _pages_auth_reset_auth_reset_component__WEBPACK_IMPORTED_MODULE_12__.AuthResetComponent }, { path: '', redirectTo: '/developers', pathMatch: 'full' }, { path: 'dashboard', component: _pages_dashboard_dashboard_component__WEBPACK_IMPORTED_MODULE_1__.DashboardComponent, canActivate: [_auth_guards_is_authenticated_auth_guard__WEBPACK_IMPORTED_MODULE_5__.IsAuthenticatedAuthGuard] }, { path: 'developers', component: _pages_developers_developers_component__WEBPACK_IMPORTED_MODULE_0__.DevelopersComponent, canActivate: [_auth_guards_is_authenticated_auth_guard__WEBPACK_IMPORTED_MODULE_5__.IsAuthenticatedAuthGuard] }, @@ -57,9 +63,9 @@ const routes = [ class AppRoutingModule { } AppRoutingModule.ɵfac = function AppRoutingModule_Factory(t) { return new (t || AppRoutingModule)(); }; -AppRoutingModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_11__["ɵɵdefineNgModule"]({ type: AppRoutingModule }); -AppRoutingModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_11__["ɵɵdefineInjector"]({ imports: [_angular_router__WEBPACK_IMPORTED_MODULE_12__.RouterModule.forRoot(routes), _angular_router__WEBPACK_IMPORTED_MODULE_12__.RouterModule] }); -(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_11__["ɵɵsetNgModuleScope"](AppRoutingModule, { imports: [_angular_router__WEBPACK_IMPORTED_MODULE_12__.RouterModule], exports: [_angular_router__WEBPACK_IMPORTED_MODULE_12__.RouterModule] }); })(); +AppRoutingModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵdefineNgModule"]({ type: AppRoutingModule }); +AppRoutingModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵdefineInjector"]({ imports: [_angular_router__WEBPACK_IMPORTED_MODULE_14__.RouterModule.forRoot(routes), _angular_router__WEBPACK_IMPORTED_MODULE_14__.RouterModule] }); +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵsetNgModuleScope"](AppRoutingModule, { imports: [_angular_router__WEBPACK_IMPORTED_MODULE_14__.RouterModule], exports: [_angular_router__WEBPACK_IMPORTED_MODULE_14__.RouterModule] }); })(); /***/ }), @@ -220,17 +226,17 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "AppModule": () => (/* binding */ AppModule) /* harmony export */ }); -/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! @angular/platform-browser */ 34497); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! @angular/forms */ 2508); -/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @angular/common/http */ 58987); +/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! @angular/platform-browser */ 34497); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! @angular/forms */ 2508); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! @angular/common/http */ 58987); /* harmony import */ var _app_routing_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app-routing.module */ 90158); /* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app.component */ 55041); -/* harmony import */ var _fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @fortawesome/free-solid-svg-icons */ 9306); -/* harmony import */ var _fortawesome_free_regular_svg_icons__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @fortawesome/free-regular-svg-icons */ 2898); -/* harmony import */ var ngx_highlightjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ngx-highlightjs */ 97101); -/* harmony import */ var _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! @ng-bootstrap/ng-bootstrap */ 3191); -/* harmony import */ var ngx_infinite_scroll__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ngx-infinite-scroll */ 47364); -/* harmony import */ var _fortawesome_angular_fontawesome__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @fortawesome/angular-fontawesome */ 19200); +/* harmony import */ var _fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @fortawesome/free-solid-svg-icons */ 9306); +/* harmony import */ var _fortawesome_free_regular_svg_icons__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @fortawesome/free-regular-svg-icons */ 2898); +/* harmony import */ var ngx_highlightjs__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ngx-highlightjs */ 97101); +/* harmony import */ var _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! @ng-bootstrap/ng-bootstrap */ 3191); +/* harmony import */ var ngx_infinite_scroll__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ngx-infinite-scroll */ 47364); +/* harmony import */ var _fortawesome_angular_fontawesome__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! @fortawesome/angular-fontawesome */ 19200); /* harmony import */ var _components_header_header_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/header/header.component */ 43646); /* harmony import */ var _components_footer_footer_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/footer/footer.component */ 64662); /* harmony import */ var _pages_developers_developers_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pages/developers/developers.component */ 972); @@ -240,13 +246,13 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _pages_auth_signup_organization_auth_signup_organization_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./pages/auth-signup-organization/auth-signup-organization.component */ 83515); /* harmony import */ var _directives_password_confirm_validator_directive__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./directives/password-confirm-validator.directive */ 36465); /* harmony import */ var _auth_guards_is_authenticated_auth_guard__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./auth-guards/is-authenticated-auth-guard */ 16056); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! @angular/router */ 60124); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! @angular/router */ 60124); /* harmony import */ var _services_auth_service__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./services/auth.service */ 37556); /* harmony import */ var _services_auth_interceptor_service__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./services/auth-interceptor.service */ 32993); -/* harmony import */ var ngx_image_cropper__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ngx-image-cropper */ 10649); +/* harmony import */ var ngx_image_cropper__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ngx-image-cropper */ 10649); /* harmony import */ var _components_logo_cropper_logo_cropper_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./components/logo-cropper/logo-cropper.component */ 57993); -/* harmony import */ var ng2_charts__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ng2-charts */ 31208); -/* harmony import */ var ngx_moment__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ngx-moment */ 20728); +/* harmony import */ var ng2_charts__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ng2-charts */ 31208); +/* harmony import */ var ngx_moment__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ngx-moment */ 20728); /* harmony import */ var _pages_org_settings_org_settings_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./pages/org-settings/org-settings.component */ 16226); /* harmony import */ var _pages_account_settings_account_settings_component__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./pages/account-settings/account-settings.component */ 84411); /* harmony import */ var _components_org_credentials_editor_org_credentials_editor_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./components/org-credentials-editor/org-credentials-editor.component */ 39302); @@ -255,7 +261,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _pages_org_billing_org_billing_component__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./pages/org-billing/org-billing.component */ 57167); /* harmony import */ var _pages_org_team_org_team_component__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./pages/org-team/org-team.component */ 95957); /* harmony import */ var _components_org_team_invite_org_team_invite_component__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./components/org-team-invite/org-team-invite.component */ 93172); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @angular/core */ 22560); +/* harmony import */ var _pages_auth_reset_request_auth_reset_request_component__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./pages/auth-reset-request/auth-reset-request.component */ 38540); +/* harmony import */ var _pages_auth_reset_auth_reset_component__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./pages/auth-reset/auth-reset.component */ 48453); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @angular/core */ 22560); + + @@ -295,38 +305,38 @@ __webpack_require__.r(__webpack_exports__); class AppModule { constructor(library) { - library.addIconPacks(_fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_22__.fas, _fortawesome_free_regular_svg_icons__WEBPACK_IMPORTED_MODULE_23__.far); + library.addIconPacks(_fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_24__.fas, _fortawesome_free_regular_svg_icons__WEBPACK_IMPORTED_MODULE_25__.far); } } -AppModule.ɵfac = function AppModule_Factory(t) { return new (t || AppModule)(_angular_core__WEBPACK_IMPORTED_MODULE_24__["ɵɵinject"](_fortawesome_angular_fontawesome__WEBPACK_IMPORTED_MODULE_25__.FaIconLibrary)); }; -AppModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_24__["ɵɵdefineNgModule"]({ type: AppModule, bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_1__.AppComponent] }); -AppModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_24__["ɵɵdefineInjector"]({ providers: [ +AppModule.ɵfac = function AppModule_Factory(t) { return new (t || AppModule)(_angular_core__WEBPACK_IMPORTED_MODULE_26__["ɵɵinject"](_fortawesome_angular_fontawesome__WEBPACK_IMPORTED_MODULE_27__.FaIconLibrary)); }; +AppModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_26__["ɵɵdefineNgModule"]({ type: AppModule, bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_1__.AppComponent] }); +AppModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_26__["ɵɵdefineInjector"]({ providers: [ { - provide: _angular_common_http__WEBPACK_IMPORTED_MODULE_26__.HTTP_INTERCEPTORS, + provide: _angular_common_http__WEBPACK_IMPORTED_MODULE_28__.HTTP_INTERCEPTORS, useClass: _services_auth_interceptor_service__WEBPACK_IMPORTED_MODULE_12__.AuthInterceptorService, multi: true, - deps: [_services_auth_service__WEBPACK_IMPORTED_MODULE_11__.AuthService, _angular_router__WEBPACK_IMPORTED_MODULE_27__.Router] + deps: [_services_auth_service__WEBPACK_IMPORTED_MODULE_11__.AuthService, _angular_router__WEBPACK_IMPORTED_MODULE_29__.Router] }, _auth_guards_is_authenticated_auth_guard__WEBPACK_IMPORTED_MODULE_10__.IsAuthenticatedAuthGuard, { - provide: ngx_highlightjs__WEBPACK_IMPORTED_MODULE_28__.HIGHLIGHT_OPTIONS, + provide: ngx_highlightjs__WEBPACK_IMPORTED_MODULE_30__.HIGHLIGHT_OPTIONS, useValue: { fullLibraryLoader: () => __webpack_require__.e(/*! import() */ "node_modules_highlight_js_es_index_js").then(__webpack_require__.bind(__webpack_require__, /*! highlight.js */ 7722)), } } - ], imports: [_angular_forms__WEBPACK_IMPORTED_MODULE_29__.FormsModule, - _angular_forms__WEBPACK_IMPORTED_MODULE_29__.ReactiveFormsModule, - _angular_platform_browser__WEBPACK_IMPORTED_MODULE_30__.BrowserModule, - _angular_common_http__WEBPACK_IMPORTED_MODULE_26__.HttpClientModule, + ], imports: [_angular_forms__WEBPACK_IMPORTED_MODULE_31__.FormsModule, + _angular_forms__WEBPACK_IMPORTED_MODULE_31__.ReactiveFormsModule, + _angular_platform_browser__WEBPACK_IMPORTED_MODULE_32__.BrowserModule, + _angular_common_http__WEBPACK_IMPORTED_MODULE_28__.HttpClientModule, _app_routing_module__WEBPACK_IMPORTED_MODULE_0__.AppRoutingModule, - _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_31__.NgbModule, - ng2_charts__WEBPACK_IMPORTED_MODULE_32__.NgChartsModule, - ngx_infinite_scroll__WEBPACK_IMPORTED_MODULE_33__.InfiniteScrollModule, - _fortawesome_angular_fontawesome__WEBPACK_IMPORTED_MODULE_25__.FontAwesomeModule, - ngx_image_cropper__WEBPACK_IMPORTED_MODULE_34__.ImageCropperModule, - ngx_moment__WEBPACK_IMPORTED_MODULE_35__.MomentModule, - ngx_highlightjs__WEBPACK_IMPORTED_MODULE_28__.HighlightModule] }); -(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_24__["ɵɵsetNgModuleScope"](AppModule, { declarations: [_app_component__WEBPACK_IMPORTED_MODULE_1__.AppComponent, + _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_33__.NgbModule, + ng2_charts__WEBPACK_IMPORTED_MODULE_34__.NgChartsModule, + ngx_infinite_scroll__WEBPACK_IMPORTED_MODULE_35__.InfiniteScrollModule, + _fortawesome_angular_fontawesome__WEBPACK_IMPORTED_MODULE_27__.FontAwesomeModule, + ngx_image_cropper__WEBPACK_IMPORTED_MODULE_36__.ImageCropperModule, + ngx_moment__WEBPACK_IMPORTED_MODULE_37__.MomentModule, + ngx_highlightjs__WEBPACK_IMPORTED_MODULE_30__.HighlightModule] }); +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_26__["ɵɵsetNgModuleScope"](AppModule, { declarations: [_app_component__WEBPACK_IMPORTED_MODULE_1__.AppComponent, _components_header_header_component__WEBPACK_IMPORTED_MODULE_2__.HeaderComponent, _components_footer_footer_component__WEBPACK_IMPORTED_MODULE_3__.FooterComponent, _pages_developers_developers_component__WEBPACK_IMPORTED_MODULE_4__.DevelopersComponent, @@ -342,19 +352,21 @@ AppModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_24__["ɵ _pages_webhook_logs_webhook_logs_component__WEBPACK_IMPORTED_MODULE_18__.WebhookLogsComponent, _pages_org_billing_org_billing_component__WEBPACK_IMPORTED_MODULE_19__.OrgBillingComponent, _pages_org_team_org_team_component__WEBPACK_IMPORTED_MODULE_20__.OrgTeamComponent, - _components_org_team_invite_org_team_invite_component__WEBPACK_IMPORTED_MODULE_21__.OrgTeamInviteComponent], imports: [_angular_forms__WEBPACK_IMPORTED_MODULE_29__.FormsModule, - _angular_forms__WEBPACK_IMPORTED_MODULE_29__.ReactiveFormsModule, - _angular_platform_browser__WEBPACK_IMPORTED_MODULE_30__.BrowserModule, - _angular_common_http__WEBPACK_IMPORTED_MODULE_26__.HttpClientModule, + _components_org_team_invite_org_team_invite_component__WEBPACK_IMPORTED_MODULE_21__.OrgTeamInviteComponent, + _pages_auth_reset_request_auth_reset_request_component__WEBPACK_IMPORTED_MODULE_22__.AuthResetRequestComponent, + _pages_auth_reset_auth_reset_component__WEBPACK_IMPORTED_MODULE_23__.AuthResetComponent], imports: [_angular_forms__WEBPACK_IMPORTED_MODULE_31__.FormsModule, + _angular_forms__WEBPACK_IMPORTED_MODULE_31__.ReactiveFormsModule, + _angular_platform_browser__WEBPACK_IMPORTED_MODULE_32__.BrowserModule, + _angular_common_http__WEBPACK_IMPORTED_MODULE_28__.HttpClientModule, _app_routing_module__WEBPACK_IMPORTED_MODULE_0__.AppRoutingModule, _directives_password_confirm_validator_directive__WEBPACK_IMPORTED_MODULE_9__.PasswordConfirmValidatorDirective, - _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_31__.NgbModule, - ng2_charts__WEBPACK_IMPORTED_MODULE_32__.NgChartsModule, - ngx_infinite_scroll__WEBPACK_IMPORTED_MODULE_33__.InfiniteScrollModule, - _fortawesome_angular_fontawesome__WEBPACK_IMPORTED_MODULE_25__.FontAwesomeModule, - ngx_image_cropper__WEBPACK_IMPORTED_MODULE_34__.ImageCropperModule, - ngx_moment__WEBPACK_IMPORTED_MODULE_35__.MomentModule, - ngx_highlightjs__WEBPACK_IMPORTED_MODULE_28__.HighlightModule] }); })(); + _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_33__.NgbModule, + ng2_charts__WEBPACK_IMPORTED_MODULE_34__.NgChartsModule, + ngx_infinite_scroll__WEBPACK_IMPORTED_MODULE_35__.InfiniteScrollModule, + _fortawesome_angular_fontawesome__WEBPACK_IMPORTED_MODULE_27__.FontAwesomeModule, + ngx_image_cropper__WEBPACK_IMPORTED_MODULE_36__.ImageCropperModule, + ngx_moment__WEBPACK_IMPORTED_MODULE_37__.MomentModule, + ngx_highlightjs__WEBPACK_IMPORTED_MODULE_30__.HighlightModule] }); })(); /***/ }), @@ -1529,6 +1541,308 @@ AccountSettingsComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_M } }, styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhY2NvdW50LXNldHRpbmdzLmNvbXBvbmVudC5zY3NzIn0= */"] }); +/***/ }), + +/***/ 38540: +/*!**************************************************************************!*\ + !*** ./src/app/pages/auth-reset-request/auth-reset-request.component.ts ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "AuthResetRequestComponent": () => (/* binding */ AuthResetRequestComponent) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 22560); +/* harmony import */ var _services_auth_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../services/auth.service */ 37556); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/forms */ 2508); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common */ 94666); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/router */ 60124); + + + + + +function AuthResetRequestComponent_div_15_div_1_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](1, " Email is required. "); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} } +function AuthResetRequestComponent_div_15_div_2_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](1, " Email must be a valid email address. "); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} } +function AuthResetRequestComponent_div_15_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 15); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](1, AuthResetRequestComponent_div_15_div_1_Template, 2, 0, "div", 16); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](2, AuthResetRequestComponent_div_15_div_2_Template, 2, 0, "div", 16); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); + const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵreference"](14); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", _r1.errors == null ? null : _r1.errors["required"]); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", _r1.errors == null ? null : _r1.errors["email"]); +} } +function AuthResetRequestComponent_div_18_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 17)(1, "strong"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](2, "Error"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} if (rf & 2) { + const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"](" ", ctx_r3.errorMsg, " "); +} } +function AuthResetRequestComponent_div_19_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 18)(1, "strong"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](2, "Submitted"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} if (rf & 2) { + const ctx_r4 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"](" ", ctx_r4.successMsg, " "); +} } +class AuthResetRequestComponent { + constructor(authService) { + this.authService = authService; + this.email = ''; + this.loading = false; + this.errorMsg = ""; + this.successMsg = ""; + } + ngOnInit() { + } + onSubmit() { + this.loading = true; + this.authService.UserResetRequest(this.email).then((resp) => { + console.log("User Password Reset Request Created", resp); + this.errorMsg = ""; + this.successMsg = "Password reset request sent. Check your email for further instructions."; + this.loading = false; + }, (err) => { + console.error("Error submitting password reset request", err); + this.errorMsg = "An error occurred while submitting password reset request.\nPlease try again later or contact support for assistance."; + this.successMsg = ""; + this.loading = false; + }); + } +} +AuthResetRequestComponent.ɵfac = function AuthResetRequestComponent_Factory(t) { return new (t || AuthResetRequestComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_services_auth_service__WEBPACK_IMPORTED_MODULE_0__.AuthService)); }; +AuthResetRequestComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: AuthResetRequestComponent, selectors: [["app-auth-reset-request"]], decls: 25, vars: 5, consts: [[1, "az-signin-wrapper"], [1, "az-card-signin"], ["src", "assets/images/banner-transparent-trim.png", "alt", "fasten", 1, "az-img-logo"], [1, "az-signin-header"], [3, "ngSubmit"], ["resetForm", "ngForm"], [1, "form-group"], ["type", "email", "id", "email", "required", "", "name", "email", "placeholder", "Enter your email", 1, "form-control", 3, "ngModel", "ngModelChange"], ["emailCtrl", "ngModel"], ["class", "alert alert-danger", 4, "ngIf"], ["type", "submit", 1, "btn", "btn-az-primary", "btn-block", 3, "disabled"], ["class", "alert alert-danger mt-3", "role", "alert", 4, "ngIf"], ["class", "alert alert-success mt-3", "role", "alert", 4, "ngIf"], [1, "az-signin-footer"], ["routerLink", "/auth/signin"], [1, "alert", "alert-danger"], [4, "ngIf"], ["role", "alert", 1, "alert", "alert-danger", "mt-3"], ["role", "alert", 1, "alert", "alert-success", "mt-3"]], template: function AuthResetRequestComponent_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 0)(1, "div", 1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](2, "img", 2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](3, "div", 3)(4, "h2"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](5, "Reset Password"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](6, "h4"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](7, "Please enter your email to receive a password reset link"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](8, "form", 4, 5); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("ngSubmit", function AuthResetRequestComponent_Template_form_ngSubmit_8_listener() { return ctx.onSubmit(); }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](10, "div", 6)(11, "label"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](12, "Email"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](13, "input", 7, 8); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("ngModelChange", function AuthResetRequestComponent_Template_input_ngModelChange_13_listener($event) { return ctx.email = $event; }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](15, AuthResetRequestComponent_div_15_Template, 3, 2, "div", 9); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](16, "button", 10); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](17, "Reset Password"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](18, AuthResetRequestComponent_div_18_Template, 4, 1, "div", 11); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](19, AuthResetRequestComponent_div_19_Template, 4, 1, "div", 12); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](20, "div", 13)(21, "p"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](22, "Remembered your password? "); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](23, "a", 14); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](24, "Sign In"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()()()()(); + } if (rf & 2) { + const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵreference"](9); + const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵreference"](14); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](13); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngModel", ctx.email); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", _r1.invalid && (_r1.dirty || _r1.touched)); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("disabled", !_r0.form.valid || ctx.loading); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", ctx.errorMsg); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", ctx.successMsg); + } }, dependencies: [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["ɵNgNoValidate"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__.DefaultValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.NgControlStatus, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.NgControlStatusGroup, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.RequiredValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.NgModel, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.NgForm, _angular_common__WEBPACK_IMPORTED_MODULE_3__.NgIf, _angular_router__WEBPACK_IMPORTED_MODULE_4__.RouterLinkWithHref], styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhdXRoLXJlc2V0LXJlcXVlc3QuY29tcG9uZW50LnNjc3MifQ== */"] }); + + +/***/ }), + +/***/ 48453: +/*!**********************************************************!*\ + !*** ./src/app/pages/auth-reset/auth-reset.component.ts ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "AuthResetComponent": () => (/* binding */ AuthResetComponent) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 22560); +/* harmony import */ var _services_auth_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../services/auth.service */ 37556); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ 60124); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ 2508); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common */ 94666); + + + + + +function AuthResetComponent_div_15_div_1_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](1, " Password is required. "); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} } +function AuthResetComponent_div_15_div_2_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](1, " Password must be at least 8 characters long. "); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} } +function AuthResetComponent_div_15_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 15); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](1, AuthResetComponent_div_15_div_1_Template, 2, 0, "div", 16); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](2, AuthResetComponent_div_15_div_2_Template, 2, 0, "div", 16); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); + const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵreference"](14); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", _r1.errors == null ? null : _r1.errors["required"]); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", _r1.errors == null ? null : _r1.errors["minlength"]); +} } +function AuthResetComponent_div_21_div_1_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](1, " Confirm password is required. "); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} } +function AuthResetComponent_div_21_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 15); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](1, AuthResetComponent_div_21_div_1_Template, 2, 0, "div", 16); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); + const _r3 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵreference"](20); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", _r3.errors == null ? null : _r3.errors["required"]); +} } +function AuthResetComponent_div_24_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 17)(1, "strong"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](2, "Error"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} if (rf & 2) { + const ctx_r5 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"](" ", ctx_r5.errorMsg, " "); +} } +class AuthResetComponent { + constructor(authService, router) { + this.authService = authService; + this.router = router; + this.password = ""; + this.confirmPassword = ""; + this.loading = false; + this.resetToken = ""; + this.errorMsg = ""; + } + ngOnInit() { + const urlParams = new URLSearchParams(window.location.search); + this.resetToken = urlParams.get('token'); + } + onSubmit() { + if (this.password != this.confirmPassword) { + this.errorMsg = "passwords do not match"; + return; + } + if (!this.resetToken) { + this.errorMsg = "no reset token provided"; + return; + } + this.loading = true; + this.authService.UserReset(this.password, this.resetToken) + .then(() => { + this.loading = false; + this.router.navigateByUrl('/dashboard'); + }) + .catch((err) => { + this.loading = false; + this.errorMsg = "an error occurred during password reset"; + console.log(err); + }); + } +} +AuthResetComponent.ɵfac = function AuthResetComponent_Factory(t) { return new (t || AuthResetComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_services_auth_service__WEBPACK_IMPORTED_MODULE_0__.AuthService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_2__.Router)); }; +AuthResetComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: AuthResetComponent, selectors: [["app-auth-reset"]], decls: 26, vars: 6, consts: [[1, "az-signin-wrapper"], [1, "az-card-signin"], ["src", "assets/images/banner-transparent-trim.png", "alt", "fasten", 1, "az-img-logo"], [1, "az-signin-header"], [3, "ngSubmit"], ["resetForm", "ngForm"], [1, "form-group"], ["required", "", "minlength", "8", "type", "password", "id", "password", "name", "password", "placeholder", "Enter your new password", 1, "form-control", 3, "ngModel", "ngModelChange"], ["passwordCtrl", "ngModel"], ["class", "alert alert-danger", 4, "ngIf"], ["type", "password", "id", "confirmPassword", "required", "", "name", "confirmPassword", "placeholder", "Confirm your new password", 1, "form-control", 3, "ngModel", "ngModelChange"], ["passwordConfirmCtrl", "ngModel"], ["type", "submit", 1, "btn", "btn-az-primary", "btn-block", 3, "disabled"], ["class", "alert alert-danger mt-3", "role", "alert", 4, "ngIf"], [1, "az-signin-footer"], [1, "alert", "alert-danger"], [4, "ngIf"], ["role", "alert", 1, "alert", "alert-danger", "mt-3"]], template: function AuthResetComponent_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 0)(1, "div", 1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](2, "img", 2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](3, "div", 3)(4, "h2"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](5, "Reset Password"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](6, "h4"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](7, "Please enter your new password"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](8, "form", 4, 5); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("ngSubmit", function AuthResetComponent_Template_form_ngSubmit_8_listener() { return ctx.onSubmit(); }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](10, "div", 6)(11, "label"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](12, "Password"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](13, "input", 7, 8); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("ngModelChange", function AuthResetComponent_Template_input_ngModelChange_13_listener($event) { return ctx.password = $event; }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](15, AuthResetComponent_div_15_Template, 3, 2, "div", 9); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](16, "div", 6)(17, "label"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](18, "Confirm Password"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](19, "input", 10, 11); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("ngModelChange", function AuthResetComponent_Template_input_ngModelChange_19_listener($event) { return ctx.confirmPassword = $event; }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](21, AuthResetComponent_div_21_Template, 2, 1, "div", 9); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](22, "button", 12); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](23, "Reset Password"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](24, AuthResetComponent_div_24_Template, 4, 1, "div", 13); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](25, "div", 14); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()(); + } if (rf & 2) { + const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵreference"](9); + const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵreference"](14); + const _r3 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵreference"](20); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](13); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngModel", ctx.password); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", _r1.invalid && (_r1.dirty || _r1.touched)); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngModel", ctx.confirmPassword); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", _r3.invalid && (_r3.dirty || _r3.touched)); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("disabled", !_r0.form.valid || ctx.loading); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", ctx.errorMsg); + } }, dependencies: [_angular_forms__WEBPACK_IMPORTED_MODULE_3__["ɵNgNoValidate"], _angular_forms__WEBPACK_IMPORTED_MODULE_3__.DefaultValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.NgControlStatus, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.NgControlStatusGroup, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.RequiredValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.MinLengthValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.NgModel, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.NgForm, _angular_common__WEBPACK_IMPORTED_MODULE_4__.NgIf], styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhdXRoLXJlc2V0LmNvbXBvbmVudC5zY3NzIn0= */"] }); + + /***/ }), /***/ 2771: @@ -1548,8 +1862,6 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ 60124); /* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ 2508); /* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/common */ 94666); -/* harmony import */ var _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ng-bootstrap/ng-bootstrap */ 3191); - @@ -1664,7 +1976,7 @@ class AuthSigninComponent { } } AuthSigninComponent.ɵfac = function AuthSigninComponent_Factory(t) { return new (t || AuthSigninComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_services_auth_service__WEBPACK_IMPORTED_MODULE_1__.AuthService), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_3__.Router)); }; -AuthSigninComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ type: AuthSigninComponent, selectors: [["app-auth-signin"]], decls: 33, vars: 10, consts: [[1, "az-signin-wrapper"], [1, "az-card-signin", 3, "ngStyle"], ["src", "assets/images/banner-transparent-trim.png", "alt", "fasten", 1, "az-img-logo"], [1, "az-signin-header"], [4, "ngIf"], [3, "ngSubmit"], ["userForm", "ngForm"], [1, "form-group"], ["name", "email", "required", "", "email", "", "minlength", "4", "type", "text", "placeholder", "Enter your username", 1, "form-control", 3, "ngModel", "ngModelChange"], ["email", "ngModel"], ["class", "alert alert-danger", 4, "ngIf"], ["name", "password", "required", "", "minlength", "8", "type", "password", "placeholder", "Enter your password", 1, "form-control", 3, "ngModel", "ngModelChange"], ["password", "ngModel"], ["type", "submit", 1, "btn", "btn-az-primary", "btn-block", 3, "disabled"], ["class", "spinner-border spinner-border-sm", "role", "status", "aria-hidden", "true", 4, "ngIf"], ["class", "alert alert-danger mt-3", "role", "alert", 4, "ngIf"], [1, "az-signin-footer"], ["ngbTooltip", "not yet implemented"], ["routerLink", "/auth/signup"], [1, "alert", "alert-danger"], ["role", "status", "aria-hidden", "true", 1, "spinner-border", "spinner-border-sm"], ["role", "alert", 1, "alert", "alert-danger", "mt-3"]], template: function AuthSigninComponent_Template(rf, ctx) { if (rf & 1) { +AuthSigninComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ type: AuthSigninComponent, selectors: [["app-auth-signin"]], decls: 33, vars: 10, consts: [[1, "az-signin-wrapper"], [1, "az-card-signin", 3, "ngStyle"], ["src", "assets/images/banner-transparent-trim.png", "alt", "fasten", 1, "az-img-logo"], [1, "az-signin-header"], [4, "ngIf"], [3, "ngSubmit"], ["userForm", "ngForm"], [1, "form-group"], ["name", "email", "required", "", "email", "", "minlength", "4", "type", "text", "placeholder", "Enter your username", 1, "form-control", 3, "ngModel", "ngModelChange"], ["email", "ngModel"], ["class", "alert alert-danger", 4, "ngIf"], ["name", "password", "required", "", "minlength", "8", "type", "password", "placeholder", "Enter your password", 1, "form-control", 3, "ngModel", "ngModelChange"], ["password", "ngModel"], ["type", "submit", 1, "btn", "btn-az-primary", "btn-block", 3, "disabled"], ["class", "spinner-border spinner-border-sm", "role", "status", "aria-hidden", "true", 4, "ngIf"], ["class", "alert alert-danger mt-3", "role", "alert", 4, "ngIf"], [1, "az-signin-footer"], ["routerLink", "/auth/reset/request"], ["routerLink", "/auth/signup"], [1, "alert", "alert-danger"], ["role", "status", "aria-hidden", "true", 1, "spinner-border", "spinner-border-sm"], ["role", "alert", 1, "alert", "alert-danger", "mt-3"]], template: function AuthSigninComponent_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 0)(1, "div", 1); _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](2, "img", 2); _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](3, "div", 3)(4, "h2"); @@ -1725,7 +2037,7 @@ AuthSigninComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", ctx.loading); _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", ctx.errorMsg); - } }, dependencies: [_angular_forms__WEBPACK_IMPORTED_MODULE_4__["ɵNgNoValidate"], _angular_forms__WEBPACK_IMPORTED_MODULE_4__.DefaultValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.NgControlStatus, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.NgControlStatusGroup, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.RequiredValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.MinLengthValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.EmailValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.NgModel, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.NgForm, _angular_common__WEBPACK_IMPORTED_MODULE_5__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_5__.NgStyle, _angular_router__WEBPACK_IMPORTED_MODULE_3__.RouterLinkWithHref, _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_6__.NgbTooltip], styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhdXRoLXNpZ25pbi5jb21wb25lbnQuc2NzcyJ9 */"] }); + } }, dependencies: [_angular_forms__WEBPACK_IMPORTED_MODULE_4__["ɵNgNoValidate"], _angular_forms__WEBPACK_IMPORTED_MODULE_4__.DefaultValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.NgControlStatus, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.NgControlStatusGroup, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.RequiredValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.MinLengthValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.EmailValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.NgModel, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.NgForm, _angular_common__WEBPACK_IMPORTED_MODULE_5__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_5__.NgStyle, _angular_router__WEBPACK_IMPORTED_MODULE_3__.RouterLinkWithHref], styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhdXRoLXNpZ25pbi5jb21wb25lbnQuc2NzcyJ9 */"] }); /***/ }), @@ -4097,10 +4409,40 @@ class AuthService { // await this.Close() })(); } - GetJWTPayload() { + // User has requested a password reset. This is the first step in the process. + UserResetRequest(userEmail) { var _this5 = this; return (0,_home_runner_work_fasten_connect_portal_fasten_connect_portal_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { - let authToken = _this5.getCookie(FASTEN_AUTH_COOKIE_NAME); + let payload = { + "email": userEmail + }; + let resp = yield _this5._httpClient.post(`${_environments_environment__WEBPACK_IMPORTED_MODULE_2__.environment.connect_api_endpoint_base}/auth/reset/request`, payload, {}).toPromise(); + console.log(resp); + return resp; + })(); + } + // Complete the password reset process. This is the second step in the process. + UserReset(newPassword, inviteToken) { + var _this6 = this; + return (0,_home_runner_work_fasten_connect_portal_fasten_connect_portal_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + let queryParams = { + "token": inviteToken + }; + let payload = { + "password": newPassword + }; + let resp = yield _this6._httpClient.post(`${_environments_environment__WEBPACK_IMPORTED_MODULE_2__.environment.connect_api_endpoint_base}/auth/reset`, payload, { + withCredentials: true, + params: queryParams + }).toPromise(); + console.log(resp); + return resp; + })(); + } + GetJWTPayload() { + var _this7 = this; + return (0,_home_runner_work_fasten_connect_portal_fasten_connect_portal_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + let authToken = _this7.getCookie(FASTEN_AUTH_COOKIE_NAME); if (!authToken) { return null; } @@ -4116,7 +4458,7 @@ class AuthService { audience: issuerHost }); // @ts-ignore - _this5.portalConfigService.config = { + _this7.portalConfigService.config = { user: payload }; return payload; @@ -4127,11 +4469,11 @@ class AuthService { })(); } IsAuthenticated() { - var _this6 = this; + var _this8 = this; return (0,_home_runner_work_fasten_connect_portal_fasten_connect_portal_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { - let payload = yield _this6.GetJWTPayload(); + let payload = yield _this8.GetJWTPayload(); let isAuthenticated = payload != null; - _this6.publishAuthenticationState(isAuthenticated); + _this8.publishAuthenticationState(isAuthenticated); return isAuthenticated; })(); } diff --git a/main.js.map b/main.js.map index b3f8e6a..b4d2d55 100644 --- a/main.js.map +++ b/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","mappings":"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MAAM;;;;;;;;;;;;;;;;ACPb,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,aAAa;IAEnB,oIAAoI;IACpI,4BAA4B,EAAE,qCAAqC;IAEnE,oHAAoH;IACpH,4EAA4E;IAC5E,iCAAiC;IACjC,yBAAyB,EAAE,6CAA6C;IACxE,2BAA2B,EAAE,6CAA6C;IAE1E,QAAQ,EAAE,2DAA2D;IAErE,yCAAyC;IACzC,sBAAsB,EAAE,4DAA4D;IACpF,kFAAkF;CACnF,CAAC;;;;;;;;;;;;;;;;ACjBF,gEAAgE;AACzD,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,KAAK;CACf,CAAC;;;;;;;;;;;;;;;;;;ACH6C;AAGF;AACY;AAEzD,IAAI,uEAAgB,IAAI,OAAO,EAAE;IAC/B,6DAAc,EAAE,CAAC;CAClB;AAED,wEAAwB,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.constants.ts","./src/app/app.module.ts","./src/app/auth-guards/is-authenticated-auth-guard.ts","./src/app/components/footer/footer.component.ts","./src/app/components/footer/footer.component.html","./src/app/components/header/header.component.ts","./src/app/components/header/header.component.html","./src/app/components/logo-cropper/logo-cropper.component.ts","./src/app/components/logo-cropper/logo-cropper.component.html","./src/app/components/org-credentials-editor/org-credentials-editor.component.ts","./src/app/components/org-credentials-editor/org-credentials-editor.component.html","./src/app/components/org-team-invite/org-team-invite.component.ts","./src/app/components/org-team-invite/org-team-invite.component.html","./src/app/components/org-webhooks-editor/org-webhooks-editor.component.ts","./src/app/components/org-webhooks-editor/org-webhooks-editor.component.html","./src/app/directives/password-confirm-validator.directive.ts","./src/app/models/fasten/organization.ts","./src/app/models/fasten/user.ts","./src/app/models/portal-config.ts","./src/app/pages/account-settings/account-settings.component.ts","./src/app/pages/account-settings/account-settings.component.html","./src/app/pages/auth-signin/auth-signin.component.ts","./src/app/pages/auth-signin/auth-signin.component.html","./src/app/pages/auth-signup-organization/auth-signup-organization.component.ts","./src/app/pages/auth-signup-organization/auth-signup-organization.component.html","./src/app/pages/auth-signup/auth-signup.component.ts","./src/app/pages/auth-signup/auth-signup.component.html","./src/app/pages/dashboard/dashboard.component.ts","./src/app/pages/dashboard/dashboard.component.html","./src/app/pages/developers/developers.component.ts","./src/app/pages/developers/developers.component.html","./src/app/pages/org-billing/org-billing.component.ts","./src/app/pages/org-billing/org-billing.component.html","./src/app/pages/org-settings/org-settings.component.ts","./src/app/pages/org-settings/org-settings.component.html","./src/app/pages/org-team/org-team.component.ts","./src/app/pages/org-team/org-team.component.html","./src/app/pages/webhook-logs/webhook-logs.component.ts","./src/app/pages/webhook-logs/webhook-logs.component.html","./src/app/services/auth-interceptor.service.ts","./src/app/services/auth.service.ts","./src/app/services/connect.service.ts","./src/app/services/portal-config.service.ts","./src/environments/environment.dev.ts","./src/environments/versions.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport {DevelopersComponent} from './pages/developers/developers.component';\nimport {DashboardComponent} from './pages/dashboard/dashboard.component';\nimport {AuthSigninComponent} from './pages/auth-signin/auth-signin.component';\nimport {AuthSignupComponent} from './pages/auth-signup/auth-signup.component';\nimport {AuthSignupOrganizationComponent} from './pages/auth-signup-organization/auth-signup-organization.component';\nimport {IsAuthenticatedAuthGuard} from './auth-guards/is-authenticated-auth-guard';\nimport {OrgSettingsComponent} from './pages/org-settings/org-settings.component';\nimport {AccountSettingsComponent} from './pages/account-settings/account-settings.component';\nimport {WebhookLogsComponent} from './pages/webhook-logs/webhook-logs.component';\nimport {OrgBillingComponent} from './pages/org-billing/org-billing.component';\nimport {OrgTeamComponent} from './pages/org-team/org-team.component';\n\nconst routes: Routes = [\n\n { path: 'auth/signin', component: AuthSigninComponent },\n { path: 'auth/signup', component: AuthSignupComponent },\n { path: 'auth/invite', component: AuthSignupComponent },\n { path: 'auth/signup/org', component: AuthSignupOrganizationComponent },\n\n { path: '', redirectTo: '/developers', pathMatch: 'full' },\n { path: 'dashboard', component: DashboardComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n { path: 'developers', component: DevelopersComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n { path: 'developers/webhooks/:webhookId/logs', component: WebhookLogsComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n { path: 'org/settings', component: OrgSettingsComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n { path: 'org/billing', component: OrgBillingComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n { path: 'org/team', component: OrgTeamComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n { path: 'account/settings', component: AccountSettingsComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n\n //must be at bottom of list\n { path: '**', redirectTo: 'developers' },\n\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component } from '@angular/core';\nimport {NavigationEnd, Router, RouterEvent} from '@angular/router';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n title = 'fastenhealth';\n\n showHeader:boolean = false;\n showFooter:boolean = true;\n\n constructor(\n private router: Router,\n // private toastService: ToastService,\n private modalService: NgbModal\n ) {}\n\n ngOnInit() {\n\n // navbar backdrop for mobile only\n const navbarBackdrop = document.createElement('div');\n navbarBackdrop.classList.add('az-navbar-backdrop');\n document.querySelector('body')?.appendChild(navbarBackdrop);\n\n //determine if we should show the header\n this.router.events.subscribe(event => this.routerEvent(event));\n }\n\n routerEvent(event: any) {\n if (event instanceof NavigationEnd) {\n //modify header\n if (event.url?.startsWith('/auth') || event.url?.startsWith('/desktop')) {\n this.showHeader = false;\n } else {\n // console.log(\"NU\")\n this.showHeader = true;\n }\n\n // close all open modals when route change\n this.modalService.dismissAll();\n }\n }\n}\n","
\n \n
\n \n
\n \n
\n","export const URL_PATTERN = /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$/;\n\n// https://medium.com/@ojiofor/angular-reactive-forms-strong-password-validation-8dbcce92eb6c\n// Minimum Length: A strong password should have a minimum length, typically at least 8 characters.\n// Uppercase Letters: It should contain at least one uppercase letter.\n// Lowercase Letters: It should contain at least one lowercase letter.\n// Numbers: It should contain at least one number.\n// Special Characters: It should contain at least one special character (e.g., !, @, #, $).\nexport const STRONG_PASSWORD_PATTERN = /^(?=[^A-Z]*[A-Z])(?=[^a-z]*[a-z])(?=\\D*\\d).{8,}$/;\n\nexport enum ApiMode {\n Live = 'live',\n Test = 'test',\n}\n\nexport enum CredentialStatus {\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport enum WebhookStatus {\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport enum WebhookDeliveryStatus {\n Success = 'success',\n Failure = 'failure',\n}\n\nexport enum CRUDMode {\n Create = 'create',\n Update = 'update',\n Delete = 'delete',\n}\n\nexport enum EventTypes{\n EventTypesPatientEHIExportFailed = \"patient.ehi_export_failed\",\n EventTypesPatientEHIExportSuccess = \"patient.ehi_export_success\",\n EventTypesPatientAuthorizationRevoked = \"patient.authorization_revoked\",\n EventTypesWebhookTest = \"webhook.test\",\n}\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\n\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\nimport { HighlightModule, HIGHLIGHT_OPTIONS } from 'ngx-highlightjs';\n\nimport {NgbModule} from '@ng-bootstrap/ng-bootstrap';\nimport {InfiniteScrollModule} from 'ngx-infinite-scroll';\nimport {FontAwesomeModule, FaIconLibrary} from '@fortawesome/angular-fontawesome';\nimport {HeaderComponent} from './components/header/header.component';\nimport {FooterComponent} from './components/footer/footer.component';\nimport { DevelopersComponent } from './pages/developers/developers.component';\nimport { DashboardComponent } from './pages/dashboard/dashboard.component';\nimport { AuthSigninComponent } from './pages/auth-signin/auth-signin.component';\nimport { AuthSignupComponent } from './pages/auth-signup/auth-signup.component';\nimport { AuthSignupOrganizationComponent } from './pages/auth-signup-organization/auth-signup-organization.component';\nimport { PasswordConfirmValidatorDirective } from './directives/password-confirm-validator.directive';\nimport {IsAuthenticatedAuthGuard} from './auth-guards/is-authenticated-auth-guard';\nimport {Router} from '@angular/router';\nimport {AuthService} from './services/auth.service';\nimport {AuthInterceptorService} from './services/auth-interceptor.service';\nimport { ImageCropperModule } from 'ngx-image-cropper';\nimport { LogoCropperComponent } from './components/logo-cropper/logo-cropper.component';\nimport { NgChartsModule } from 'ng2-charts';\nimport {MomentModule} from 'ngx-moment';\nimport { OrgSettingsComponent } from './pages/org-settings/org-settings.component';\nimport { AccountSettingsComponent } from './pages/account-settings/account-settings.component';\nimport { OrgCredentialsEditorComponent } from './components/org-credentials-editor/org-credentials-editor.component';\nimport { OrgWebhooksEditorComponent } from './components/org-webhooks-editor/org-webhooks-editor.component';\nimport { WebhookLogsComponent } from './pages/webhook-logs/webhook-logs.component';\nimport { OrgBillingComponent } from './pages/org-billing/org-billing.component';\nimport { OrgTeamComponent } from './pages/org-team/org-team.component';\nimport { OrgTeamInviteComponent } from './components/org-team-invite/org-team-invite.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n HeaderComponent,\n FooterComponent,\n DevelopersComponent,\n DashboardComponent,\n AuthSigninComponent,\n AuthSignupComponent,\n AuthSignupOrganizationComponent,\n LogoCropperComponent,\n OrgSettingsComponent,\n AccountSettingsComponent,\n OrgCredentialsEditorComponent,\n OrgWebhooksEditorComponent,\n WebhookLogsComponent,\n OrgBillingComponent,\n OrgTeamComponent,\n OrgTeamInviteComponent,\n ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n BrowserModule,\n HttpClientModule,\n AppRoutingModule,\n PasswordConfirmValidatorDirective,\n\n NgbModule,\n NgChartsModule,\n InfiniteScrollModule,\n FontAwesomeModule,\n ImageCropperModule,\n MomentModule,\n HighlightModule\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptorService,\n multi: true,\n deps: [AuthService, Router]\n },\n IsAuthenticatedAuthGuard,\n {\n provide: HIGHLIGHT_OPTIONS,\n useValue: {\n fullLibraryLoader: () => import('highlight.js'),\n }\n }\n ],\n bootstrap: [AppComponent],\n schemas: [ CUSTOM_ELEMENTS_SCHEMA ]\n})\nexport class AppModule {\n constructor(library: FaIconLibrary) {\n library.addIconPacks(fas, far);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router} from '@angular/router';\nimport {AuthService} from '../services/auth.service';\n\n@Injectable()\nexport class IsAuthenticatedAuthGuard implements CanActivate {\n constructor(private authService: AuthService, private router: Router) {\n\n }\n\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\n let jwtPayload = await this.authService.GetJWTPayload()\n\n //check if the user is authenticated, if not, redirect to login\n if (!jwtPayload) {\n return await this.router.navigate(['/auth/signin']);\n } else if(jwtPayload.org_id == '' || jwtPayload.org_id == null){\n console.log(\"User is not associated with an organization, redirecting to org signup\", jwtPayload)\n return await this.router.navigate(['/auth/signup/org']);\n }\n\n\n // continue as normal\n return true\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport {versionInfo} from '../../../environments/versions';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent implements OnInit {\n appVersion: string;\n\n constructor() {\n this.appVersion = versionInfo.version\n }\n\n ngOnInit() {\n }\n\n}\n","\n","import {Component, OnDestroy, OnInit} from '@angular/core';\nimport {AuthService} from '../../services/auth.service';\nimport {Router} from '@angular/router';\nimport {ConnectService} from '../../services/connect.service';\nimport {PortalConfig} from '../../models/portal-config';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {Organization} from '../../models/fasten/organization';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n\n constructor(\n private authService: AuthService,\n private connectService: ConnectService,\n public portalConfigService: PortalConfigService,\n private router: Router,\n ) { }\n\n ngOnInit() {\n\n this.portalConfigService.ConfigSubject.subscribe((config: PortalConfig) => {\n console.log(\"Configuration changed:\", config)\n if(config.user && config.user.org_id && !config.org){\n console.log(\"attempt to download org information, and store in config\")\n this.connectService.getOrg(config.user.org_id).subscribe((org: Organization )=>{\n console.log(\"org:\", org)\n this.portalConfigService.config = {org: org}\n })\n }\n });\n\n }\n\n toggleHeaderMenu(event: Event) {\n event.preventDefault();\n document.querySelector('body')?.classList.toggle('az-header-menu-show');\n }\n closeMenu(e: Event) {\n (e.target as HTMLElement).closest('.dropdown')?.classList.remove('show');\n (e.target as HTMLElement).closest('.dropdown .dropdown-menu')?.classList.remove('show');\n }\n\n signOut(event: Event) {\n this.authService.Signout().then(r => {\n return this.router.navigate(['/auth/signin'])\n })\n }\n}\n","
\n Test Mode Enabled\n You're using test data. You will only be able to access sandbox accounts.\n
\n\n
\n
\n
\n \n \n \n \n
\n
\n
\n \n \"fasten\"\n \n ×\n
\n \n
\n
\n\n
\n \n
\n
\n \n
\n
Notifications
\n

Background Jobs & Updates

\n \n
\n
\n
\n \n \"\"\n \n
\n
\n \n
\n
\n
\n \"\"\n
\n
{{portalConfigService.config$.user?.name}}
\n
\n\n Profile Settings\n Org Settings\n Get Support\n Sign Out\n
\n
\n
\n
\n
\n\n","import { Component, OnInit } from '@angular/core';\nimport {ImageCroppedEvent, LoadedImage} from 'ngx-image-cropper';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {NgbActiveModal, NgbModal} from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-logo-cropper',\n templateUrl: './logo-cropper.component.html',\n styleUrls: ['./logo-cropper.component.scss']\n})\nexport class LogoCropperComponent implements OnInit {\n\n //image cropper\n imageChangedEvent: any = '';\n croppedImage: any = '';\n croppedImageEvent: ImageCroppedEvent | null = null;\n submitLogoLoading = false;\n\n constructor(\n public activeModal: NgbActiveModal,\n private modalService: NgbModal,\n private sanitizer: DomSanitizer\n ) { }\n\n ngOnInit(): void {\n }\n\n fileChangeEvent(event: any): void {\n this.imageChangedEvent = event;\n }\n imageCropped(event: ImageCroppedEvent) {\n this.croppedImage = this.sanitizer.bypassSecurityTrustUrl(event.objectUrl!);\n // event.blob can be used to upload the cropped image\n this.croppedImageEvent = event;\n }\n imageLoaded(image: LoadedImage) {\n // show cropper\n }\n cropperReady() {\n // cropper ready\n }\n loadImageFailed() {\n // show message\n }\n\n onSubmit() {\n console.log(this.croppedImage)\n this.activeModal.close(this.croppedImageEvent)\n }\n}\n","
\n

Organization Logo

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

Fasten Connect requires a logo for display when connecting providers

\n \n\n \n\n
\n
\n
\n\n
\n \n \n
\n","import {Component, Input, OnInit} from '@angular/core';\nimport {ApiMode, URL_PATTERN} from '../../app.constants';\nimport {OrganizationCredential} from '../../models/fasten/organization-credential';\nimport {ConnectService} from '../../services/connect.service';\nimport {Organization} from '../../models/fasten/organization';\nimport {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-org-credentials-editor',\n templateUrl: './org-credentials-editor.component.html',\n styleUrls: ['./org-credentials-editor.component.scss']\n})\nexport class OrgCredentialsEditorComponent implements OnInit {\n urlPattern = URL_PATTERN\n\n @Input() editorMode: 'create' | 'edit' = 'create'\n @Input() org: Organization | null = null\n @Input() apiMode: ApiMode = ApiMode.Test\n @Input() orgCredential: OrganizationCredential | null = null //only set when editing\n\n submitOrgCredentialLoading: boolean = false\n deleteOrgCredentialLoading: boolean = false\n redirectUri: string = \"\"\n submitOrgCredentialError: string = ''\n\n\n constructor(\n private connectService: ConnectService,\n public activeModal: NgbActiveModal\n ) { }\n\n ngOnInit(): void {\n if (this.editorMode === 'edit' && this.orgCredential) {\n this.redirectUri = this.orgCredential.redirect_uri\n }\n }\n\n public deleteOrgCredential() {\n if (confirm(\"Are you sure you'd like to delete these API Credentials?\") == true) {\n this.deleteOrgCredentialLoading = true\n\n if(!this.orgCredential?.id){\n this.deleteOrgCredentialLoading = false\n this.submitOrgCredentialError = \"Unknown Organization Credential ID\"\n return\n }\n\n this.connectService.deleteOrgCredential(this.org!.id, this.orgCredential.id).subscribe((result) => {\n console.log(\"Deleted Org Credential\", result)\n this.deleteOrgCredentialLoading = false\n this.activeModal.close(result)\n }, (error: any) => {\n console.log(\"Error Updating Org Credential\", error)\n this.deleteOrgCredentialLoading = false\n this.submitOrgCredentialError = JSON.stringify(error)\n\n },\n () => {\n console.log(\"Completed Deleting Org Credential\")\n this.deleteOrgCredentialLoading = false\n })\n\n }\n }\n\n public updateOrgCredential() {\n this.submitOrgCredentialLoading = true\n this.submitOrgCredentialError = ''\n\n if(!this.orgCredential?.id){\n this.submitOrgCredentialLoading = false\n this.submitOrgCredentialError = \"Unknown Organization Credential ID\"\n return\n }\n if(this.redirectUri == this.orgCredential.redirect_uri){\n this.submitOrgCredentialLoading = false\n this.submitOrgCredentialError = \"Redirect URI has not changed\"\n }\n\n this.connectService.updateOrgCredential(this.org!.id, this.orgCredential.id, this.redirectUri).subscribe((result) => {\n console.log(\"Updated Org Credential\", result)\n this.submitOrgCredentialLoading = false\n this.activeModal.close(result)\n }, (error: any) => {\n console.log(\"Error Updating Org Credential\", error)\n this.submitOrgCredentialLoading = false\n this.submitOrgCredentialError = JSON.stringify(error)\n\n },\n () => {\n console.log(\"Completed Updating Org Credential\")\n this.submitOrgCredentialLoading = false\n })\n }\n\n public createOrgCredential() {\n this.submitOrgCredentialLoading = true\n this.submitOrgCredentialError = ''\n\n if(!this.org?.id){\n this.submitOrgCredentialLoading = false\n this.submitOrgCredentialError = \"Unknown Organization ID\"\n return\n }\n\n\n this.connectService.createOrgCredentials(this.org.id, this.apiMode, this.redirectUri).subscribe((result) => {\n console.log(\"Added Org Credential\", result)\n this.submitOrgCredentialLoading = false\n this.activeModal.close(result)\n }, (error: any) => {\n console.log(\"Error Adding Org Credential\", error)\n this.submitOrgCredentialLoading = false\n this.submitOrgCredentialError = JSON.stringify(error)\n\n },\n () => {\n console.log(\"Completed Adding Org Credential\")\n this.submitOrgCredentialLoading = false\n })\n }\n\n}\n","
\n

{{editorMode == 'create' ? 'Create' : 'Update' }} Credential

\n \n
\n
\n

\n API Credentials are used by your application to access the Fasten Connect API\n

\n\n
\n
\n \n
\n \n
\n
\n\n
\n\n
\n Redirect Url is required.\n
\n
\n Redirect Url must be a valid url starting with https://\n
\n
\n\n
\n {{submitOrgCredentialError}}\n
\n\n
\n
\n
\n
\n \n \n\n \n \n\n \n \n \n
\n
\n","import {Component, Input, OnInit} from '@angular/core';\nimport {Organization} from '../../models/fasten/organization';\nimport {ConnectService} from '../../services/connect.service';\nimport {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';\nimport {PortalConfigService} from '../../services/portal-config.service';\n\n@Component({\n selector: 'app-org-team-invite',\n templateUrl: './org-team-invite.component.html',\n styleUrls: ['./org-team-invite.component.scss']\n})\nexport class OrgTeamInviteComponent implements OnInit {\n @Input() org: Organization | null = null\n\n teamMemberEmail: string = ''\n\n submitOrgInviteLoading: boolean = false\n submitOrgInviteError: string = ''\n\n constructor(\n public portalConfig: PortalConfigService,\n private connectService: ConnectService,\n public activeModal: NgbActiveModal\n ) { }\n\n ngOnInit(): void {\n }\n\n public sendOrgTeamInvite() {\n this.submitOrgInviteLoading = true\n this.submitOrgInviteError = ''\n\n if(!this.portalConfig.config$.org?.id){\n this.submitOrgInviteLoading = false\n this.submitOrgInviteError = \"Unknown Organization ID\"\n return\n }\n\n\n this.connectService.sendOrgInvite(this.portalConfig.config$.org?.id, this.teamMemberEmail).subscribe((result) => {\n this.submitOrgInviteLoading = false\n this.activeModal.close(true)\n }, (error: any) => {\n console.log(\"Error Adding Org Webhook\", error)\n this.submitOrgInviteLoading = false\n this.submitOrgInviteError = JSON.stringify(error)\n\n })\n }\n}\n","
\n

Invite Team Member

\n \n
\n
\n\n
\n Warning Fasten Health high discourages email address from free domains such as Gmail due to access to sensitive information.\n
\n\n
\n
\n \n
\n \n
\n
\n\n
\n\n
\n Email Address is required\n
\n
\n\n
\n {{submitOrgInviteError}}\n
\n\n
\n
\n
\n
\n \n
\n
\n","import {Component, Input, OnInit} from '@angular/core';\nimport {ApiMode, URL_PATTERN} from '../../app.constants';\nimport {Organization} from '../../models/fasten/organization';\nimport {OrganizationCredential} from '../../models/fasten/organization-credential';\nimport {OrganizationWebhook} from '../../models/fasten/organization-webhook';\nimport {ConnectService} from '../../services/connect.service';\nimport {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-org-webhooks-editor',\n templateUrl: './org-webhooks-editor.component.html',\n styleUrls: ['./org-webhooks-editor.component.scss']\n})\nexport class OrgWebhooksEditorComponent implements OnInit {\n urlPattern = URL_PATTERN\n\n @Input() editorMode: 'create' | 'edit' = 'create'\n @Input() org: Organization | null = null\n @Input() apiMode: ApiMode = ApiMode.Test\n @Input() orgWebhook: OrganizationWebhook | null = null //only set when editing\n\n submitOrgWebhookLoading: boolean = false\n deleteOrgWebhookLoading: boolean = false\n endpointUri: string = \"\"\n submitOrgWebhookError: string = ''\n\n constructor(\n private connectService: ConnectService,\n public activeModal: NgbActiveModal\n ) { }\n\n ngOnInit(): void {\n if (this.editorMode === 'edit' && this.orgWebhook) {\n this.endpointUri = this.orgWebhook.endpoint_uri\n }\n }\n\n public deleteOrgWebhook() {\n if (confirm(\"Are you sure you'd like to delete this Webhook?\") == true) {\n this.deleteOrgWebhookLoading = true\n\n if(!this.orgWebhook?.id){\n this.deleteOrgWebhookLoading = false\n this.submitOrgWebhookError = \"Unknown Organization Webhook ID\"\n return\n }\n\n this.connectService.deleteOrgWebhook(this.org!.id, this.orgWebhook.id).subscribe((result) => {\n console.log(\"Deleted Org Webhook\", result)\n this.deleteOrgWebhookLoading = false\n this.activeModal.close(result)\n }, (error: any) => {\n console.log(\"Error Updating Org Webhook\", error)\n this.deleteOrgWebhookLoading = false\n this.submitOrgWebhookError = JSON.stringify(error)\n\n },\n () => {\n console.log(\"Completed Deleting Org Webhook\")\n this.deleteOrgWebhookLoading = false\n })\n\n }\n }\n\n public updateOrgWebhook() {\n this.submitOrgWebhookLoading = true\n this.submitOrgWebhookError = ''\n\n if(!this.orgWebhook?.id){\n this.submitOrgWebhookLoading = false\n this.submitOrgWebhookError = \"Unknown Organization Webhook ID\"\n return\n }\n if(this.endpointUri == this.orgWebhook.endpoint_uri){\n this.submitOrgWebhookLoading = false\n this.submitOrgWebhookError = \"Endpoint URI has not changed\"\n }\n\n this.connectService.updateOrgWebhook(this.org!.id, this.orgWebhook.id, this.endpointUri).subscribe((result) => {\n console.log(\"Updated Org Webhook\", result)\n this.submitOrgWebhookLoading = false\n this.activeModal.close(result)\n }, (error: any) => {\n console.log(\"Error Updating Org Webhook\", error)\n this.submitOrgWebhookLoading = false\n this.submitOrgWebhookError = JSON.stringify(error)\n\n },\n () => {\n console.log(\"Completed Updating Org Webhook\")\n this.submitOrgWebhookLoading = false\n })\n }\n\n public createOrgWebhook() {\n this.submitOrgWebhookLoading = true\n this.submitOrgWebhookError = ''\n\n if(!this.org?.id){\n this.submitOrgWebhookLoading = false\n this.submitOrgWebhookError = \"Unknown Organization ID\"\n return\n }\n\n\n this.connectService.createOrgWebhooks(this.org.id, this.apiMode!, this.endpointUri).subscribe((result) => {\n this.submitOrgWebhookLoading = false\n this.activeModal.close(result)\n }, (error: any) => {\n console.log(\"Error Adding Org Webhook\", error)\n this.submitOrgWebhookLoading = false\n this.submitOrgWebhookError = JSON.stringify(error)\n\n },\n () => {\n console.log(\"Completed Adding Org Webhook\")\n this.submitOrgWebhookLoading = false\n })\n }\n\n}\n","
\n

{{editorMode == 'create' ? 'Create' : 'Update' }} Webhook

\n \n
\n
\n

\n Webhooks allow Fasten Connect to notify you once patient medical records have been retrieved and are ready for download.\n

\n

\n\n

\n\n
\n Testing If you don't have an environment to receive webhooks, you can use requestbin.com to test.\n
\n\n
\n
\n \n
\n \n
\n
\n\n
\n\n
\n Endpoint Url is required\n
\n
\n Endpoint Url must be a valid url starting with https://\n
\n
\n\n
\n {{submitOrgWebhookError}}\n
\n\n
\n
\n
\n
\n \n \n\n \n \n\n \n \n \n
\n
\n","import { Directive } from '@angular/core';\nimport {AbstractControl, NG_VALIDATORS, ValidationErrors, Validator} from '@angular/forms';\n\n@Directive({\n selector: '[passwordConfirmValidator]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: PasswordConfirmValidatorDirective,\n multi: true,\n },\n ],\n standalone: true,\n})\nexport class PasswordConfirmValidatorDirective implements Validator {\n\n validate(control: AbstractControl): ValidationErrors | null {\n const password = control.get('password');\n const passwordConfirm = control.get('password_confirm');\n\n return password && passwordConfirm && password.value !== passwordConfirm.value\n ? { password_confirm: true }\n : null;\n }\n}\n","\nexport class Organization {\n id: string = \"\"\n name: string = \"\"\n logo_uri: string = \"\"\n privacy_policy_uri: string = \"\"\n website_uri: string = \"\"\n terms_and_conditions_uri?: string = \"\"\n company_size?: string = \"\"\n plan?: string = \"\"\n}\n","export class User {\n id?: string\n name?: string\n email?: string\n password?: string\n org_id?: string\n\n //not sent to the server\n password_confirm?: string = \"\"\n agree_terms?: boolean = false\n}\n","/**\n * AppConfig interface. Update this interface to strictly type your config\n * object.\n */\nimport {ApiMode} from '../app.constants';\nimport {Organization} from './fasten/organization';\nimport {User} from './fasten/user';\n\nexport interface PortalConfig {\n apiMode?: ApiMode;\n org?: Organization;\n user?: User\n}\n\n/**\n * Default configuration for the entire application. This object is used by\n * \"PortalConfigService\" to set the default configuration.\n */\nexport const portalConfigDefaults: PortalConfig = {\n apiMode: ApiMode.Test\n};\n","import { Component, OnInit } from '@angular/core';\nimport {PortalConfigService} from '../../services/portal-config.service';\n\n@Component({\n selector: 'app-account-settings',\n templateUrl: './account-settings.component.html',\n styleUrls: ['./account-settings.component.scss']\n})\nexport class AccountSettingsComponent implements OnInit {\n\n constructor(\n public portalConfig: PortalConfigService,\n ) { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n\n\n
\n
\n

{{portalConfig.config$?.user?.name}}

\n

{{portalConfig.config$?.user?.email}}

\n
\n
\n\n\n
\n
\n
\n
\n Update Password\n
\n\n
\n

Use this form to change the password you use to login to your account

\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n \n\n
\n\n
\n
\n\n\n
\n\n
\n
\n Update Email Address\n
\n\n
\n

Use this form to change the email address associated with your account.

\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n \n
\n
\n
\n
\n\n
\n","import {Component, OnInit} from '@angular/core';\nimport {User} from '../../models/fasten/user';\nimport {Router} from '@angular/router';\nimport {AuthService} from '../../services/auth.service';\n\n@Component({\n selector: 'app-auth-signin',\n templateUrl: './auth-signin.component.html',\n styleUrls: ['./auth-signin.component.scss']\n})\nexport class AuthSigninComponent implements OnInit {\n loading: boolean = false\n\n submitted: boolean = false\n existingUser: User = new User()\n errorMsg: string = \"\"\n\n constructor(\n private authService: AuthService,\n private router: Router,\n ) { }\n\n ngOnInit(): void {}\n\n signinSubmit(){\n this.submitted = true;\n this.loading = true\n\n this.authService.Signin(this.existingUser.email!, this.existingUser.password!)\n .then(() => {\n this.loading = false\n this.router.navigateByUrl('/dashboard')\n })\n .catch((err)=>{\n this.loading = false\n if(err?.name){\n this.errorMsg = \"email or password is incorrect\"\n } else{\n this.errorMsg = \"an unknown error occurred during sign-in\"\n }\n // const toastNotification = new ToastNotification()\n // toastNotification.type = ToastType.Error\n // toastNotification.message = this.errorMsg\n // this.toastService.show(toastNotification)\n })\n }\n}\n","
\n
\n \"fasten\"\n\n \n \n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport {AuthService} from '../../services/auth.service';\nimport {Router} from '@angular/router';\nimport {Organization} from '../../models/fasten/organization';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {ImageCroppedEvent, LoadedImage} from 'ngx-image-cropper';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {LogoCropperComponent} from '../../components/logo-cropper/logo-cropper.component';\nimport {ConnectService} from '../../services/connect.service';\nimport {URL_PATTERN} from '../../app.constants';\n\n@Component({\n selector: 'app-auth-signup-organization',\n templateUrl: './auth-signup-organization.component.html',\n styleUrls: ['./auth-signup-organization.component.scss']\n})\nexport class AuthSignupOrganizationComponent implements OnInit {\n\n gridImages: string[] = [\n \"f8f9ce28-d79b-4b54-9f7d-3f0aaba88c2c.png\",\n \"89bb6993-b806-49a2-84e2-6e70705c504a.png\",\n \"9fcc4529-7dc9-4c66-9198-574f978c8bb7.png\",\n \"68952002-f17e-4086-aae5-841241b194dd.png\",\n \"767b97b9-4538-433f-ab7a-14ccb0053323.png\",\n \"74078880-4084-430e-bc6c-223e5990cef8.png\",\n \"10668246-1077-4c1d-a6ce-0557c9476e77.png\",\n \"f7e4fc08-c6f6-426b-be98-d60aa36d3b8b.png\",\n \"65308856-beaa-46a0-9775-20c6c9322add.png\",\n \"6e901e85-8f45-4c60-8d1f-12621aad07f1.png\",\n \"e675376d-03de-4e66-8196-eaccda536ad5.png\",\n \"a36fd256-2751-464f-b6d7-418279595b1e.png\",\n \"c623f37e-6399-4a13-909f-3d9886130673.png\",\n \"467592a3-7f5f-4258-909e-a99ca971ce15.png\",\n \"5ad8a5ab-6570-4f1e-8002-30a051ec52c2.png\",\n \"ddbef50d-3940-4411-9dea-6bf759704c6e.png\",\n \"fc2dcde0-0848-4b09-aeaf-bfef58120de9.png\",\n \"347c0df7-5817-470e-8b28-2802f90461f6.png\",\n \"ec5bc181-5466-4ebd-9e42-471593b8d104.png\",\n \"d3b1eba5-ec53-4e6d-9600-9510afbc4dda.png\",\n \"16483fad-5c24-4766-ad53-bd78551f0768.png\",\n \"ae8026ed-e74b-4bf3-9f53-458c250420ba.png\",\n \"907d39f4-6b30-46cd-b0c8-f525c636c933.png\",\n \"6b076b97-18f7-452d-9f09-20dffb01729f.png\",\n \"c7feccc5-ad10-4aeb-91b0-12b6b93feeba.png\",\n \"c66a7c1e-21f2-44aa-9486-cdfb5ad699ba.png\",\n \"82af2366-1d27-4665-ba99-e5a60a75205a.png\",\n \"2289e832-64da-47d9-82ef-1f4e15ccf627.png\",\n \"26768525-2b04-4715-9159-3679598289a3.png\",\n \"80af4067-77e9-4c13-b617-4f370dc14d3f.png\",\n \"ec6c5f06-d7f8-4eac-8e2f-6cda4536d8ab.png\",\n \"93ee1d70-6eaa-487b-84d1-cc18bcda253f.png\",\n \"6d5ba4db-4b63-4277-bb80-dc278dbe28bd.png\",\n \"b22e4e71-1121-4fca-b158-efbb906918e9.png\",\n \"49fd46d0-05ce-4c7d-923c-3891935f6947.png\",\n \"19652f82-98b9-44e6-9964-e426192a723d.png\",\n \"314a06fc-4efc-4e34-8048-565455e4f3e1.png\",\n \"8123cfc7-53b6-45d6-ace3-b64d4bd3234b.png\",\n \"35159b16-a1b5-45ba-9d4f-83f471d5f44b.png\",\n \"d6c0016f-aaec-4764-ac28-7a6eda64b693.png\",\n \"d09c7811-213b-4c19-9154-48e57174f239.png\",\n \"2bcdcc4c-0f13-4edb-85f4-2c9f4f948df0.png\",\n \"4a4720a0-0efc-4b63-a83d-a8cc5b1c15ad.png\",\n \"98f680b2-15c4-4854-902b-ed6b69425164.png\",\n \"32283b0a-3c36-4f92-b9c2-dd2edf3a3db1.png\",\n \"d56e9e82-3f62-4ce8-8a55-27da90fbe183.png\",\n \"4fc37973-195c-4e25-8751-331a3b88e685.png\",\n \"fb0bb8fa-8336-4b26-bdc5-7f8a432c1d94.png\",\n \"7ca2d9d1-d300-479d-ab85-f956b6ef60de.png\",\n \"4fd8bb55-bb2d-4748-a134-bbab7a22e4db.png\",\n \"63cde119-f9d8-468d-900a-1976211739f8.png\",\n \"e8290a84-88a1-4eac-a5b4-b2c63146b2c9.png\",\n \"13b592f9-5c8b-4f90-aa54-5ab57a29ea89.png\",\n \"0398ce8e-9200-430c-a654-f2057bc9a2d4.png\",\n \"92b1d310-99a1-4de2-99b6-975eaf5a3744.png\",\n \"418d563f-bd82-473f-a738-cd9775db4e56.png\",\n \"8fb52893-1e93-4fea-adba-838e9b42e4d2.png\",\n \"acec8466-8b0a-4adc-9929-561b7136fccb.png\",\n \"3d01addb-1103-49ca-9c74-3027112e4aa8.png\",\n \"5f5973bf-d11c-4f99-9b86-b1303cea3503.png\",\n \"1317665c-e5c4-48b8-b3a5-2a90aa0283d7.png\",\n \"48f2153e-6f4a-4da5-99a5-775a888c218a.png\",\n \"34451b52-0f65-4e1a-91aa-5f2b1420f4b7.png\",\n \"d3a10e7c-63c1-4309-b801-e42ce6e575d5.png\",\n \"4c74937f-c30d-49c8-993e-c5a133f92414.png\",\n \"5c4c748f-acd5-4fc8-b6cd-a37f629709fb.png\",\n \"0293e1f1-291e-48ad-a5d0-cc7fcb062603.png\",\n \"407f63d2-8fc7-42dd-9a46-23c76693789b.png\",\n \"6d5de058-cc60-4f07-89db-bcc6817bb115.png\",\n \"a1c9be32-3539-4390-bf01-828d5fb9f57d.png\",\n \"562c8d0a-e524-49d7-81c2-70b34b4b9a15.png\",\n \"8023b832-eaca-414a-9a53-c2fe423087d2.png\",\n \"e8e73128-7722-4514-9684-1c17d43d880e.png\",\n \"24cb81a7-dd2b-4b07-808b-f6611fea0393.png\",\n \"5266bc57-58db-4171-8d73-a2a40ff380d2.png\",\n \"9752c0a1-49f5-4842-8554-bfa3a6a3c3b4.png\",\n \"df4a6dd3-672f-4547-8ade-609df28dcda9.png\",\n \"921bb517-fdc9-4ca2-b9fc-a9e17e6cb8fc.png\",\n \"e3f229a1-8637-49b1-abaa-84d228aff34a.png\",\n \"53f22687-4635-4bff-99e2-2eacdc402359.png\",\n \"c7fe32b2-97c6-45f7-90f8-47213c9b85f1.png\",\n \"a7a87c72-1d8a-42d6-b0a4-c72b7dd8933a.png\",\n \"2630415e-1871-437a-84de-52ad7ce88f3e.png\",\n \"b53ff282-4725-45f7-a436-89f77320f062.png\",\n ]\n\n loading: boolean = false\n\n urlPattern = URL_PATTERN\n\n submitted: boolean = false\n newOrg: Organization = new Organization()\n errorMsg: string = \"\"\n\n croppedImage: any = '';\n croppedImageEvent: ImageCroppedEvent | null = null;\n\n constructor(\n private connectService: ConnectService,\n private router: Router,\n private modalService: NgbModal,\n private sanitizer: DomSanitizer\n ) { }\n\n ngOnInit(): void {\n }\n\n signupOrgSubmit(){\n this.loading = true\n this.submitted = true;\n\n this.newOrg.logo_uri = \"https://example.com\" //TODO: placeholder logo url.\n console.log(\"starting signup process...\",this.newOrg)\n this.connectService.createOrg(this.newOrg, this.croppedImageEvent?.blob!).subscribe(\n (resp) => {\n console.log(\"Organization Created\", resp)\n this.router.navigate(['/dashboard'])\n },\n (err) => {\n console.error(\"Error creating Organization\", err)\n this.errorMsg = err.error.message\n this.loading = false\n }\n )\n\n }\n openLogoCropper(){\n this.modalService.open(LogoCropperComponent).result.then(\n (result) => {\n this.croppedImageEvent = result\n this.croppedImage = this.sanitizer.bypassSecurityTrustUrl(this.croppedImageEvent?.objectUrl!);\n },\n (reason) => {\n console.log(`Dismissed`, reason);\n },\n );\n }\n\n}\n","
\n
\n\n
\n
\n \n
\n
\n
\n
\n\n
\n
\n \n\n
\n
\n\n\n\n","import { Component, OnInit } from '@angular/core';\nimport {User} from '../../models/fasten/user';\nimport {AuthService} from '../../services/auth.service';\nimport {Router} from '@angular/router';\nimport {STRONG_PASSWORD_PATTERN} from '../../app.constants';\n\n@Component({\n selector: 'app-auth-signup',\n templateUrl: './auth-signup.component.html',\n styleUrls: ['./auth-signup.component.scss']\n})\nexport class AuthSignupComponent implements OnInit {\n\n strong_password_pattern = STRONG_PASSWORD_PATTERN\n\n gridImages: string[] = [\n \"f8f9ce28-d79b-4b54-9f7d-3f0aaba88c2c.png\",\n \"89bb6993-b806-49a2-84e2-6e70705c504a.png\",\n \"9fcc4529-7dc9-4c66-9198-574f978c8bb7.png\",\n \"68952002-f17e-4086-aae5-841241b194dd.png\",\n \"767b97b9-4538-433f-ab7a-14ccb0053323.png\",\n \"74078880-4084-430e-bc6c-223e5990cef8.png\",\n \"10668246-1077-4c1d-a6ce-0557c9476e77.png\",\n \"f7e4fc08-c6f6-426b-be98-d60aa36d3b8b.png\",\n \"65308856-beaa-46a0-9775-20c6c9322add.png\",\n \"6e901e85-8f45-4c60-8d1f-12621aad07f1.png\",\n \"e675376d-03de-4e66-8196-eaccda536ad5.png\",\n \"a36fd256-2751-464f-b6d7-418279595b1e.png\",\n \"c623f37e-6399-4a13-909f-3d9886130673.png\",\n \"467592a3-7f5f-4258-909e-a99ca971ce15.png\",\n \"5ad8a5ab-6570-4f1e-8002-30a051ec52c2.png\",\n \"ddbef50d-3940-4411-9dea-6bf759704c6e.png\",\n \"fc2dcde0-0848-4b09-aeaf-bfef58120de9.png\",\n \"347c0df7-5817-470e-8b28-2802f90461f6.png\",\n \"ec5bc181-5466-4ebd-9e42-471593b8d104.png\",\n \"d3b1eba5-ec53-4e6d-9600-9510afbc4dda.png\",\n \"16483fad-5c24-4766-ad53-bd78551f0768.png\",\n \"ae8026ed-e74b-4bf3-9f53-458c250420ba.png\",\n \"907d39f4-6b30-46cd-b0c8-f525c636c933.png\",\n \"6b076b97-18f7-452d-9f09-20dffb01729f.png\",\n \"c7feccc5-ad10-4aeb-91b0-12b6b93feeba.png\",\n \"c66a7c1e-21f2-44aa-9486-cdfb5ad699ba.png\",\n \"82af2366-1d27-4665-ba99-e5a60a75205a.png\",\n \"2289e832-64da-47d9-82ef-1f4e15ccf627.png\",\n \"26768525-2b04-4715-9159-3679598289a3.png\",\n \"80af4067-77e9-4c13-b617-4f370dc14d3f.png\",\n \"ec6c5f06-d7f8-4eac-8e2f-6cda4536d8ab.png\",\n \"93ee1d70-6eaa-487b-84d1-cc18bcda253f.png\",\n \"6d5ba4db-4b63-4277-bb80-dc278dbe28bd.png\",\n \"b22e4e71-1121-4fca-b158-efbb906918e9.png\",\n \"49fd46d0-05ce-4c7d-923c-3891935f6947.png\",\n \"19652f82-98b9-44e6-9964-e426192a723d.png\",\n \"314a06fc-4efc-4e34-8048-565455e4f3e1.png\",\n \"8123cfc7-53b6-45d6-ace3-b64d4bd3234b.png\",\n \"35159b16-a1b5-45ba-9d4f-83f471d5f44b.png\",\n \"d6c0016f-aaec-4764-ac28-7a6eda64b693.png\",\n \"d09c7811-213b-4c19-9154-48e57174f239.png\",\n \"2bcdcc4c-0f13-4edb-85f4-2c9f4f948df0.png\",\n \"4a4720a0-0efc-4b63-a83d-a8cc5b1c15ad.png\",\n \"98f680b2-15c4-4854-902b-ed6b69425164.png\",\n \"32283b0a-3c36-4f92-b9c2-dd2edf3a3db1.png\",\n \"d56e9e82-3f62-4ce8-8a55-27da90fbe183.png\",\n \"4fc37973-195c-4e25-8751-331a3b88e685.png\",\n \"fb0bb8fa-8336-4b26-bdc5-7f8a432c1d94.png\",\n \"7ca2d9d1-d300-479d-ab85-f956b6ef60de.png\",\n \"4fd8bb55-bb2d-4748-a134-bbab7a22e4db.png\",\n \"63cde119-f9d8-468d-900a-1976211739f8.png\",\n \"e8290a84-88a1-4eac-a5b4-b2c63146b2c9.png\",\n \"13b592f9-5c8b-4f90-aa54-5ab57a29ea89.png\",\n \"0398ce8e-9200-430c-a654-f2057bc9a2d4.png\",\n \"92b1d310-99a1-4de2-99b6-975eaf5a3744.png\",\n \"418d563f-bd82-473f-a738-cd9775db4e56.png\",\n \"8fb52893-1e93-4fea-adba-838e9b42e4d2.png\",\n \"acec8466-8b0a-4adc-9929-561b7136fccb.png\",\n \"3d01addb-1103-49ca-9c74-3027112e4aa8.png\",\n \"5f5973bf-d11c-4f99-9b86-b1303cea3503.png\",\n \"1317665c-e5c4-48b8-b3a5-2a90aa0283d7.png\",\n \"48f2153e-6f4a-4da5-99a5-775a888c218a.png\",\n \"34451b52-0f65-4e1a-91aa-5f2b1420f4b7.png\",\n \"d3a10e7c-63c1-4309-b801-e42ce6e575d5.png\",\n \"4c74937f-c30d-49c8-993e-c5a133f92414.png\",\n \"5c4c748f-acd5-4fc8-b6cd-a37f629709fb.png\",\n \"0293e1f1-291e-48ad-a5d0-cc7fcb062603.png\",\n \"407f63d2-8fc7-42dd-9a46-23c76693789b.png\",\n \"6d5de058-cc60-4f07-89db-bcc6817bb115.png\",\n \"a1c9be32-3539-4390-bf01-828d5fb9f57d.png\",\n \"562c8d0a-e524-49d7-81c2-70b34b4b9a15.png\",\n \"8023b832-eaca-414a-9a53-c2fe423087d2.png\",\n \"e8e73128-7722-4514-9684-1c17d43d880e.png\",\n \"24cb81a7-dd2b-4b07-808b-f6611fea0393.png\",\n \"5266bc57-58db-4171-8d73-a2a40ff380d2.png\",\n \"9752c0a1-49f5-4842-8554-bfa3a6a3c3b4.png\",\n \"df4a6dd3-672f-4547-8ade-609df28dcda9.png\",\n \"921bb517-fdc9-4ca2-b9fc-a9e17e6cb8fc.png\",\n \"e3f229a1-8637-49b1-abaa-84d228aff34a.png\",\n \"53f22687-4635-4bff-99e2-2eacdc402359.png\",\n \"c7fe32b2-97c6-45f7-90f8-47213c9b85f1.png\",\n \"a7a87c72-1d8a-42d6-b0a4-c72b7dd8933a.png\",\n \"2630415e-1871-437a-84de-52ad7ce88f3e.png\",\n \"b53ff282-4725-45f7-a436-89f77320f062.png\",\n ]\n\n loading: boolean = false\n\n submitted: boolean = false\n newUser: User = new User()\n errorMsg: string = \"\"\n\n inviteToken: string | null = \"\"\n\n constructor(\n private authService: AuthService,\n private router: Router,\n ) { }\n\n ngOnInit(): void {\n\n const urlParams = new URLSearchParams(window.location.search);\n this.inviteToken = urlParams.get('token');\n }\n\n signupSubmit(){\n this.loading = true\n this.submitted = true;\n\n let signupFn = null\n if (this.inviteToken){\n signupFn = this.authService.SignupWithInvite(this.newUser, this.inviteToken)\n } else {\n signupFn = this.authService.Signup(this.newUser)\n }\n\n\n signupFn.then((tokenResp: any) => {\n this.loading = false\n console.log(tokenResp);\n\n if(this.inviteToken){\n //if we are signing up with an invite, we should redirect to the dashboard\n this.router.navigateByUrl('/dashboard');\n } else {\n //after creating a user, proceed to create an organization\n this.router.navigateByUrl('/auth/signup/org');\n }\n },\n (err)=>{\n this.loading = false\n console.error(\"an error occured while signup\",err)\n if(err.name === 'conflict') {\n // \"batman\" already exists, choose another username\n this.errorMsg = \"username already exists\"\n } else if (err.name === 'forbidden') {\n // invalid username\n this.errorMsg = \"invalid username\"\n } else {\n this.errorMsg = \"an unknown error occurred during sign-up\"\n }\n\n // TODO:\n // const toastNotificaiton = new ToastNotification()\n // toastNotificaiton.type = ToastType.Error\n // toastNotificaiton.message = this.errorMsg\n // this.toastService.show(toastNotificaiton)\n })\n }\n\n}\n","
\n
\n\n
\n
\n \n
\n
\n
\n
\n\n
\n
\n \n\n
\n
\n\n\n\n","import {Component, OnInit} from '@angular/core';\nimport {ChartConfiguration} from 'chart.js';\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss']\n})\nexport class DashboardComponent implements OnInit {\n\n\n constructor() { }\n\n ngOnInit(): void {\n\n }\n\n bounceRateChartData = [{\n label: 'This week',\n data: [27.2, 29.9, 29.6, 25.7, 25.9, 29.3, 31.1, 27.9, 28.4, 25.4, 23.2, 18.2, 14, 12.7, 11, 13.7, 9.7, 12.6, 10.9, 12.7, 13.8, 12.9, 13.8, 10.2, 5.8, 7.6, 8.8, 5.6, 5.6, 6.3, 4.2, 3.6, 5.4, 6.5, 8.1, 10.9, 7.6, 9.7, 10.9, 9.5, 5.4, 4.9, .7, 2.3, 5.5, 10, 10.6, 8.3, 8.4, 8.5, 5.8 ],\n borderWidth: 2,\n fill: true\n }];\n\n bounceRateChartLabels = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51'];\n\n bounceRateChartOptions = {\n\n responsive:true,\n maintainAspectRatio:false,\n scales: {\n y: {\n display: false,\n gridLines: {\n drawBorder: false,\n display: true,\n drawTicks: false,\n },\n ticks: {\n display: false,\n beginAtZero: true,\n min: 0,\n max: 40,\n stepSize: 10,\n }\n },\n x: {\n display: false,\n position: 'bottom',\n gridLines: {\n drawBorder: false,\n display: false,\n drawTicks: false,\n },\n ticks: {\n beginAtZero: true,\n stepSize: 10,\n fontColor: \"#a7afb7\",\n padding: 10,\n }\n },\n },\n plugins: {\n legend: {\n display: false,\n },\n },\n\n elements: {\n point: {\n radius: 0\n },\n line: {\n tension: 0\n }\n },\n tooltips: {\n backgroundColor: 'rgba(2, 171, 254, 1)',\n },\n backgroundColor: 'rgba(0, 204, 212, .2)',\n borderColor: 'rgb(0, 204, 212)',\n } as ChartConfiguration<'line'>['options']\n\n // Total users chart\n usersBarChartData = [{\n label: '# of Votes',\n data: [27.2, 29.9, 29.6, 25.7, 25.9, 29.3, 31.1, 27.9, 28.4, 25.4, 23.2, 18.2, 14, 12.7, 11, 13.7, 9.7, 12.6, 10.9, 12.7, 13.8],\n borderWidth: 1,\n fill: false\n }];\n\n usersBarChartLabels = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18'];\n\n usersBarChartOptions = {\n\n responsive:true,\n maintainAspectRatio:false,\n scales: {\n y: {\n display: false,\n ticks: {\n display: false,\n },\n gridLines: {\n drawBorder: false,\n display: false\n }\n },\n x: {\n display: false,\n barThickness: 5.5,\n ticks: {\n display: false,\n },\n gridLines: {\n drawBorder: false,\n display: false\n }\n }\n },\n plugins: {\n legend: {\n display: false\n },\n },\n elements: {\n point: {\n radius: 0\n }\n },\n backgroundColor: '#007bff',\n borderColor: '#007bff'\n } as ChartConfiguration<'bar'>['options']\n\n}\n","
\n
\n
\n
\n
\n

Welcome back!

\n
\n
\n
\n
\n \n
Mar 24, 2024
\n
\n
\n
\n
\n \n
None
\n
\n
\n\n
\n
\n\n
\n \n Under Construction! The Dashboard is still under development. We will notify you once you can start using it.\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n
33.50% 18.02%
\n

API Requests

\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
86 0.86%
\n

Webhooks

\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n
Connections
\n Total number of authorized patient connections for this billing period.\n
\n
\n
\n
\n 6,4,7,5,7\n
\n
\n \n

33

\n
\n
\n
\n
\n 7,4,5,7,2\n
\n
\n \n

9

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Authorized Connections
\n

Recently connected healthcare insitutions.

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 Portal NameSynced RecordsPatient Auth IDStatus
Epic134 (1.51%)6f3f3770-ad00-...complete
eClincalWorks290 (3.30%)ae5e7f40-4e7c-...complete
Medicare250 (3.00%)b3af4ab6-9275-...complete
Epic216 (2.79%)baccf6e8-f020-...complete
Epic216 (2.79%)61a193cc-33ed-...error
United Healthcare197 (2.12%)6a79f333-9408-...complete
\n
\n
\n
\n\n
\n\n
\n
\n
\n\n","import { Component, OnInit } from '@angular/core';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {ConnectService} from '../../services/connect.service';\nimport {ApiMode, CRUDMode, URL_PATTERN} from '../../app.constants';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {OrganizationCredential} from '../../models/fasten/organization-credential';\nimport {PortalConfig} from '../../models/portal-config';\nimport {OrganizationWebhook} from '../../models/fasten/organization-webhook';\nimport {OrgCredentialsEditorComponent} from '../../components/org-credentials-editor/org-credentials-editor.component';\nimport {OrgWebhooksEditorComponent} from '../../components/org-webhooks-editor/org-webhooks-editor.component';\n\n@Component({\n selector: 'app-developers',\n templateUrl: './developers.component.html',\n styleUrls: ['./developers.component.scss']\n})\nexport class DevelopersComponent implements OnInit {\n\n\n orgCredentials: {[name: string]: OrganizationCredential[]} = {\n [ApiMode.Live]: [],\n [ApiMode.Test]: [],\n }\n\n newCredential: {org_credential: OrganizationCredential, private_key: string} | null = null\n\n orgWebhooks: {[name: string]: OrganizationWebhook[]} = {\n [ApiMode.Live]: [],\n [ApiMode.Test]: [],\n }\n\n\n constructor(\n private connectService: ConnectService,\n private modalService: NgbModal,\n public portalConfig: PortalConfigService,\n ) { }\n\n ngOnInit(): void {\n\n this.connectService.getOrgCredentials(this.portalConfig.config$.user?.org_id!).subscribe((data) => {\n for(let cred of data){\n this.orgCredentials[cred.api_mode].push(cred)\n }\n })\n this.connectService.getOrgWebhooks(this.portalConfig.config$.user?.org_id!).subscribe((data) => {\n for(let hook of data){\n this.orgWebhooks[hook.api_mode].push(hook)\n }\n })\n }\n\n\n public showOrgCredentialEditorModal(editorMode: 'create' | 'edit', orgCredential?: OrganizationCredential) {\n let orgCredentialEditorModal = this.modalService.open(OrgCredentialsEditorComponent, { ariaLabelledBy: 'modal-basic-title' })\n orgCredentialEditorModal.componentInstance.org = this.portalConfig.config$.org\n orgCredentialEditorModal.componentInstance.apiMode = this.portalConfig.config$.apiMode!\n orgCredentialEditorModal.componentInstance.editorMode = editorMode\n\n if(editorMode === 'edit'){\n orgCredentialEditorModal.componentInstance.orgCredential = orgCredential\n }\n\n orgCredentialEditorModal.result.then(\n (result: {action: CRUDMode, org_credential: OrganizationCredential, private_key: string}) => {\n console.log(`Closed with:`, result)\n\n if(editorMode == 'create'){\n this.orgCredentials[result.org_credential.api_mode].push(result.org_credential)\n this.newCredential = result\n } else {\n //find the credential and update it or delete it\n let apiMode = result.org_credential.api_mode\n for(let i = 0; i < this.orgCredentials[apiMode].length; i++){\n if(this.orgCredentials[apiMode][i].id == result.org_credential.id){\n if(result.action == CRUDMode.Delete){\n this.orgCredentials[apiMode].splice(i, 1)\n break\n } else {\n //update the credential\n this.orgCredentials[apiMode][i] = result.org_credential\n break\n }\n }\n }\n }\n },\n (reason) => {\n console.log(`Dismissed ${reason}`)\n },\n );\n }\n\n public copyPublicId(credential: OrganizationCredential) {\n navigator.clipboard.writeText(credential.id);\n }\n\n\n public showOrgWebhookEditorModal(editorMode: 'create' | 'edit', orgWebhook?: OrganizationWebhook) {\n let orgWebhookEditorModal = this.modalService.open(OrgWebhooksEditorComponent, { ariaLabelledBy: 'modal-basic-title' })\n orgWebhookEditorModal.componentInstance.org = this.portalConfig.config$.org\n orgWebhookEditorModal.componentInstance.apiMode = this.portalConfig.config$.apiMode!\n orgWebhookEditorModal.componentInstance.editorMode = editorMode\n\n if(editorMode === 'edit'){\n orgWebhookEditorModal.componentInstance.orgWebhook = orgWebhook\n }\n orgWebhookEditorModal.result.then(\n (result: {action: CRUDMode, org_webhook: OrganizationWebhook}) => {\n console.log(`Closed with:`, result)\n\n let apiMode = result.org_webhook.api_mode\n if(editorMode == 'create'){\n this.orgWebhooks[apiMode].push(result.org_webhook)\n } else {\n apiMode = orgWebhook?.api_mode!\n //find the webhook and update it\n for(let i = 0; i < this.orgWebhooks[apiMode].length; i++){\n if(this.orgWebhooks[apiMode][i].id == result.org_webhook.id){\n if(result.action == CRUDMode.Delete){\n this.orgWebhooks[apiMode].splice(i, 1)\n break\n } else {\n //update the webhook\n this.orgWebhooks[apiMode][i] = result.org_webhook\n break\n }\n }\n }\n }\n },\n (reason) => {\n console.log(`Dismissed ${reason}`)\n },\n );\n }\n\n}\n","
\n \n\n\n
\n
\n API Credentials\n Learn more about API authentication\n
\n
\n\n\n
\n
\n Credentials\n \n
\n\n
\n

Create a key that unlocks full API access, enabling extensive interaction with your account.

\n\n
\n \n Credential Created! Make sure to copy your Private Key now. You won’t be able to see it again!\n
\n Public Id: {{newCredential.org_credential.id}}
\n Private Key: {{newCredential.private_key}}\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
StatusPublic IdPrivate KeyCreated
\n {{cred.status}}\n {{cred.id}} {{cred.private_key || 'REDACTED'}}{{cred.created_at | amDateFormat:'LL'}}\n \n
\n
\n\n
\n\n
\n
\n Webhooks\n \n
\n\n\n
\n

Set up your webhook endpoint to receive events from Fasten Connect or learn more about Webhooks.

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
StatusUrlEventsDelivery Logs
\n {{webhook.status}}\n {{webhook.endpoint_uri}}\n \n {{webhook?.event_types?.length}} event(s)\n \n \n \n
\n
\n\n\n
\n\n
\n","import { Component, OnInit } from '@angular/core';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {ConnectService} from '../../services/connect.service';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {environment} from '../../../environments/environment';\n\n@Component({\n selector: 'app-org-billing',\n templateUrl: './org-billing.component.html',\n styleUrls: ['./org-billing.component.scss']\n})\nexport class OrgBillingComponent implements OnInit {\n\n\n stripe_customer_portal = environment.stripe_customer_portal;\n loading = false\n recentlyChanged = false\n\n constructor(\n public portalConfig: PortalConfigService,\n public connectService: ConnectService,\n ) { }\n\n ngOnInit(): void {\n //read query string parameters\n const urlParams = new URLSearchParams(window.location.search);\n const sessionId = urlParams.get('session_id');\n if(sessionId){\n this.recentlyChanged = true\n }\n }\n\n}\n","
\n \n\n \n
\n
\n
\n
\n Invoices & Payment Methods\n Visit the Billing Portal\n
\n
\n

Your account is active. You can view invoices and payment methods in the billing portal.

\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n Inactive Account\n
\n\n
\n
\n
\n
No plan selected
\n

\n Please contact support@fastenhealth.com to activate your account.
\n Inactive accounts may be purged after 30 days.\n

\n
\n
\n\n
\n\n
\n
\n Plan Changed! Your plan changed recently. It may take up to 24 hours to reflect plan changes in your organization profile.\n
\n\n
\n
\n\n\n
\n","import { Component, OnInit } from '@angular/core';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {environment} from '../../../environments/environment';\nimport {ConnectService} from '../../services/connect.service';\nimport {URL_PATTERN} from '../../app.constants';\nimport {Organization} from '../../models/fasten/organization';\nimport {ImageCroppedEvent} from 'ngx-image-cropper';\nimport {LogoCropperComponent} from '../../components/logo-cropper/logo-cropper.component';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {DomSanitizer} from '@angular/platform-browser';\n\n@Component({\n selector: 'app-org-settings',\n templateUrl: './org-settings.component.html',\n styleUrls: ['./org-settings.component.scss']\n})\nexport class OrgSettingsComponent implements OnInit {\n loading: boolean = false\n\n urlPattern = URL_PATTERN\n\n submitted: boolean = false\n updateOrg: Organization = new Organization()\n errorMsg: string = \"\"\n\n croppedImage: any = '';\n croppedImageEvent: ImageCroppedEvent | null = null;\n\n constructor(\n public portalConfig: PortalConfigService,\n public connectService: ConnectService,\n private modalService: NgbModal,\n private sanitizer: DomSanitizer\n ) { }\n\n ngOnInit(): void {\n\n this.portalConfig.ConfigSubject.subscribe((config) => {\n this.updateOrg = {...config.org!}\n })\n\n }\n\n updateOrgSubmit(){\n this.loading = true\n this.submitted = true;\n\n console.log(\"starting update process...\",this.updateOrg)\n this.connectService.updateOrg(this.portalConfig.config$.org?.id!, this.updateOrg, this.croppedImageEvent?.blob).subscribe(\n (org) => {\n console.log(\"Organization Updated\", org)\n this.loading = false\n\n //update the org in the portal config\n this.portalConfig.config = {org: org}\n\n },\n (err) => {\n console.error(\"Error updating Organization\", err)\n this.errorMsg = err.error.message\n this.loading = false\n }\n )\n\n }\n\n openLogoCropper(){\n this.modalService.open(LogoCropperComponent).result.then(\n (result) => {\n this.croppedImageEvent = result\n this.croppedImage = this.sanitizer.bypassSecurityTrustUrl(this.croppedImageEvent?.objectUrl!);\n },\n (reason) => {\n console.log(`Dismissed`, reason);\n },\n );\n }\n}\n","
\n \n\n\n
\n
\n
\n
\n Details\n
\n\n
\n
\n\n

Use this form to update information about your Organization

\n\n\n
\n\n\n\n
\n\n
\n \n
{{updateOrg.id}}
\n
\n\n
\n \n \n\n
\n
\n Organization Name is required.\n
\n
\n Organization Name must be at least 2 characters long.\n
\n
\n
\n\n
\n \n
\n
\n \"\"\n
\n
\n
\n
\n\n
\n \n \n
\n
\n Website is required.\n
\n
\n Website must be a valid url starting with https://\n
\n
\n
\n\n
\n \n \n
\n
\n Privacy Policy Url is required.\n
\n
\n Privacy Policy must be a valid url starting with https://\n
\n
\n
\n\n
\n \n \n
\n
\n Terms & Conditions must be a valid url starting with https://\n
\n
\n
\n
\n\n\n
\n\n \n\n
\n Error {{errorMsg}}\n
\n\n
\n
\n\n
\n
\n\n\n
\n\n
\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","import { Component, OnInit } from '@angular/core';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {LogoCropperComponent} from '../../components/logo-cropper/logo-cropper.component';\nimport {OrgTeamInviteComponent} from '../../components/org-team-invite/org-team-invite.component';\nimport {ConnectService} from '../../services/connect.service';\nimport {OrganizationTeamMember} from '../../models/fasten/organization-team-member';\n\n@Component({\n selector: 'app-org-team',\n templateUrl: './org-team.component.html',\n styleUrls: ['./org-team.component.scss']\n})\nexport class OrgTeamComponent implements OnInit {\n\n teamMembers: OrganizationTeamMember[] = []\n\n constructor(\n private connectService: ConnectService,\n private modalService: NgbModal,\n public portalConfig: PortalConfigService,\n ) { }\n\n ngOnInit(): void {\n this.connectService.getOrgTeam(this.portalConfig.config$.user?.org_id!).subscribe((data) => {\n this.teamMembers = data\n })\n }\n\n openOrgTeamInviteModal(){\n this.modalService.open(OrgTeamInviteComponent).result.then(\n (result) => {\n console.log(`Closed with: ${result}`)\n },\n (reason) => {\n console.log(`Dismissed`, reason);\n },\n );\n }\n}\n","
\n \n\n
\n
\n\n
\n
\n Team Members\n \n
\n\n
\n

Invite your colleagues to join your team.

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
StatusNameEmail
\n {{member.status}}\n {{member.name}}{{member.email}}
\n\n
\n\n
\n\n
\n
\n\n\n
\n","import { Component, OnInit } from '@angular/core';\nimport {ConnectService} from '../../services/connect.service';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {ActivatedRoute} from '@angular/router';\nimport {OrganizationWebhookDelivery} from '../../models/fasten/organization-webhook-delivery';\nimport {OrganizationWebhook} from '../../models/fasten/organization-webhook';\nimport {OrganizationCredential} from '../../models/fasten/organization-credential';\n\n@Component({\n selector: 'app-webhook-logs',\n templateUrl: './webhook-logs.component.html',\n styleUrls: ['./webhook-logs.component.scss']\n})\nexport class WebhookLogsComponent implements OnInit {\n\n showAllDeliveries = false\n webhookDeliveries: OrganizationWebhookDelivery[] = []\n webhook: OrganizationWebhook | null = null\n selectedWebhookDelivery: OrganizationWebhookDelivery | null = null\n\n constructor(\n private connectService: ConnectService,\n public portalConfig: PortalConfigService,\n private route: ActivatedRoute,\n ) { }\n\n ngOnInit(): void {\n let webhookId = this.route.snapshot.paramMap.get('webhookId')\n if (!webhookId) {\n return\n }\n\n this.connectService.getOrgWebhookDeliveries(this.portalConfig.config$.user?.org_id!, webhookId!).subscribe((data) => {\n console.log(\"Webhook Deliveries\", data)\n this.webhookDeliveries = (data.deliveries || []).reverse()\n this.webhook = data.webhook\n\n if (this.webhookDeliveries.length > 0) {\n this.selectedWebhookDelivery = this.webhookDeliveries[0]\n }\n\n })\n }\n\n public copySecretToken(secretToken: string | undefined) {\n if (!secretToken) {\n return\n }\n navigator.clipboard.writeText(secretToken);\n }\n}\n","
\n \n\n
\n
\n {{webhook?.endpoint_uri}}\n\n
\n\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
StatusAPI ModeListening ForSigning SecretLast Updated
\n {{webhook?.status}}\n \n {{webhook?.api_mode}}\n \n {{webhook?.event_types?.length}} event(s)\n \n reveal \n \n {{webhook?.updated_at | amDateFormat:'LL'}}
\n
\n\n
\n\n
\n\n
\n
\n Delivery Logs\n
\n
\n
\n
\n
\n \n \n
\n
\n\n
\n Response\n
\n\n
\n
\n
\n Request\n
\n
\n \n
\n Waiting for delivery...\n
\n
\n
\n
\n
\n
\n
\n\n
\n","import { Injectable, Injector } from '@angular/core';\nimport {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';\nimport {Router} from '@angular/router';\nimport {Observable, of, throwError} from 'rxjs';\nimport {catchError} from 'rxjs/operators';\nimport {AuthService} from './auth.service';\nimport {environment} from '../../environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\n\n// based on https://stackoverflow.com/questions/46017245/how-to-handle-unauthorized-requestsstatus-with-401-or-403-with-new-httpclient\nexport class AuthInterceptorService implements HttpInterceptor {\n\n constructor(private authService: AuthService, private router: Router) { }\n\n private handleAuthError(err: HttpErrorResponse): Observable {\n //handle your auth error or rethrow\n if (err.status === 401 || err.status === 403) {\n //navigate /delete cookies or whatever\n this.authService.Signout()\n this.router.navigateByUrl(`/auth/signin`);\n // if you've caught / handled the error, you don't want to rethrow it unless you also want downstream consumers to have to handle it as well.\n return of(err.message); // or EMPTY may be appropriate here\n }\n return throwError(err);\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n\n console.log(\"Intercepting Request\", req)\n\n //only intercept requests to the fasten API & lighthouse, all other requests should be sent as-is\n let reqUrl = new URL(req.url)\n let lighthouseUrl = new URL(environment.lighthouse_api_endpoint_base)\n let apiUrl = new URL(environment.connect_api_endpoint_base)\n\n if(\n !((reqUrl.origin == apiUrl.origin && reqUrl.pathname.startsWith(apiUrl.pathname)) ||\n (reqUrl.origin == lighthouseUrl.origin && reqUrl.pathname.startsWith(lighthouseUrl.pathname)))\n ){\n return next.handle(req)\n }\n\n // Clone the request and ensure that cookies are sent\n const authReq = req.clone({withCredentials: true});\n // catch the error, make specific functions for catching specific errors and you can chain through them with more catch operators\n return next.handle(authReq).pipe(catchError(x=> this.handleAuthError(x))); //here use an arrow function, otherwise you may get \"Cannot read property 'navigate' of undefined\" on angular 4.4.2/net core 2/webpack 2.70\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {User} from '../models/fasten/user';\nimport {environment} from '../../environments/environment';\nimport {HttpClient} from '@angular/common/http';\nimport {ResponseWrapper} from '../models/response-wrapper';\nimport {BehaviorSubject} from 'rxjs';\nimport * as jose from 'jose'\nimport {PortalConfigService} from './portal-config.service';\n\nexport const FASTEN_AUTH_COOKIE_NAME = 'fasten_connect_auth'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n public IsAuthenticatedSubject = new BehaviorSubject(false)\n\n constructor(private _httpClient: HttpClient, private portalConfigService: PortalConfigService) {}\n\n /**\n * Signup (and Signin) both require an \"online\" user.\n * @param newUser\n * @constructor\n */\n public async SignupWithInvite(newUser: User, inviteToken: string): Promise {\n let queryParams = {\n \"token\": inviteToken\n }\n\n let resp = await this._httpClient.post(`${environment.connect_api_endpoint_base}/auth/invite`, newUser, { withCredentials: true, params:queryParams }).toPromise()\n console.log(resp)\n return resp\n }\n /**\n * Signup (and Signin) both require an \"online\" user.\n * @param newUser\n * @constructor\n */\n public async Signup(newUser?: User): Promise {\n let resp = await this._httpClient.post(`${environment.connect_api_endpoint_base}/auth/signup`, newUser, { withCredentials: true }).toPromise()\n console.log(resp)\n return resp\n }\n\n public async Signin(email: string, pass: string): Promise {\n let currentUser = new User()\n currentUser.email = email\n currentUser.password = pass\n let resp = await this._httpClient.post(`${environment.connect_api_endpoint_base}/auth/login`, currentUser, { withCredentials: true }).toPromise()\n return resp\n }\n\n public async Signout(): Promise {\n this.publishAuthenticationState(false)\n return this.deleteCookie(FASTEN_AUTH_COOKIE_NAME)\n // // let remotePouchDb = new PouchDB(this.getRemoteUserDb(localStorage.getItem(\"current_user\")), {skip_setup: true});\n // if(this.pouchDb){\n // await this.pouchDb.logOut()\n // }\n // await this.Close()\n }\n\n public async GetJWTPayload(): Promise {\n let authToken = this.getCookie(FASTEN_AUTH_COOKIE_NAME)\n if (!authToken) {\n return null\n }\n let jwks = jose.createRemoteJWKSet(new URL(environment.jwks_uri))\n let issuerHost = environment.connect_api_jwt_issuer_host\n\n try {\n //audience and issuer must be the same. This token is only valid on the fasten connect api\n const {payload, protectedHeader} = await jose.jwtVerify(authToken, jwks, {\n issuer: issuerHost,\n audience: issuerHost,\n })\n // @ts-ignore\n this.portalConfigService.config = {user: payload}\n return payload\n } catch (e) {\n console.error(\"failed to verify jwt:\", e, issuerHost)\n return null\n }\n }\n\n public async IsAuthenticated(): Promise {\n let payload = await this.GetJWTPayload()\n let isAuthenticated = payload != null\n this.publishAuthenticationState(isAuthenticated)\n return isAuthenticated\n }\n\n //https://stackoverflow.com/questions/34298133/angular-cookies\n private getCookie(name: string): string {\n const ca: Array = decodeURIComponent(document.cookie).split(';');\n const caLen: number = ca.length;\n const cookieName = `${name}=`;\n let c: string;\n\n for (let i = 0; i < caLen; i += 1) {\n c = ca[i].replace(/^\\s+/g, '');\n if (c.indexOf(cookieName) === 0) {\n return c.substring(cookieName.length, c.length);\n }\n }\n return '';\n }\n\n private deleteCookie(name: string) {\n this.setCookie(name, '', -1);\n }\n private setCookie(name: string, value: string, expireDays: number, path: string = '') {\n const d: Date = new Date();\n d.setTime(d.getTime() + expireDays * 24 * 60 * 60 * 1000);\n const expires = `expires=${d.toUTCString()}`;\n const cpath = path ? `; path=${path}` : '';\n document.cookie = `${name}=${value}; ${expires}${cpath}; SameSite=Lax`;\n }\n\n private publishAuthenticationState(authenticated: boolean){\n if(this.IsAuthenticatedSubject.value != authenticated){\n this.IsAuthenticatedSubject.next(authenticated)\n }\n }\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {ResponseWrapper} from '../models/response-wrapper';\nimport {environment} from '../../environments/environment';\nimport {Organization} from '../models/fasten/organization';\nimport {map, Observable} from 'rxjs';\nimport {ApiMode, CRUDMode} from '../app.constants';\nimport {OrganizationCredential} from '../models/fasten/organization-credential';\nimport {OrganizationWebhook} from '../models/fasten/organization-webhook';\nimport {OrganizationWebhookDelivery} from '../models/fasten/organization-webhook-delivery';\nimport {OrganizationTeamMember} from '../models/fasten/organization-team-member';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConnectService {\n\n constructor(private _httpClient: HttpClient) { }\n\n\n /**\n * Create a new organization and associate it with the current User\n * @param newOrg\n * @param logoBlob\n * @constructor\n */\n public createOrg(newOrg: Organization, logoBlob: Blob): Observable {\n const formData = new FormData();\n\n //add the org data to the form data\n const orgJson = JSON.stringify(newOrg);\n const orgJsonBlob = new Blob([orgJson], {\n type: 'application/json'\n });\n formData.append(\"org\", orgJsonBlob);\n formData.append(\"logo\", logoBlob);\n\n let resp = this._httpClient.post(`${environment.connect_api_endpoint_base}/org`, formData)\n console.log(resp)\n return resp\n }\n\n\n public updateOrg(orgId: string, updateOrg: Organization, logoBlob?: Blob | null): Observable {\n const formData = new FormData();\n\n //add the org data to the form data\n const orgJson = JSON.stringify(updateOrg);\n const orgJsonBlob = new Blob([orgJson], {\n type: 'application/json'\n });\n formData.append(\"org\", orgJsonBlob);\n if (logoBlob){\n formData.append(\"logo\", logoBlob);\n }\n return this._httpClient.put(`${environment.connect_api_endpoint_base}/org/${orgId}`, formData)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Updated Organization\", response)\n return response.data as Organization;\n })\n );\n }\n\n public getOrg(orgId: String): Observable {\n return this._httpClient.get(`${environment.connect_api_endpoint_base}/org/${orgId}`)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization\", response)\n return response.data as Organization;\n })\n );\n }\n\n public sendOrgInvite(orgId: string, recipientEmail: string): Observable {\n return this._httpClient.post(`${environment.connect_api_endpoint_base}/org/${orgId}/invite`, {\n recipient_email_address: recipientEmail,\n org_id: orgId\n })\n }\n\n public getOrgTeam(orgId: string): Observable {\n return this._httpClient.get(`${environment.connect_api_endpoint_base}/org/${orgId}/team`)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization Team\", response)\n return response.data as OrganizationTeamMember[];\n })\n );\n }\n\n public createOrgCredentials(orgId: string, apiMode: ApiMode, redirectUrl: string): Observable<{ action: CRUDMode, org_credential: OrganizationCredential, private_key: string}> {\n return this._httpClient.post(`${environment.connect_api_endpoint_base}/org/${orgId}/credentials`, {\n api_mode: apiMode,\n redirect_uri: redirectUrl\n })\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization Credential\", response)\n response.data.action = CRUDMode.Create\n return response.data as { action: CRUDMode, org_credential: OrganizationCredential, private_key: string};\n })\n );\n }\n public updateOrgCredential(orgId: string, orgCredentialId: string, redirectUrl: string): Observable<{ action: CRUDMode, org_credential: OrganizationCredential}> {\n return this._httpClient.put(`${environment.connect_api_endpoint_base}/org/${orgId}/credentials/${orgCredentialId}`, {\n redirect_uri: redirectUrl\n })\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization Credential\", response)\n return { action: CRUDMode.Update, org_credential: response.data} as { action: CRUDMode, org_credential: OrganizationCredential};\n })\n );\n }\n\n public deleteOrgCredential(orgId: string, orgCredentialId: string): Observable<{ action: CRUDMode, org_credential: OrganizationCredential}> {\n return this._httpClient.delete(`${environment.connect_api_endpoint_base}/org/${orgId}/credentials/${orgCredentialId}`)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Deleted Organization Credential\", response)\n return { action: CRUDMode.Delete, org_credential: response.data} as { action: CRUDMode, org_credential: OrganizationCredential};\n })\n );\n }\n\n public getOrgCredentials(orgId: string): Observable {\n return this._httpClient.get(`${environment.connect_api_endpoint_base}/org/${orgId}/credentials`)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization Credentials\", response)\n return response.data as OrganizationCredential[];\n })\n );\n }\n\n\n public createOrgWebhooks(orgId: string, apiMode: ApiMode, endpointUri: string): Observable<{ action: CRUDMode, org_webhook: OrganizationWebhook}> {\n return this._httpClient.post(`${environment.connect_api_endpoint_base}/org/${orgId}/webhooks`, {\n api_mode: apiMode,\n endpoint_uri: endpointUri\n })\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization Credential\", response)\n return {action: CRUDMode.Create, org_webhook: response.data};\n })\n );\n }\n\n public deleteOrgWebhook(orgId: string, orgWebhookId: string): Observable<{ action: CRUDMode, org_webhook: OrganizationWebhook}> {\n return this._httpClient.delete(`${environment.connect_api_endpoint_base}/org/${orgId}/webhooks/${orgWebhookId}`)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Deleted Organization Webhook\", response)\n return { action: CRUDMode.Delete, org_webhook: response.data};\n })\n );\n }\n\n public updateOrgWebhook(orgId: string, orgWebhookId: string, endpointUri: string): Observable<{ action: CRUDMode, org_webhook: OrganizationWebhook}> {\n return this._httpClient.put(`${environment.connect_api_endpoint_base}/org/${orgId}/webhooks/${orgWebhookId}`, {\n endpoint_uri: endpointUri\n })\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization Webhook\", response)\n return { action: CRUDMode.Update, org_webhook: response.data};\n })\n );\n }\n\n public getOrgWebhooks(orgId: string): Observable {\n return this._httpClient.get(`${environment.connect_api_endpoint_base}/org/${orgId}/webhooks`)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization Webhooks\", response)\n return response.data as OrganizationWebhook[];\n })\n );\n }\n\n public getOrgWebhookDeliveries(orgId: string, orgWebhookId: string): Observable<{webhook: OrganizationWebhook, deliveries: OrganizationWebhookDelivery[]}> {\n return this._httpClient.get(`${environment.connect_api_endpoint_base}/org/${orgId}/webhooks/${orgWebhookId}/deliveries`)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Webhooks Deliveries\", response)\n return response.data as {webhook: OrganizationWebhook, deliveries: OrganizationWebhookDelivery[]};\n })\n );\n }\n\n\n /**\n * Generate Stripe Checkout Link to Upgrade Plan\n * @param orgId\n * @constructor\n */\n public upgradePlanCheckoutRedirect(): Observable {\n return this._httpClient.post(`${environment.connect_api_endpoint_base}/store/checkout`, {})\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"redirect URL\", response)\n\n let redirectData = response.data as { \"redirect_url\": string };\n window.location.href = redirectData.redirect_url;\n\n return null\n })\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\nimport {PortalConfig, portalConfigDefaults} from '../models/portal-config';\nimport {merge} from 'lodash';\nimport {ApiMode} from '../app.constants';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PortalConfigService {\n // Private\n public ConfigSubject: BehaviorSubject;\n private _defaultConfig: PortalConfig;\n constructor() {\n this._defaultConfig = portalConfigDefaults\n this.ConfigSubject = new BehaviorSubject(this._defaultConfig);\n }\n\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Setter & getter for config\n */\n set config(value: PortalConfig) {\n // get the current config, merge the new values, and then submit.\n const mergedSettings = merge({}, this.ConfigSubject.getValue(), value);\n\n // Store the value\n if(JSON.stringify(mergedSettings) !== JSON.stringify(this.ConfigSubject.getValue())){\n console.log('updating settings:', mergedSettings)\n this.ConfigSubject.next(mergedSettings);\n }\n }\n\n get config$(): PortalConfig {\n console.log('using cached settings:', this.ConfigSubject.getValue())\n return this.ConfigSubject.getValue()\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Resets the config to the default\n */\n reset(): void {\n // Set the config\n this.config = this._defaultConfig\n }\n\n toggleApiMode(): void {\n this.config = {\n apiMode: this.config$.apiMode === 'live' ? ApiMode.Test : ApiMode.Live\n }\n }\n}\n","export const environment = {\n name: \"development\",\n\n //specify the lighthouse base that we're going to use to authenticate against all our source/providers. Must not have trailing slash\n lighthouse_api_endpoint_base: 'https://lighthouse.fastenhealth.com',\n\n //used to specify the api server that we're going to use (can be relative or absolute). Must not have trailing slash\n // connect_api_endpoint_base: 'https://api.connect-dev.fastenhealth.com/v1',\n // if relative, must start with /\n connect_api_endpoint_base: 'https://api.connect-dev.fastenhealth.com/v1',\n connect_api_jwt_issuer_host: 'https://api.connect-dev.fastenhealth.com/v1',\n\n jwks_uri: 'https://cdn.fastenhealth.com/jwks/fasten-connect/dev.json',\n\n //Stripe pricing table (Test mode in Dev)\n stripe_customer_portal: 'https://billing.stripe.com/p/login/test_bIY7thbZL5g6gXC000'\n // stripe_customer_portal: 'https://billing.stripe.com/p/login/dR6aEYe5h4AYe2I144'\n};\n","// this file is automatically generated by git.version.ts script\nexport const versionInfo = {\n version: 'dev',\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.name != \"local\") {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-ps\": 46235,\n\t\"./ar-ps.js\": 46235,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku-kmr\": 19619,\n\t\"./ku-kmr.js\": 19619,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["ActivatedRouteSnapshot","RouterStateSnapshot","Router","IsAuthenticatedAuthGuard","constructor","authService","router","canActivate","route","state","_this","_asyncToGenerator","jwtPayload","GetJWTPayload","navigate","org_id","console","log","i0","ɵɵinject","i1","AuthService","i2","factory","ɵfac","User","environment","BehaviorSubject","jose","FASTEN_AUTH_COOKIE_NAME","_httpClient","portalConfigService","IsAuthenticatedSubject","SignupWithInvite","newUser","inviteToken","queryParams","resp","post","connect_api_endpoint_base","withCredentials","params","toPromise","Signup","_this2","Signin","email","pass","_this3","currentUser","password","Signout","_this4","publishAuthenticationState","deleteCookie","_this5","authToken","getCookie","jwks","createRemoteJWKSet","URL","jwks_uri","issuerHost","connect_api_jwt_issuer_host","payload","protectedHeader","jwtVerify","issuer","audience","config","user","e","error","IsAuthenticated","_this6","isAuthenticated","name","ca","decodeURIComponent","document","cookie","split","caLen","length","cookieName","c","i","replace","indexOf","substring","setCookie","value","expireDays","path","d","Date","setTime","getTime","expires","toUTCString","cpath","authenticated","next","HttpClient","PortalConfigService","providedIn"],"sourceRoot":"webpack:///","x_google_ignoreList":[49]} \ No newline at end of file +{"version":3,"file":"main.js","mappings":"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B;AAED,wEAAwB,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.constants.ts","./src/app/app.module.ts","./src/app/auth-guards/is-authenticated-auth-guard.ts","./src/app/components/footer/footer.component.ts","./src/app/components/footer/footer.component.html","./src/app/components/header/header.component.ts","./src/app/components/header/header.component.html","./src/app/components/logo-cropper/logo-cropper.component.ts","./src/app/components/logo-cropper/logo-cropper.component.html","./src/app/components/org-credentials-editor/org-credentials-editor.component.ts","./src/app/components/org-credentials-editor/org-credentials-editor.component.html","./src/app/components/org-team-invite/org-team-invite.component.ts","./src/app/components/org-team-invite/org-team-invite.component.html","./src/app/components/org-webhooks-editor/org-webhooks-editor.component.ts","./src/app/components/org-webhooks-editor/org-webhooks-editor.component.html","./src/app/directives/password-confirm-validator.directive.ts","./src/app/models/fasten/organization.ts","./src/app/models/fasten/user.ts","./src/app/models/portal-config.ts","./src/app/pages/account-settings/account-settings.component.ts","./src/app/pages/account-settings/account-settings.component.html","./src/app/pages/auth-reset-request/auth-reset-request.component.ts","./src/app/pages/auth-reset-request/auth-reset-request.component.html","./src/app/pages/auth-reset/auth-reset.component.ts","./src/app/pages/auth-reset/auth-reset.component.html","./src/app/pages/auth-signin/auth-signin.component.ts","./src/app/pages/auth-signin/auth-signin.component.html","./src/app/pages/auth-signup-organization/auth-signup-organization.component.ts","./src/app/pages/auth-signup-organization/auth-signup-organization.component.html","./src/app/pages/auth-signup/auth-signup.component.ts","./src/app/pages/auth-signup/auth-signup.component.html","./src/app/pages/dashboard/dashboard.component.ts","./src/app/pages/dashboard/dashboard.component.html","./src/app/pages/developers/developers.component.ts","./src/app/pages/developers/developers.component.html","./src/app/pages/org-billing/org-billing.component.ts","./src/app/pages/org-billing/org-billing.component.html","./src/app/pages/org-settings/org-settings.component.ts","./src/app/pages/org-settings/org-settings.component.html","./src/app/pages/org-team/org-team.component.ts","./src/app/pages/org-team/org-team.component.html","./src/app/pages/webhook-logs/webhook-logs.component.ts","./src/app/pages/webhook-logs/webhook-logs.component.html","./src/app/services/auth-interceptor.service.ts","./src/app/services/auth.service.ts","./src/app/services/connect.service.ts","./src/app/services/portal-config.service.ts","./src/environments/environment.dev.ts","./src/environments/versions.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport {DevelopersComponent} from './pages/developers/developers.component';\nimport {DashboardComponent} from './pages/dashboard/dashboard.component';\nimport {AuthSigninComponent} from './pages/auth-signin/auth-signin.component';\nimport {AuthSignupComponent} from './pages/auth-signup/auth-signup.component';\nimport {AuthSignupOrganizationComponent} from './pages/auth-signup-organization/auth-signup-organization.component';\nimport {IsAuthenticatedAuthGuard} from './auth-guards/is-authenticated-auth-guard';\nimport {OrgSettingsComponent} from './pages/org-settings/org-settings.component';\nimport {AccountSettingsComponent} from './pages/account-settings/account-settings.component';\nimport {WebhookLogsComponent} from './pages/webhook-logs/webhook-logs.component';\nimport {OrgBillingComponent} from './pages/org-billing/org-billing.component';\nimport {OrgTeamComponent} from './pages/org-team/org-team.component';\nimport {AuthResetRequestComponent} from './pages/auth-reset-request/auth-reset-request.component';\nimport {AuthResetComponent} from './pages/auth-reset/auth-reset.component';\n\nconst routes: Routes = [\n\n { path: 'auth/signin', component: AuthSigninComponent },\n { path: 'auth/signup', component: AuthSignupComponent },\n { path: 'auth/invite', component: AuthSignupComponent },\n { path: 'auth/signup/org', component: AuthSignupOrganizationComponent },\n { path: 'auth/reset/request', component: AuthResetRequestComponent },\n { path: 'auth/reset', component: AuthResetComponent },\n\n { path: '', redirectTo: '/developers', pathMatch: 'full' },\n { path: 'dashboard', component: DashboardComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n { path: 'developers', component: DevelopersComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n { path: 'developers/webhooks/:webhookId/logs', component: WebhookLogsComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n { path: 'org/settings', component: OrgSettingsComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n { path: 'org/billing', component: OrgBillingComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n { path: 'org/team', component: OrgTeamComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n { path: 'account/settings', component: AccountSettingsComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n\n //must be at bottom of list\n { path: '**', redirectTo: 'developers' },\n\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component } from '@angular/core';\nimport {NavigationEnd, Router, RouterEvent} from '@angular/router';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n title = 'fastenhealth';\n\n showHeader:boolean = false;\n showFooter:boolean = true;\n\n constructor(\n private router: Router,\n // private toastService: ToastService,\n private modalService: NgbModal\n ) {}\n\n ngOnInit() {\n\n // navbar backdrop for mobile only\n const navbarBackdrop = document.createElement('div');\n navbarBackdrop.classList.add('az-navbar-backdrop');\n document.querySelector('body')?.appendChild(navbarBackdrop);\n\n //determine if we should show the header\n this.router.events.subscribe(event => this.routerEvent(event));\n }\n\n routerEvent(event: any) {\n if (event instanceof NavigationEnd) {\n //modify header\n if (event.url?.startsWith('/auth') || event.url?.startsWith('/desktop')) {\n this.showHeader = false;\n } else {\n // console.log(\"NU\")\n this.showHeader = true;\n }\n\n // close all open modals when route change\n this.modalService.dismissAll();\n }\n }\n}\n","
\n \n
\n \n
\n \n
\n","export const URL_PATTERN = /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$/;\n\n// https://medium.com/@ojiofor/angular-reactive-forms-strong-password-validation-8dbcce92eb6c\n// Minimum Length: A strong password should have a minimum length, typically at least 8 characters.\n// Uppercase Letters: It should contain at least one uppercase letter.\n// Lowercase Letters: It should contain at least one lowercase letter.\n// Numbers: It should contain at least one number.\n// Special Characters: It should contain at least one special character (e.g., !, @, #, $).\nexport const STRONG_PASSWORD_PATTERN = /^(?=[^A-Z]*[A-Z])(?=[^a-z]*[a-z])(?=\\D*\\d).{8,}$/;\n\nexport enum ApiMode {\n Live = 'live',\n Test = 'test',\n}\n\nexport enum CredentialStatus {\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport enum WebhookStatus {\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport enum WebhookDeliveryStatus {\n Success = 'success',\n Failure = 'failure',\n}\n\nexport enum CRUDMode {\n Create = 'create',\n Update = 'update',\n Delete = 'delete',\n}\n\nexport enum EventTypes{\n EventTypesPatientEHIExportFailed = \"patient.ehi_export_failed\",\n EventTypesPatientEHIExportSuccess = \"patient.ehi_export_success\",\n EventTypesPatientAuthorizationRevoked = \"patient.authorization_revoked\",\n EventTypesWebhookTest = \"webhook.test\",\n}\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\n\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\nimport { HighlightModule, HIGHLIGHT_OPTIONS } from 'ngx-highlightjs';\n\nimport {NgbModule} from '@ng-bootstrap/ng-bootstrap';\nimport {InfiniteScrollModule} from 'ngx-infinite-scroll';\nimport {FontAwesomeModule, FaIconLibrary} from '@fortawesome/angular-fontawesome';\nimport {HeaderComponent} from './components/header/header.component';\nimport {FooterComponent} from './components/footer/footer.component';\nimport { DevelopersComponent } from './pages/developers/developers.component';\nimport { DashboardComponent } from './pages/dashboard/dashboard.component';\nimport { AuthSigninComponent } from './pages/auth-signin/auth-signin.component';\nimport { AuthSignupComponent } from './pages/auth-signup/auth-signup.component';\nimport { AuthSignupOrganizationComponent } from './pages/auth-signup-organization/auth-signup-organization.component';\nimport { PasswordConfirmValidatorDirective } from './directives/password-confirm-validator.directive';\nimport {IsAuthenticatedAuthGuard} from './auth-guards/is-authenticated-auth-guard';\nimport {Router} from '@angular/router';\nimport {AuthService} from './services/auth.service';\nimport {AuthInterceptorService} from './services/auth-interceptor.service';\nimport { ImageCropperModule } from 'ngx-image-cropper';\nimport { LogoCropperComponent } from './components/logo-cropper/logo-cropper.component';\nimport { NgChartsModule } from 'ng2-charts';\nimport {MomentModule} from 'ngx-moment';\nimport { OrgSettingsComponent } from './pages/org-settings/org-settings.component';\nimport { AccountSettingsComponent } from './pages/account-settings/account-settings.component';\nimport { OrgCredentialsEditorComponent } from './components/org-credentials-editor/org-credentials-editor.component';\nimport { OrgWebhooksEditorComponent } from './components/org-webhooks-editor/org-webhooks-editor.component';\nimport { WebhookLogsComponent } from './pages/webhook-logs/webhook-logs.component';\nimport { OrgBillingComponent } from './pages/org-billing/org-billing.component';\nimport { OrgTeamComponent } from './pages/org-team/org-team.component';\nimport { OrgTeamInviteComponent } from './components/org-team-invite/org-team-invite.component';\nimport { AuthResetRequestComponent } from './pages/auth-reset-request/auth-reset-request.component';\nimport { AuthResetComponent } from './pages/auth-reset/auth-reset.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n HeaderComponent,\n FooterComponent,\n DevelopersComponent,\n DashboardComponent,\n AuthSigninComponent,\n AuthSignupComponent,\n AuthSignupOrganizationComponent,\n LogoCropperComponent,\n OrgSettingsComponent,\n AccountSettingsComponent,\n OrgCredentialsEditorComponent,\n OrgWebhooksEditorComponent,\n WebhookLogsComponent,\n OrgBillingComponent,\n OrgTeamComponent,\n OrgTeamInviteComponent,\n AuthResetRequestComponent,\n AuthResetComponent,\n ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n BrowserModule,\n HttpClientModule,\n AppRoutingModule,\n PasswordConfirmValidatorDirective,\n\n NgbModule,\n NgChartsModule,\n InfiniteScrollModule,\n FontAwesomeModule,\n ImageCropperModule,\n MomentModule,\n HighlightModule\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptorService,\n multi: true,\n deps: [AuthService, Router]\n },\n IsAuthenticatedAuthGuard,\n {\n provide: HIGHLIGHT_OPTIONS,\n useValue: {\n fullLibraryLoader: () => import('highlight.js'),\n }\n }\n ],\n bootstrap: [AppComponent],\n schemas: [ CUSTOM_ELEMENTS_SCHEMA ]\n})\nexport class AppModule {\n constructor(library: FaIconLibrary) {\n library.addIconPacks(fas, far);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router} from '@angular/router';\nimport {AuthService} from '../services/auth.service';\n\n@Injectable()\nexport class IsAuthenticatedAuthGuard implements CanActivate {\n constructor(private authService: AuthService, private router: Router) {\n\n }\n\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\n let jwtPayload = await this.authService.GetJWTPayload()\n\n //check if the user is authenticated, if not, redirect to login\n if (!jwtPayload) {\n return await this.router.navigate(['/auth/signin']);\n } else if(jwtPayload.org_id == '' || jwtPayload.org_id == null){\n console.log(\"User is not associated with an organization, redirecting to org signup\", jwtPayload)\n return await this.router.navigate(['/auth/signup/org']);\n }\n\n\n // continue as normal\n return true\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport {versionInfo} from '../../../environments/versions';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent implements OnInit {\n appVersion: string;\n\n constructor() {\n this.appVersion = versionInfo.version\n }\n\n ngOnInit() {\n }\n\n}\n","\n","import {Component, OnDestroy, OnInit} from '@angular/core';\nimport {AuthService} from '../../services/auth.service';\nimport {Router} from '@angular/router';\nimport {ConnectService} from '../../services/connect.service';\nimport {PortalConfig} from '../../models/portal-config';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {Organization} from '../../models/fasten/organization';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n\n constructor(\n private authService: AuthService,\n private connectService: ConnectService,\n public portalConfigService: PortalConfigService,\n private router: Router,\n ) { }\n\n ngOnInit() {\n\n this.portalConfigService.ConfigSubject.subscribe((config: PortalConfig) => {\n console.log(\"Configuration changed:\", config)\n if(config.user && config.user.org_id && !config.org){\n console.log(\"attempt to download org information, and store in config\")\n this.connectService.getOrg(config.user.org_id).subscribe((org: Organization )=>{\n console.log(\"org:\", org)\n this.portalConfigService.config = {org: org}\n })\n }\n });\n\n }\n\n toggleHeaderMenu(event: Event) {\n event.preventDefault();\n document.querySelector('body')?.classList.toggle('az-header-menu-show');\n }\n closeMenu(e: Event) {\n (e.target as HTMLElement).closest('.dropdown')?.classList.remove('show');\n (e.target as HTMLElement).closest('.dropdown .dropdown-menu')?.classList.remove('show');\n }\n\n signOut(event: Event) {\n this.authService.Signout().then(r => {\n return this.router.navigate(['/auth/signin'])\n })\n }\n}\n","
\n Test Mode Enabled\n You're using test data. You will only be able to access sandbox accounts.\n
\n\n
\n
\n
\n \n \n \n \n
\n
\n
\n \n \"fasten\"\n \n ×\n
\n \n
\n
\n\n
\n \n
\n
\n \n
\n
Notifications
\n

Background Jobs & Updates

\n \n
\n
\n
\n \n \"\"\n \n
\n
\n \n
\n
\n
\n \"\"\n
\n
{{portalConfigService.config$.user?.name}}
\n
\n\n Profile Settings\n Org Settings\n Get Support\n Sign Out\n
\n
\n
\n
\n
\n\n","import { Component, OnInit } from '@angular/core';\nimport {ImageCroppedEvent, LoadedImage} from 'ngx-image-cropper';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {NgbActiveModal, NgbModal} from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-logo-cropper',\n templateUrl: './logo-cropper.component.html',\n styleUrls: ['./logo-cropper.component.scss']\n})\nexport class LogoCropperComponent implements OnInit {\n\n //image cropper\n imageChangedEvent: any = '';\n croppedImage: any = '';\n croppedImageEvent: ImageCroppedEvent | null = null;\n submitLogoLoading = false;\n\n constructor(\n public activeModal: NgbActiveModal,\n private modalService: NgbModal,\n private sanitizer: DomSanitizer\n ) { }\n\n ngOnInit(): void {\n }\n\n fileChangeEvent(event: any): void {\n this.imageChangedEvent = event;\n }\n imageCropped(event: ImageCroppedEvent) {\n this.croppedImage = this.sanitizer.bypassSecurityTrustUrl(event.objectUrl!);\n // event.blob can be used to upload the cropped image\n this.croppedImageEvent = event;\n }\n imageLoaded(image: LoadedImage) {\n // show cropper\n }\n cropperReady() {\n // cropper ready\n }\n loadImageFailed() {\n // show message\n }\n\n onSubmit() {\n console.log(this.croppedImage)\n this.activeModal.close(this.croppedImageEvent)\n }\n}\n","
\n

Organization Logo

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

Fasten Connect requires a logo for display when connecting providers

\n \n\n \n\n
\n
\n
\n\n
\n \n \n
\n","import {Component, Input, OnInit} from '@angular/core';\nimport {ApiMode, URL_PATTERN} from '../../app.constants';\nimport {OrganizationCredential} from '../../models/fasten/organization-credential';\nimport {ConnectService} from '../../services/connect.service';\nimport {Organization} from '../../models/fasten/organization';\nimport {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-org-credentials-editor',\n templateUrl: './org-credentials-editor.component.html',\n styleUrls: ['./org-credentials-editor.component.scss']\n})\nexport class OrgCredentialsEditorComponent implements OnInit {\n urlPattern = URL_PATTERN\n\n @Input() editorMode: 'create' | 'edit' = 'create'\n @Input() org: Organization | null = null\n @Input() apiMode: ApiMode = ApiMode.Test\n @Input() orgCredential: OrganizationCredential | null = null //only set when editing\n\n submitOrgCredentialLoading: boolean = false\n deleteOrgCredentialLoading: boolean = false\n redirectUri: string = \"\"\n submitOrgCredentialError: string = ''\n\n\n constructor(\n private connectService: ConnectService,\n public activeModal: NgbActiveModal\n ) { }\n\n ngOnInit(): void {\n if (this.editorMode === 'edit' && this.orgCredential) {\n this.redirectUri = this.orgCredential.redirect_uri\n }\n }\n\n public deleteOrgCredential() {\n if (confirm(\"Are you sure you'd like to delete these API Credentials?\") == true) {\n this.deleteOrgCredentialLoading = true\n\n if(!this.orgCredential?.id){\n this.deleteOrgCredentialLoading = false\n this.submitOrgCredentialError = \"Unknown Organization Credential ID\"\n return\n }\n\n this.connectService.deleteOrgCredential(this.org!.id, this.orgCredential.id).subscribe((result) => {\n console.log(\"Deleted Org Credential\", result)\n this.deleteOrgCredentialLoading = false\n this.activeModal.close(result)\n }, (error: any) => {\n console.log(\"Error Updating Org Credential\", error)\n this.deleteOrgCredentialLoading = false\n this.submitOrgCredentialError = JSON.stringify(error)\n\n },\n () => {\n console.log(\"Completed Deleting Org Credential\")\n this.deleteOrgCredentialLoading = false\n })\n\n }\n }\n\n public updateOrgCredential() {\n this.submitOrgCredentialLoading = true\n this.submitOrgCredentialError = ''\n\n if(!this.orgCredential?.id){\n this.submitOrgCredentialLoading = false\n this.submitOrgCredentialError = \"Unknown Organization Credential ID\"\n return\n }\n if(this.redirectUri == this.orgCredential.redirect_uri){\n this.submitOrgCredentialLoading = false\n this.submitOrgCredentialError = \"Redirect URI has not changed\"\n }\n\n this.connectService.updateOrgCredential(this.org!.id, this.orgCredential.id, this.redirectUri).subscribe((result) => {\n console.log(\"Updated Org Credential\", result)\n this.submitOrgCredentialLoading = false\n this.activeModal.close(result)\n }, (error: any) => {\n console.log(\"Error Updating Org Credential\", error)\n this.submitOrgCredentialLoading = false\n this.submitOrgCredentialError = JSON.stringify(error)\n\n },\n () => {\n console.log(\"Completed Updating Org Credential\")\n this.submitOrgCredentialLoading = false\n })\n }\n\n public createOrgCredential() {\n this.submitOrgCredentialLoading = true\n this.submitOrgCredentialError = ''\n\n if(!this.org?.id){\n this.submitOrgCredentialLoading = false\n this.submitOrgCredentialError = \"Unknown Organization ID\"\n return\n }\n\n\n this.connectService.createOrgCredentials(this.org.id, this.apiMode, this.redirectUri).subscribe((result) => {\n console.log(\"Added Org Credential\", result)\n this.submitOrgCredentialLoading = false\n this.activeModal.close(result)\n }, (error: any) => {\n console.log(\"Error Adding Org Credential\", error)\n this.submitOrgCredentialLoading = false\n this.submitOrgCredentialError = JSON.stringify(error)\n\n },\n () => {\n console.log(\"Completed Adding Org Credential\")\n this.submitOrgCredentialLoading = false\n })\n }\n\n}\n","
\n

{{editorMode == 'create' ? 'Create' : 'Update' }} Credential

\n \n
\n
\n

\n API Credentials are used by your application to access the Fasten Connect API\n

\n\n
\n
\n \n
\n \n
\n
\n\n
\n\n
\n Redirect Url is required.\n
\n
\n Redirect Url must be a valid url starting with https://\n
\n
\n\n
\n {{submitOrgCredentialError}}\n
\n\n
\n
\n
\n
\n \n \n\n \n \n\n \n \n \n
\n
\n","import {Component, Input, OnInit} from '@angular/core';\nimport {Organization} from '../../models/fasten/organization';\nimport {ConnectService} from '../../services/connect.service';\nimport {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';\nimport {PortalConfigService} from '../../services/portal-config.service';\n\n@Component({\n selector: 'app-org-team-invite',\n templateUrl: './org-team-invite.component.html',\n styleUrls: ['./org-team-invite.component.scss']\n})\nexport class OrgTeamInviteComponent implements OnInit {\n @Input() org: Organization | null = null\n\n teamMemberEmail: string = ''\n\n submitOrgInviteLoading: boolean = false\n submitOrgInviteError: string = ''\n\n constructor(\n public portalConfig: PortalConfigService,\n private connectService: ConnectService,\n public activeModal: NgbActiveModal\n ) { }\n\n ngOnInit(): void {\n }\n\n public sendOrgTeamInvite() {\n this.submitOrgInviteLoading = true\n this.submitOrgInviteError = ''\n\n if(!this.portalConfig.config$.org?.id){\n this.submitOrgInviteLoading = false\n this.submitOrgInviteError = \"Unknown Organization ID\"\n return\n }\n\n\n this.connectService.sendOrgInvite(this.portalConfig.config$.org?.id, this.teamMemberEmail).subscribe((result) => {\n this.submitOrgInviteLoading = false\n this.activeModal.close(true)\n }, (error: any) => {\n console.log(\"Error Adding Org Webhook\", error)\n this.submitOrgInviteLoading = false\n this.submitOrgInviteError = JSON.stringify(error)\n\n })\n }\n}\n","
\n

Invite Team Member

\n \n
\n
\n\n
\n Warning Fasten Health high discourages email address from free domains such as Gmail due to access to sensitive information.\n
\n\n
\n
\n \n
\n \n
\n
\n\n
\n\n
\n Email Address is required\n
\n
\n\n
\n {{submitOrgInviteError}}\n
\n\n
\n
\n
\n
\n \n
\n
\n","import {Component, Input, OnInit} from '@angular/core';\nimport {ApiMode, URL_PATTERN} from '../../app.constants';\nimport {Organization} from '../../models/fasten/organization';\nimport {OrganizationCredential} from '../../models/fasten/organization-credential';\nimport {OrganizationWebhook} from '../../models/fasten/organization-webhook';\nimport {ConnectService} from '../../services/connect.service';\nimport {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-org-webhooks-editor',\n templateUrl: './org-webhooks-editor.component.html',\n styleUrls: ['./org-webhooks-editor.component.scss']\n})\nexport class OrgWebhooksEditorComponent implements OnInit {\n urlPattern = URL_PATTERN\n\n @Input() editorMode: 'create' | 'edit' = 'create'\n @Input() org: Organization | null = null\n @Input() apiMode: ApiMode = ApiMode.Test\n @Input() orgWebhook: OrganizationWebhook | null = null //only set when editing\n\n submitOrgWebhookLoading: boolean = false\n deleteOrgWebhookLoading: boolean = false\n endpointUri: string = \"\"\n submitOrgWebhookError: string = ''\n\n constructor(\n private connectService: ConnectService,\n public activeModal: NgbActiveModal\n ) { }\n\n ngOnInit(): void {\n if (this.editorMode === 'edit' && this.orgWebhook) {\n this.endpointUri = this.orgWebhook.endpoint_uri\n }\n }\n\n public deleteOrgWebhook() {\n if (confirm(\"Are you sure you'd like to delete this Webhook?\") == true) {\n this.deleteOrgWebhookLoading = true\n\n if(!this.orgWebhook?.id){\n this.deleteOrgWebhookLoading = false\n this.submitOrgWebhookError = \"Unknown Organization Webhook ID\"\n return\n }\n\n this.connectService.deleteOrgWebhook(this.org!.id, this.orgWebhook.id).subscribe((result) => {\n console.log(\"Deleted Org Webhook\", result)\n this.deleteOrgWebhookLoading = false\n this.activeModal.close(result)\n }, (error: any) => {\n console.log(\"Error Updating Org Webhook\", error)\n this.deleteOrgWebhookLoading = false\n this.submitOrgWebhookError = JSON.stringify(error)\n\n },\n () => {\n console.log(\"Completed Deleting Org Webhook\")\n this.deleteOrgWebhookLoading = false\n })\n\n }\n }\n\n public updateOrgWebhook() {\n this.submitOrgWebhookLoading = true\n this.submitOrgWebhookError = ''\n\n if(!this.orgWebhook?.id){\n this.submitOrgWebhookLoading = false\n this.submitOrgWebhookError = \"Unknown Organization Webhook ID\"\n return\n }\n if(this.endpointUri == this.orgWebhook.endpoint_uri){\n this.submitOrgWebhookLoading = false\n this.submitOrgWebhookError = \"Endpoint URI has not changed\"\n }\n\n this.connectService.updateOrgWebhook(this.org!.id, this.orgWebhook.id, this.endpointUri).subscribe((result) => {\n console.log(\"Updated Org Webhook\", result)\n this.submitOrgWebhookLoading = false\n this.activeModal.close(result)\n }, (error: any) => {\n console.log(\"Error Updating Org Webhook\", error)\n this.submitOrgWebhookLoading = false\n this.submitOrgWebhookError = JSON.stringify(error)\n\n },\n () => {\n console.log(\"Completed Updating Org Webhook\")\n this.submitOrgWebhookLoading = false\n })\n }\n\n public createOrgWebhook() {\n this.submitOrgWebhookLoading = true\n this.submitOrgWebhookError = ''\n\n if(!this.org?.id){\n this.submitOrgWebhookLoading = false\n this.submitOrgWebhookError = \"Unknown Organization ID\"\n return\n }\n\n\n this.connectService.createOrgWebhooks(this.org.id, this.apiMode!, this.endpointUri).subscribe((result) => {\n this.submitOrgWebhookLoading = false\n this.activeModal.close(result)\n }, (error: any) => {\n console.log(\"Error Adding Org Webhook\", error)\n this.submitOrgWebhookLoading = false\n this.submitOrgWebhookError = JSON.stringify(error)\n\n },\n () => {\n console.log(\"Completed Adding Org Webhook\")\n this.submitOrgWebhookLoading = false\n })\n }\n\n}\n","
\n

{{editorMode == 'create' ? 'Create' : 'Update' }} Webhook

\n \n
\n
\n

\n Webhooks allow Fasten Connect to notify you once patient medical records have been retrieved and are ready for download.\n

\n

\n\n

\n\n
\n Testing If you don't have an environment to receive webhooks, you can use requestbin.com to test.\n
\n\n
\n
\n \n
\n \n
\n
\n\n
\n\n
\n Endpoint Url is required\n
\n
\n Endpoint Url must be a valid url starting with https://\n
\n
\n\n
\n {{submitOrgWebhookError}}\n
\n\n
\n
\n
\n
\n \n \n\n \n \n\n \n \n \n
\n
\n","import { Directive } from '@angular/core';\nimport {AbstractControl, NG_VALIDATORS, ValidationErrors, Validator} from '@angular/forms';\n\n@Directive({\n selector: '[passwordConfirmValidator]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: PasswordConfirmValidatorDirective,\n multi: true,\n },\n ],\n standalone: true,\n})\nexport class PasswordConfirmValidatorDirective implements Validator {\n\n validate(control: AbstractControl): ValidationErrors | null {\n const password = control.get('password');\n const passwordConfirm = control.get('password_confirm');\n\n return password && passwordConfirm && password.value !== passwordConfirm.value\n ? { password_confirm: true }\n : null;\n }\n}\n","\nexport class Organization {\n id: string = \"\"\n name: string = \"\"\n logo_uri: string = \"\"\n privacy_policy_uri: string = \"\"\n website_uri: string = \"\"\n terms_and_conditions_uri?: string = \"\"\n company_size?: string = \"\"\n plan?: string = \"\"\n}\n","export class User {\n id?: string\n name?: string\n email?: string\n password?: string\n org_id?: string\n\n //not sent to the server\n password_confirm?: string = \"\"\n agree_terms?: boolean = false\n}\n","/**\n * AppConfig interface. Update this interface to strictly type your config\n * object.\n */\nimport {ApiMode} from '../app.constants';\nimport {Organization} from './fasten/organization';\nimport {User} from './fasten/user';\n\nexport interface PortalConfig {\n apiMode?: ApiMode;\n org?: Organization;\n user?: User\n}\n\n/**\n * Default configuration for the entire application. This object is used by\n * \"PortalConfigService\" to set the default configuration.\n */\nexport const portalConfigDefaults: PortalConfig = {\n apiMode: ApiMode.Test\n};\n","import { Component, OnInit } from '@angular/core';\nimport {PortalConfigService} from '../../services/portal-config.service';\n\n@Component({\n selector: 'app-account-settings',\n templateUrl: './account-settings.component.html',\n styleUrls: ['./account-settings.component.scss']\n})\nexport class AccountSettingsComponent implements OnInit {\n\n constructor(\n public portalConfig: PortalConfigService,\n ) { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n\n\n
\n
\n

{{portalConfig.config$?.user?.name}}

\n

{{portalConfig.config$?.user?.email}}

\n
\n
\n\n\n
\n
\n
\n
\n Update Password\n
\n\n
\n

Use this form to change the password you use to login to your account

\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n \n\n
\n\n
\n
\n\n\n
\n\n
\n
\n Update Email Address\n
\n\n
\n

Use this form to change the email address associated with your account.

\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n \n
\n
\n
\n
\n\n
\n","import { Component, OnInit } from '@angular/core';\nimport {AuthService} from '../../services/auth.service';\n\n@Component({\n selector: 'app-auth-reset-request',\n templateUrl: './auth-reset-request.component.html',\n styleUrls: ['./auth-reset-request.component.scss']\n})\nexport class AuthResetRequestComponent implements OnInit {\n email: string = ''\n loading: boolean = false\n errorMsg: string = \"\"\n successMsg: string = \"\"\n\n constructor(private authService: AuthService) { }\n\n ngOnInit(): void {\n }\n\n onSubmit() {\n this.loading = true\n\n this.authService.UserResetRequest(this.email).then(\n (resp) => {\n console.log(\"User Password Reset Request Created\", resp)\n this.errorMsg = \"\"\n this.successMsg = \"Password reset request sent. Check your email for further instructions.\"\n this.loading = false;\n },\n (err) => {\n console.error(\"Error submitting password reset request\", err)\n this.errorMsg = \"An error occurred while submitting password reset request.\\nPlease try again later or contact support for assistance.\"\n this.successMsg = \"\"\n this.loading = false\n }\n )\n }\n}\n","\n","import { Component, OnInit } from '@angular/core';\nimport {AuthService} from '../../services/auth.service';\nimport {Router} from '@angular/router';\n\n@Component({\n selector: 'app-auth-reset',\n templateUrl: './auth-reset.component.html',\n styleUrls: ['./auth-reset.component.scss']\n})\nexport class AuthResetComponent implements OnInit {\n password: string = \"\"\n confirmPassword: string = \"\"\n loading: boolean = false\n resetToken: string | null = \"\"\n errorMsg: string = \"\"\n\n constructor(private authService: AuthService, private router: Router) { }\n\n ngOnInit(): void {\n const urlParams = new URLSearchParams(window.location.search);\n this.resetToken = urlParams.get('token');\n }\n\n onSubmit() {\n if(this.password != this.confirmPassword){\n this.errorMsg = \"passwords do not match\"\n return\n }\n\n if(!this.resetToken){\n this.errorMsg = \"no reset token provided\"\n return\n }\n\n this.loading = true\n\n this.authService.UserReset(this.password, this.resetToken)\n .then(() => {\n this.loading = false\n this.router.navigateByUrl('/dashboard')\n })\n .catch((err)=>{\n this.loading = false\n this.errorMsg = \"an error occurred during password reset\"\n console.log(err)\n })\n }\n\n}\n","\n","import {Component, OnInit} from '@angular/core';\nimport {User} from '../../models/fasten/user';\nimport {Router} from '@angular/router';\nimport {AuthService} from '../../services/auth.service';\n\n@Component({\n selector: 'app-auth-signin',\n templateUrl: './auth-signin.component.html',\n styleUrls: ['./auth-signin.component.scss']\n})\nexport class AuthSigninComponent implements OnInit {\n loading: boolean = false\n\n submitted: boolean = false\n existingUser: User = new User()\n errorMsg: string = \"\"\n\n constructor(\n private authService: AuthService,\n private router: Router,\n ) { }\n\n ngOnInit(): void {}\n\n signinSubmit(){\n this.submitted = true;\n this.loading = true\n\n this.authService.Signin(this.existingUser.email!, this.existingUser.password!)\n .then(() => {\n this.loading = false\n this.router.navigateByUrl('/dashboard')\n })\n .catch((err)=>{\n this.loading = false\n if(err?.name){\n this.errorMsg = \"email or password is incorrect\"\n } else{\n this.errorMsg = \"an unknown error occurred during sign-in\"\n }\n // const toastNotification = new ToastNotification()\n // toastNotification.type = ToastType.Error\n // toastNotification.message = this.errorMsg\n // this.toastService.show(toastNotification)\n })\n }\n}\n","\n","import { Component, OnInit } from '@angular/core';\nimport {AuthService} from '../../services/auth.service';\nimport {Router} from '@angular/router';\nimport {Organization} from '../../models/fasten/organization';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {ImageCroppedEvent, LoadedImage} from 'ngx-image-cropper';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {LogoCropperComponent} from '../../components/logo-cropper/logo-cropper.component';\nimport {ConnectService} from '../../services/connect.service';\nimport {URL_PATTERN} from '../../app.constants';\n\n@Component({\n selector: 'app-auth-signup-organization',\n templateUrl: './auth-signup-organization.component.html',\n styleUrls: ['./auth-signup-organization.component.scss']\n})\nexport class AuthSignupOrganizationComponent implements OnInit {\n\n gridImages: string[] = [\n \"f8f9ce28-d79b-4b54-9f7d-3f0aaba88c2c.png\",\n \"89bb6993-b806-49a2-84e2-6e70705c504a.png\",\n \"9fcc4529-7dc9-4c66-9198-574f978c8bb7.png\",\n \"68952002-f17e-4086-aae5-841241b194dd.png\",\n \"767b97b9-4538-433f-ab7a-14ccb0053323.png\",\n \"74078880-4084-430e-bc6c-223e5990cef8.png\",\n \"10668246-1077-4c1d-a6ce-0557c9476e77.png\",\n \"f7e4fc08-c6f6-426b-be98-d60aa36d3b8b.png\",\n \"65308856-beaa-46a0-9775-20c6c9322add.png\",\n \"6e901e85-8f45-4c60-8d1f-12621aad07f1.png\",\n \"e675376d-03de-4e66-8196-eaccda536ad5.png\",\n \"a36fd256-2751-464f-b6d7-418279595b1e.png\",\n \"c623f37e-6399-4a13-909f-3d9886130673.png\",\n \"467592a3-7f5f-4258-909e-a99ca971ce15.png\",\n \"5ad8a5ab-6570-4f1e-8002-30a051ec52c2.png\",\n \"ddbef50d-3940-4411-9dea-6bf759704c6e.png\",\n \"fc2dcde0-0848-4b09-aeaf-bfef58120de9.png\",\n \"347c0df7-5817-470e-8b28-2802f90461f6.png\",\n \"ec5bc181-5466-4ebd-9e42-471593b8d104.png\",\n \"d3b1eba5-ec53-4e6d-9600-9510afbc4dda.png\",\n \"16483fad-5c24-4766-ad53-bd78551f0768.png\",\n \"ae8026ed-e74b-4bf3-9f53-458c250420ba.png\",\n \"907d39f4-6b30-46cd-b0c8-f525c636c933.png\",\n \"6b076b97-18f7-452d-9f09-20dffb01729f.png\",\n \"c7feccc5-ad10-4aeb-91b0-12b6b93feeba.png\",\n \"c66a7c1e-21f2-44aa-9486-cdfb5ad699ba.png\",\n \"82af2366-1d27-4665-ba99-e5a60a75205a.png\",\n \"2289e832-64da-47d9-82ef-1f4e15ccf627.png\",\n \"26768525-2b04-4715-9159-3679598289a3.png\",\n \"80af4067-77e9-4c13-b617-4f370dc14d3f.png\",\n \"ec6c5f06-d7f8-4eac-8e2f-6cda4536d8ab.png\",\n \"93ee1d70-6eaa-487b-84d1-cc18bcda253f.png\",\n \"6d5ba4db-4b63-4277-bb80-dc278dbe28bd.png\",\n \"b22e4e71-1121-4fca-b158-efbb906918e9.png\",\n \"49fd46d0-05ce-4c7d-923c-3891935f6947.png\",\n \"19652f82-98b9-44e6-9964-e426192a723d.png\",\n \"314a06fc-4efc-4e34-8048-565455e4f3e1.png\",\n \"8123cfc7-53b6-45d6-ace3-b64d4bd3234b.png\",\n \"35159b16-a1b5-45ba-9d4f-83f471d5f44b.png\",\n \"d6c0016f-aaec-4764-ac28-7a6eda64b693.png\",\n \"d09c7811-213b-4c19-9154-48e57174f239.png\",\n \"2bcdcc4c-0f13-4edb-85f4-2c9f4f948df0.png\",\n \"4a4720a0-0efc-4b63-a83d-a8cc5b1c15ad.png\",\n \"98f680b2-15c4-4854-902b-ed6b69425164.png\",\n \"32283b0a-3c36-4f92-b9c2-dd2edf3a3db1.png\",\n \"d56e9e82-3f62-4ce8-8a55-27da90fbe183.png\",\n \"4fc37973-195c-4e25-8751-331a3b88e685.png\",\n \"fb0bb8fa-8336-4b26-bdc5-7f8a432c1d94.png\",\n \"7ca2d9d1-d300-479d-ab85-f956b6ef60de.png\",\n \"4fd8bb55-bb2d-4748-a134-bbab7a22e4db.png\",\n \"63cde119-f9d8-468d-900a-1976211739f8.png\",\n \"e8290a84-88a1-4eac-a5b4-b2c63146b2c9.png\",\n \"13b592f9-5c8b-4f90-aa54-5ab57a29ea89.png\",\n \"0398ce8e-9200-430c-a654-f2057bc9a2d4.png\",\n \"92b1d310-99a1-4de2-99b6-975eaf5a3744.png\",\n \"418d563f-bd82-473f-a738-cd9775db4e56.png\",\n \"8fb52893-1e93-4fea-adba-838e9b42e4d2.png\",\n \"acec8466-8b0a-4adc-9929-561b7136fccb.png\",\n \"3d01addb-1103-49ca-9c74-3027112e4aa8.png\",\n \"5f5973bf-d11c-4f99-9b86-b1303cea3503.png\",\n \"1317665c-e5c4-48b8-b3a5-2a90aa0283d7.png\",\n \"48f2153e-6f4a-4da5-99a5-775a888c218a.png\",\n \"34451b52-0f65-4e1a-91aa-5f2b1420f4b7.png\",\n \"d3a10e7c-63c1-4309-b801-e42ce6e575d5.png\",\n \"4c74937f-c30d-49c8-993e-c5a133f92414.png\",\n \"5c4c748f-acd5-4fc8-b6cd-a37f629709fb.png\",\n \"0293e1f1-291e-48ad-a5d0-cc7fcb062603.png\",\n \"407f63d2-8fc7-42dd-9a46-23c76693789b.png\",\n \"6d5de058-cc60-4f07-89db-bcc6817bb115.png\",\n \"a1c9be32-3539-4390-bf01-828d5fb9f57d.png\",\n \"562c8d0a-e524-49d7-81c2-70b34b4b9a15.png\",\n \"8023b832-eaca-414a-9a53-c2fe423087d2.png\",\n \"e8e73128-7722-4514-9684-1c17d43d880e.png\",\n \"24cb81a7-dd2b-4b07-808b-f6611fea0393.png\",\n \"5266bc57-58db-4171-8d73-a2a40ff380d2.png\",\n \"9752c0a1-49f5-4842-8554-bfa3a6a3c3b4.png\",\n \"df4a6dd3-672f-4547-8ade-609df28dcda9.png\",\n \"921bb517-fdc9-4ca2-b9fc-a9e17e6cb8fc.png\",\n \"e3f229a1-8637-49b1-abaa-84d228aff34a.png\",\n \"53f22687-4635-4bff-99e2-2eacdc402359.png\",\n \"c7fe32b2-97c6-45f7-90f8-47213c9b85f1.png\",\n \"a7a87c72-1d8a-42d6-b0a4-c72b7dd8933a.png\",\n \"2630415e-1871-437a-84de-52ad7ce88f3e.png\",\n \"b53ff282-4725-45f7-a436-89f77320f062.png\",\n ]\n\n loading: boolean = false\n\n urlPattern = URL_PATTERN\n\n submitted: boolean = false\n newOrg: Organization = new Organization()\n errorMsg: string = \"\"\n\n croppedImage: any = '';\n croppedImageEvent: ImageCroppedEvent | null = null;\n\n constructor(\n private connectService: ConnectService,\n private router: Router,\n private modalService: NgbModal,\n private sanitizer: DomSanitizer\n ) { }\n\n ngOnInit(): void {\n }\n\n signupOrgSubmit(){\n this.loading = true\n this.submitted = true;\n\n this.newOrg.logo_uri = \"https://example.com\" //TODO: placeholder logo url.\n console.log(\"starting signup process...\",this.newOrg)\n this.connectService.createOrg(this.newOrg, this.croppedImageEvent?.blob!).subscribe(\n (resp) => {\n console.log(\"Organization Created\", resp)\n this.router.navigate(['/dashboard'])\n },\n (err) => {\n console.error(\"Error creating Organization\", err)\n this.errorMsg = err.error.message\n this.loading = false\n }\n )\n\n }\n openLogoCropper(){\n this.modalService.open(LogoCropperComponent).result.then(\n (result) => {\n this.croppedImageEvent = result\n this.croppedImage = this.sanitizer.bypassSecurityTrustUrl(this.croppedImageEvent?.objectUrl!);\n },\n (reason) => {\n console.log(`Dismissed`, reason);\n },\n );\n }\n\n}\n","
\n
\n\n
\n
\n \n
\n
\n
\n
\n\n\n\n\n\n","import { Component, OnInit } from '@angular/core';\nimport {User} from '../../models/fasten/user';\nimport {AuthService} from '../../services/auth.service';\nimport {Router} from '@angular/router';\nimport {STRONG_PASSWORD_PATTERN} from '../../app.constants';\n\n@Component({\n selector: 'app-auth-signup',\n templateUrl: './auth-signup.component.html',\n styleUrls: ['./auth-signup.component.scss']\n})\nexport class AuthSignupComponent implements OnInit {\n\n strong_password_pattern = STRONG_PASSWORD_PATTERN\n\n gridImages: string[] = [\n \"f8f9ce28-d79b-4b54-9f7d-3f0aaba88c2c.png\",\n \"89bb6993-b806-49a2-84e2-6e70705c504a.png\",\n \"9fcc4529-7dc9-4c66-9198-574f978c8bb7.png\",\n \"68952002-f17e-4086-aae5-841241b194dd.png\",\n \"767b97b9-4538-433f-ab7a-14ccb0053323.png\",\n \"74078880-4084-430e-bc6c-223e5990cef8.png\",\n \"10668246-1077-4c1d-a6ce-0557c9476e77.png\",\n \"f7e4fc08-c6f6-426b-be98-d60aa36d3b8b.png\",\n \"65308856-beaa-46a0-9775-20c6c9322add.png\",\n \"6e901e85-8f45-4c60-8d1f-12621aad07f1.png\",\n \"e675376d-03de-4e66-8196-eaccda536ad5.png\",\n \"a36fd256-2751-464f-b6d7-418279595b1e.png\",\n \"c623f37e-6399-4a13-909f-3d9886130673.png\",\n \"467592a3-7f5f-4258-909e-a99ca971ce15.png\",\n \"5ad8a5ab-6570-4f1e-8002-30a051ec52c2.png\",\n \"ddbef50d-3940-4411-9dea-6bf759704c6e.png\",\n \"fc2dcde0-0848-4b09-aeaf-bfef58120de9.png\",\n \"347c0df7-5817-470e-8b28-2802f90461f6.png\",\n \"ec5bc181-5466-4ebd-9e42-471593b8d104.png\",\n \"d3b1eba5-ec53-4e6d-9600-9510afbc4dda.png\",\n \"16483fad-5c24-4766-ad53-bd78551f0768.png\",\n \"ae8026ed-e74b-4bf3-9f53-458c250420ba.png\",\n \"907d39f4-6b30-46cd-b0c8-f525c636c933.png\",\n \"6b076b97-18f7-452d-9f09-20dffb01729f.png\",\n \"c7feccc5-ad10-4aeb-91b0-12b6b93feeba.png\",\n \"c66a7c1e-21f2-44aa-9486-cdfb5ad699ba.png\",\n \"82af2366-1d27-4665-ba99-e5a60a75205a.png\",\n \"2289e832-64da-47d9-82ef-1f4e15ccf627.png\",\n \"26768525-2b04-4715-9159-3679598289a3.png\",\n \"80af4067-77e9-4c13-b617-4f370dc14d3f.png\",\n \"ec6c5f06-d7f8-4eac-8e2f-6cda4536d8ab.png\",\n \"93ee1d70-6eaa-487b-84d1-cc18bcda253f.png\",\n \"6d5ba4db-4b63-4277-bb80-dc278dbe28bd.png\",\n \"b22e4e71-1121-4fca-b158-efbb906918e9.png\",\n \"49fd46d0-05ce-4c7d-923c-3891935f6947.png\",\n \"19652f82-98b9-44e6-9964-e426192a723d.png\",\n \"314a06fc-4efc-4e34-8048-565455e4f3e1.png\",\n \"8123cfc7-53b6-45d6-ace3-b64d4bd3234b.png\",\n \"35159b16-a1b5-45ba-9d4f-83f471d5f44b.png\",\n \"d6c0016f-aaec-4764-ac28-7a6eda64b693.png\",\n \"d09c7811-213b-4c19-9154-48e57174f239.png\",\n \"2bcdcc4c-0f13-4edb-85f4-2c9f4f948df0.png\",\n \"4a4720a0-0efc-4b63-a83d-a8cc5b1c15ad.png\",\n \"98f680b2-15c4-4854-902b-ed6b69425164.png\",\n \"32283b0a-3c36-4f92-b9c2-dd2edf3a3db1.png\",\n \"d56e9e82-3f62-4ce8-8a55-27da90fbe183.png\",\n \"4fc37973-195c-4e25-8751-331a3b88e685.png\",\n \"fb0bb8fa-8336-4b26-bdc5-7f8a432c1d94.png\",\n \"7ca2d9d1-d300-479d-ab85-f956b6ef60de.png\",\n \"4fd8bb55-bb2d-4748-a134-bbab7a22e4db.png\",\n \"63cde119-f9d8-468d-900a-1976211739f8.png\",\n \"e8290a84-88a1-4eac-a5b4-b2c63146b2c9.png\",\n \"13b592f9-5c8b-4f90-aa54-5ab57a29ea89.png\",\n \"0398ce8e-9200-430c-a654-f2057bc9a2d4.png\",\n \"92b1d310-99a1-4de2-99b6-975eaf5a3744.png\",\n \"418d563f-bd82-473f-a738-cd9775db4e56.png\",\n \"8fb52893-1e93-4fea-adba-838e9b42e4d2.png\",\n \"acec8466-8b0a-4adc-9929-561b7136fccb.png\",\n \"3d01addb-1103-49ca-9c74-3027112e4aa8.png\",\n \"5f5973bf-d11c-4f99-9b86-b1303cea3503.png\",\n \"1317665c-e5c4-48b8-b3a5-2a90aa0283d7.png\",\n \"48f2153e-6f4a-4da5-99a5-775a888c218a.png\",\n \"34451b52-0f65-4e1a-91aa-5f2b1420f4b7.png\",\n \"d3a10e7c-63c1-4309-b801-e42ce6e575d5.png\",\n \"4c74937f-c30d-49c8-993e-c5a133f92414.png\",\n \"5c4c748f-acd5-4fc8-b6cd-a37f629709fb.png\",\n \"0293e1f1-291e-48ad-a5d0-cc7fcb062603.png\",\n \"407f63d2-8fc7-42dd-9a46-23c76693789b.png\",\n \"6d5de058-cc60-4f07-89db-bcc6817bb115.png\",\n \"a1c9be32-3539-4390-bf01-828d5fb9f57d.png\",\n \"562c8d0a-e524-49d7-81c2-70b34b4b9a15.png\",\n \"8023b832-eaca-414a-9a53-c2fe423087d2.png\",\n \"e8e73128-7722-4514-9684-1c17d43d880e.png\",\n \"24cb81a7-dd2b-4b07-808b-f6611fea0393.png\",\n \"5266bc57-58db-4171-8d73-a2a40ff380d2.png\",\n \"9752c0a1-49f5-4842-8554-bfa3a6a3c3b4.png\",\n \"df4a6dd3-672f-4547-8ade-609df28dcda9.png\",\n \"921bb517-fdc9-4ca2-b9fc-a9e17e6cb8fc.png\",\n \"e3f229a1-8637-49b1-abaa-84d228aff34a.png\",\n \"53f22687-4635-4bff-99e2-2eacdc402359.png\",\n \"c7fe32b2-97c6-45f7-90f8-47213c9b85f1.png\",\n \"a7a87c72-1d8a-42d6-b0a4-c72b7dd8933a.png\",\n \"2630415e-1871-437a-84de-52ad7ce88f3e.png\",\n \"b53ff282-4725-45f7-a436-89f77320f062.png\",\n ]\n\n loading: boolean = false\n\n submitted: boolean = false\n newUser: User = new User()\n errorMsg: string = \"\"\n\n inviteToken: string | null = \"\"\n\n constructor(\n private authService: AuthService,\n private router: Router,\n ) { }\n\n ngOnInit(): void {\n\n const urlParams = new URLSearchParams(window.location.search);\n this.inviteToken = urlParams.get('token');\n }\n\n signupSubmit(){\n this.loading = true\n this.submitted = true;\n\n let signupFn = null\n if (this.inviteToken){\n signupFn = this.authService.SignupWithInvite(this.newUser, this.inviteToken)\n } else {\n signupFn = this.authService.Signup(this.newUser)\n }\n\n\n signupFn.then((tokenResp: any) => {\n this.loading = false\n console.log(tokenResp);\n\n if(this.inviteToken){\n //if we are signing up with an invite, we should redirect to the dashboard\n this.router.navigateByUrl('/dashboard');\n } else {\n //after creating a user, proceed to create an organization\n this.router.navigateByUrl('/auth/signup/org');\n }\n },\n (err)=>{\n this.loading = false\n console.error(\"an error occured while signup\",err)\n if(err.name === 'conflict') {\n // \"batman\" already exists, choose another username\n this.errorMsg = \"username already exists\"\n } else if (err.name === 'forbidden') {\n // invalid username\n this.errorMsg = \"invalid username\"\n } else {\n this.errorMsg = \"an unknown error occurred during sign-up\"\n }\n\n // TODO:\n // const toastNotificaiton = new ToastNotification()\n // toastNotificaiton.type = ToastType.Error\n // toastNotificaiton.message = this.errorMsg\n // this.toastService.show(toastNotificaiton)\n })\n }\n\n}\n","
\n
\n\n
\n
\n \n
\n
\n
\n
\n\n\n\n\n\n","import {Component, OnInit} from '@angular/core';\nimport {ChartConfiguration} from 'chart.js';\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss']\n})\nexport class DashboardComponent implements OnInit {\n\n\n constructor() { }\n\n ngOnInit(): void {\n\n }\n\n bounceRateChartData = [{\n label: 'This week',\n data: [27.2, 29.9, 29.6, 25.7, 25.9, 29.3, 31.1, 27.9, 28.4, 25.4, 23.2, 18.2, 14, 12.7, 11, 13.7, 9.7, 12.6, 10.9, 12.7, 13.8, 12.9, 13.8, 10.2, 5.8, 7.6, 8.8, 5.6, 5.6, 6.3, 4.2, 3.6, 5.4, 6.5, 8.1, 10.9, 7.6, 9.7, 10.9, 9.5, 5.4, 4.9, .7, 2.3, 5.5, 10, 10.6, 8.3, 8.4, 8.5, 5.8 ],\n borderWidth: 2,\n fill: true\n }];\n\n bounceRateChartLabels = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51'];\n\n bounceRateChartOptions = {\n\n responsive:true,\n maintainAspectRatio:false,\n scales: {\n y: {\n display: false,\n gridLines: {\n drawBorder: false,\n display: true,\n drawTicks: false,\n },\n ticks: {\n display: false,\n beginAtZero: true,\n min: 0,\n max: 40,\n stepSize: 10,\n }\n },\n x: {\n display: false,\n position: 'bottom',\n gridLines: {\n drawBorder: false,\n display: false,\n drawTicks: false,\n },\n ticks: {\n beginAtZero: true,\n stepSize: 10,\n fontColor: \"#a7afb7\",\n padding: 10,\n }\n },\n },\n plugins: {\n legend: {\n display: false,\n },\n },\n\n elements: {\n point: {\n radius: 0\n },\n line: {\n tension: 0\n }\n },\n tooltips: {\n backgroundColor: 'rgba(2, 171, 254, 1)',\n },\n backgroundColor: 'rgba(0, 204, 212, .2)',\n borderColor: 'rgb(0, 204, 212)',\n } as ChartConfiguration<'line'>['options']\n\n // Total users chart\n usersBarChartData = [{\n label: '# of Votes',\n data: [27.2, 29.9, 29.6, 25.7, 25.9, 29.3, 31.1, 27.9, 28.4, 25.4, 23.2, 18.2, 14, 12.7, 11, 13.7, 9.7, 12.6, 10.9, 12.7, 13.8],\n borderWidth: 1,\n fill: false\n }];\n\n usersBarChartLabels = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18'];\n\n usersBarChartOptions = {\n\n responsive:true,\n maintainAspectRatio:false,\n scales: {\n y: {\n display: false,\n ticks: {\n display: false,\n },\n gridLines: {\n drawBorder: false,\n display: false\n }\n },\n x: {\n display: false,\n barThickness: 5.5,\n ticks: {\n display: false,\n },\n gridLines: {\n drawBorder: false,\n display: false\n }\n }\n },\n plugins: {\n legend: {\n display: false\n },\n },\n elements: {\n point: {\n radius: 0\n }\n },\n backgroundColor: '#007bff',\n borderColor: '#007bff'\n } as ChartConfiguration<'bar'>['options']\n\n}\n","
\n
\n
\n
\n
\n

Welcome back!

\n
\n
\n
\n
\n \n
Mar 24, 2024
\n
\n
\n
\n
\n \n
None
\n
\n
\n\n
\n
\n\n
\n \n Under Construction! The Dashboard is still under development. We will notify you once you can start using it.\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n
33.50% 18.02%
\n

API Requests

\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
86 0.86%
\n

Webhooks

\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n
Connections
\n Total number of authorized patient connections for this billing period.\n
\n
\n
\n
\n 6,4,7,5,7\n
\n
\n \n

33

\n
\n
\n
\n
\n 7,4,5,7,2\n
\n
\n \n

9

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Authorized Connections
\n

Recently connected healthcare insitutions.

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 Portal NameSynced RecordsPatient Auth IDStatus
Epic134 (1.51%)6f3f3770-ad00-...complete
eClincalWorks290 (3.30%)ae5e7f40-4e7c-...complete
Medicare250 (3.00%)b3af4ab6-9275-...complete
Epic216 (2.79%)baccf6e8-f020-...complete
Epic216 (2.79%)61a193cc-33ed-...error
United Healthcare197 (2.12%)6a79f333-9408-...complete
\n
\n
\n
\n\n
\n\n
\n
\n
\n\n","import { Component, OnInit } from '@angular/core';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {ConnectService} from '../../services/connect.service';\nimport {ApiMode, CRUDMode, URL_PATTERN} from '../../app.constants';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {OrganizationCredential} from '../../models/fasten/organization-credential';\nimport {PortalConfig} from '../../models/portal-config';\nimport {OrganizationWebhook} from '../../models/fasten/organization-webhook';\nimport {OrgCredentialsEditorComponent} from '../../components/org-credentials-editor/org-credentials-editor.component';\nimport {OrgWebhooksEditorComponent} from '../../components/org-webhooks-editor/org-webhooks-editor.component';\n\n@Component({\n selector: 'app-developers',\n templateUrl: './developers.component.html',\n styleUrls: ['./developers.component.scss']\n})\nexport class DevelopersComponent implements OnInit {\n\n\n orgCredentials: {[name: string]: OrganizationCredential[]} = {\n [ApiMode.Live]: [],\n [ApiMode.Test]: [],\n }\n\n newCredential: {org_credential: OrganizationCredential, private_key: string} | null = null\n\n orgWebhooks: {[name: string]: OrganizationWebhook[]} = {\n [ApiMode.Live]: [],\n [ApiMode.Test]: [],\n }\n\n\n constructor(\n private connectService: ConnectService,\n private modalService: NgbModal,\n public portalConfig: PortalConfigService,\n ) { }\n\n ngOnInit(): void {\n\n this.connectService.getOrgCredentials(this.portalConfig.config$.user?.org_id!).subscribe((data) => {\n for(let cred of data){\n this.orgCredentials[cred.api_mode].push(cred)\n }\n })\n this.connectService.getOrgWebhooks(this.portalConfig.config$.user?.org_id!).subscribe((data) => {\n for(let hook of data){\n this.orgWebhooks[hook.api_mode].push(hook)\n }\n })\n }\n\n\n public showOrgCredentialEditorModal(editorMode: 'create' | 'edit', orgCredential?: OrganizationCredential) {\n let orgCredentialEditorModal = this.modalService.open(OrgCredentialsEditorComponent, { ariaLabelledBy: 'modal-basic-title' })\n orgCredentialEditorModal.componentInstance.org = this.portalConfig.config$.org\n orgCredentialEditorModal.componentInstance.apiMode = this.portalConfig.config$.apiMode!\n orgCredentialEditorModal.componentInstance.editorMode = editorMode\n\n if(editorMode === 'edit'){\n orgCredentialEditorModal.componentInstance.orgCredential = orgCredential\n }\n\n orgCredentialEditorModal.result.then(\n (result: {action: CRUDMode, org_credential: OrganizationCredential, private_key: string}) => {\n console.log(`Closed with:`, result)\n\n if(editorMode == 'create'){\n this.orgCredentials[result.org_credential.api_mode].push(result.org_credential)\n this.newCredential = result\n } else {\n //find the credential and update it or delete it\n let apiMode = result.org_credential.api_mode\n for(let i = 0; i < this.orgCredentials[apiMode].length; i++){\n if(this.orgCredentials[apiMode][i].id == result.org_credential.id){\n if(result.action == CRUDMode.Delete){\n this.orgCredentials[apiMode].splice(i, 1)\n break\n } else {\n //update the credential\n this.orgCredentials[apiMode][i] = result.org_credential\n break\n }\n }\n }\n }\n },\n (reason) => {\n console.log(`Dismissed ${reason}`)\n },\n );\n }\n\n public copyPublicId(credential: OrganizationCredential) {\n navigator.clipboard.writeText(credential.id);\n }\n\n\n public showOrgWebhookEditorModal(editorMode: 'create' | 'edit', orgWebhook?: OrganizationWebhook) {\n let orgWebhookEditorModal = this.modalService.open(OrgWebhooksEditorComponent, { ariaLabelledBy: 'modal-basic-title' })\n orgWebhookEditorModal.componentInstance.org = this.portalConfig.config$.org\n orgWebhookEditorModal.componentInstance.apiMode = this.portalConfig.config$.apiMode!\n orgWebhookEditorModal.componentInstance.editorMode = editorMode\n\n if(editorMode === 'edit'){\n orgWebhookEditorModal.componentInstance.orgWebhook = orgWebhook\n }\n orgWebhookEditorModal.result.then(\n (result: {action: CRUDMode, org_webhook: OrganizationWebhook}) => {\n console.log(`Closed with:`, result)\n\n let apiMode = result.org_webhook.api_mode\n if(editorMode == 'create'){\n this.orgWebhooks[apiMode].push(result.org_webhook)\n } else {\n apiMode = orgWebhook?.api_mode!\n //find the webhook and update it\n for(let i = 0; i < this.orgWebhooks[apiMode].length; i++){\n if(this.orgWebhooks[apiMode][i].id == result.org_webhook.id){\n if(result.action == CRUDMode.Delete){\n this.orgWebhooks[apiMode].splice(i, 1)\n break\n } else {\n //update the webhook\n this.orgWebhooks[apiMode][i] = result.org_webhook\n break\n }\n }\n }\n }\n },\n (reason) => {\n console.log(`Dismissed ${reason}`)\n },\n );\n }\n\n}\n","
\n \n\n\n
\n
\n API Credentials\n Learn more about API authentication\n
\n
\n\n\n
\n
\n Credentials\n \n
\n\n
\n

Create a key that unlocks full API access, enabling extensive interaction with your account.

\n\n
\n \n Credential Created! Make sure to copy your Private Key now. You won’t be able to see it again!\n
\n Public Id: {{newCredential.org_credential.id}}
\n Private Key: {{newCredential.private_key}}\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
StatusPublic IdPrivate KeyCreated
\n {{cred.status}}\n {{cred.id}} {{cred.private_key || 'REDACTED'}}{{cred.created_at | amDateFormat:'LL'}}\n \n
\n
\n\n
\n\n
\n
\n Webhooks\n \n
\n\n\n
\n

Set up your webhook endpoint to receive events from Fasten Connect or learn more about Webhooks.

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
StatusUrlEventsDelivery Logs
\n {{webhook.status}}\n {{webhook.endpoint_uri}}\n \n {{webhook?.event_types?.length}} event(s)\n \n \n \n
\n
\n\n\n
\n\n
\n","import { Component, OnInit } from '@angular/core';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {ConnectService} from '../../services/connect.service';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {environment} from '../../../environments/environment';\n\n@Component({\n selector: 'app-org-billing',\n templateUrl: './org-billing.component.html',\n styleUrls: ['./org-billing.component.scss']\n})\nexport class OrgBillingComponent implements OnInit {\n\n\n stripe_customer_portal = environment.stripe_customer_portal;\n loading = false\n recentlyChanged = false\n\n constructor(\n public portalConfig: PortalConfigService,\n public connectService: ConnectService,\n ) { }\n\n ngOnInit(): void {\n //read query string parameters\n const urlParams = new URLSearchParams(window.location.search);\n const sessionId = urlParams.get('session_id');\n if(sessionId){\n this.recentlyChanged = true\n }\n }\n\n}\n","
\n \n\n \n
\n
\n
\n
\n Invoices & Payment Methods\n Visit the Billing Portal\n
\n
\n

Your account is active. You can view invoices and payment methods in the billing portal.

\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n Inactive Account\n
\n\n
\n
\n
\n
No plan selected
\n

\n Please contact support@fastenhealth.com to activate your account.
\n Inactive accounts may be purged after 30 days.\n

\n
\n
\n\n
\n\n
\n
\n Plan Changed! Your plan changed recently. It may take up to 24 hours to reflect plan changes in your organization profile.\n
\n\n
\n
\n\n\n
\n","import { Component, OnInit } from '@angular/core';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {environment} from '../../../environments/environment';\nimport {ConnectService} from '../../services/connect.service';\nimport {URL_PATTERN} from '../../app.constants';\nimport {Organization} from '../../models/fasten/organization';\nimport {ImageCroppedEvent} from 'ngx-image-cropper';\nimport {LogoCropperComponent} from '../../components/logo-cropper/logo-cropper.component';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {DomSanitizer} from '@angular/platform-browser';\n\n@Component({\n selector: 'app-org-settings',\n templateUrl: './org-settings.component.html',\n styleUrls: ['./org-settings.component.scss']\n})\nexport class OrgSettingsComponent implements OnInit {\n loading: boolean = false\n\n urlPattern = URL_PATTERN\n\n submitted: boolean = false\n updateOrg: Organization = new Organization()\n errorMsg: string = \"\"\n\n croppedImage: any = '';\n croppedImageEvent: ImageCroppedEvent | null = null;\n\n constructor(\n public portalConfig: PortalConfigService,\n public connectService: ConnectService,\n private modalService: NgbModal,\n private sanitizer: DomSanitizer\n ) { }\n\n ngOnInit(): void {\n\n this.portalConfig.ConfigSubject.subscribe((config) => {\n this.updateOrg = {...config.org!}\n })\n\n }\n\n updateOrgSubmit(){\n this.loading = true\n this.submitted = true;\n\n console.log(\"starting update process...\",this.updateOrg)\n this.connectService.updateOrg(this.portalConfig.config$.org?.id!, this.updateOrg, this.croppedImageEvent?.blob).subscribe(\n (org) => {\n console.log(\"Organization Updated\", org)\n this.loading = false\n\n //update the org in the portal config\n this.portalConfig.config = {org: org}\n\n },\n (err) => {\n console.error(\"Error updating Organization\", err)\n this.errorMsg = err.error.message\n this.loading = false\n }\n )\n\n }\n\n openLogoCropper(){\n this.modalService.open(LogoCropperComponent).result.then(\n (result) => {\n this.croppedImageEvent = result\n this.croppedImage = this.sanitizer.bypassSecurityTrustUrl(this.croppedImageEvent?.objectUrl!);\n },\n (reason) => {\n console.log(`Dismissed`, reason);\n },\n );\n }\n}\n","
\n \n\n\n
\n
\n
\n
\n Details\n
\n\n
\n
\n\n

Use this form to update information about your Organization

\n\n\n
\n\n\n\n
\n\n
\n \n
{{updateOrg.id}}
\n
\n\n
\n \n \n\n
\n
\n Organization Name is required.\n
\n
\n Organization Name must be at least 2 characters long.\n
\n
\n
\n\n
\n \n
\n
\n \"\"\n
\n
\n
\n
\n\n
\n \n \n
\n
\n Website is required.\n
\n
\n Website must be a valid url starting with https://\n
\n
\n
\n\n
\n \n \n
\n
\n Privacy Policy Url is required.\n
\n
\n Privacy Policy must be a valid url starting with https://\n
\n
\n
\n\n
\n \n \n
\n
\n Terms & Conditions must be a valid url starting with https://\n
\n
\n
\n
\n\n\n
\n\n \n\n
\n Error {{errorMsg}}\n
\n\n
\n
\n\n
\n
\n\n\n
\n\n
\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","import { Component, OnInit } from '@angular/core';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {LogoCropperComponent} from '../../components/logo-cropper/logo-cropper.component';\nimport {OrgTeamInviteComponent} from '../../components/org-team-invite/org-team-invite.component';\nimport {ConnectService} from '../../services/connect.service';\nimport {OrganizationTeamMember} from '../../models/fasten/organization-team-member';\n\n@Component({\n selector: 'app-org-team',\n templateUrl: './org-team.component.html',\n styleUrls: ['./org-team.component.scss']\n})\nexport class OrgTeamComponent implements OnInit {\n\n teamMembers: OrganizationTeamMember[] = []\n\n constructor(\n private connectService: ConnectService,\n private modalService: NgbModal,\n public portalConfig: PortalConfigService,\n ) { }\n\n ngOnInit(): void {\n this.connectService.getOrgTeam(this.portalConfig.config$.user?.org_id!).subscribe((data) => {\n this.teamMembers = data\n })\n }\n\n openOrgTeamInviteModal(){\n this.modalService.open(OrgTeamInviteComponent).result.then(\n (result) => {\n console.log(`Closed with: ${result}`)\n },\n (reason) => {\n console.log(`Dismissed`, reason);\n },\n );\n }\n}\n","
\n \n\n
\n
\n\n
\n
\n Team Members\n \n
\n\n
\n

Invite your colleagues to join your team.

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
StatusNameEmail
\n {{member.status}}\n {{member.name}}{{member.email}}
\n\n
\n\n
\n\n
\n
\n\n\n
\n","import { Component, OnInit } from '@angular/core';\nimport {ConnectService} from '../../services/connect.service';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {ActivatedRoute} from '@angular/router';\nimport {OrganizationWebhookDelivery} from '../../models/fasten/organization-webhook-delivery';\nimport {OrganizationWebhook} from '../../models/fasten/organization-webhook';\nimport {OrganizationCredential} from '../../models/fasten/organization-credential';\n\n@Component({\n selector: 'app-webhook-logs',\n templateUrl: './webhook-logs.component.html',\n styleUrls: ['./webhook-logs.component.scss']\n})\nexport class WebhookLogsComponent implements OnInit {\n\n showAllDeliveries = false\n webhookDeliveries: OrganizationWebhookDelivery[] = []\n webhook: OrganizationWebhook | null = null\n selectedWebhookDelivery: OrganizationWebhookDelivery | null = null\n\n constructor(\n private connectService: ConnectService,\n public portalConfig: PortalConfigService,\n private route: ActivatedRoute,\n ) { }\n\n ngOnInit(): void {\n let webhookId = this.route.snapshot.paramMap.get('webhookId')\n if (!webhookId) {\n return\n }\n\n this.connectService.getOrgWebhookDeliveries(this.portalConfig.config$.user?.org_id!, webhookId!).subscribe((data) => {\n console.log(\"Webhook Deliveries\", data)\n this.webhookDeliveries = (data.deliveries || []).reverse()\n this.webhook = data.webhook\n\n if (this.webhookDeliveries.length > 0) {\n this.selectedWebhookDelivery = this.webhookDeliveries[0]\n }\n\n })\n }\n\n public copySecretToken(secretToken: string | undefined) {\n if (!secretToken) {\n return\n }\n navigator.clipboard.writeText(secretToken);\n }\n}\n","
\n \n\n
\n
\n {{webhook?.endpoint_uri}}\n\n
\n\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
StatusAPI ModeListening ForSigning SecretLast Updated
\n {{webhook?.status}}\n \n {{webhook?.api_mode}}\n \n {{webhook?.event_types?.length}} event(s)\n \n reveal \n \n {{webhook?.updated_at | amDateFormat:'LL'}}
\n
\n\n
\n\n
\n\n
\n
\n Delivery Logs\n
\n
\n
\n
\n
\n \n \n
\n
\n\n
\n Response\n
\n\n
\n
\n
\n Request\n
\n
\n \n
\n Waiting for delivery...\n
\n
\n
\n
\n
\n
\n
\n\n
\n","import { Injectable, Injector } from '@angular/core';\nimport {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';\nimport {Router} from '@angular/router';\nimport {Observable, of, throwError} from 'rxjs';\nimport {catchError} from 'rxjs/operators';\nimport {AuthService} from './auth.service';\nimport {environment} from '../../environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\n\n// based on https://stackoverflow.com/questions/46017245/how-to-handle-unauthorized-requestsstatus-with-401-or-403-with-new-httpclient\nexport class AuthInterceptorService implements HttpInterceptor {\n\n constructor(private authService: AuthService, private router: Router) { }\n\n private handleAuthError(err: HttpErrorResponse): Observable {\n //handle your auth error or rethrow\n if (err.status === 401 || err.status === 403) {\n //navigate /delete cookies or whatever\n this.authService.Signout()\n this.router.navigateByUrl(`/auth/signin`);\n // if you've caught / handled the error, you don't want to rethrow it unless you also want downstream consumers to have to handle it as well.\n return of(err.message); // or EMPTY may be appropriate here\n }\n return throwError(err);\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n\n console.log(\"Intercepting Request\", req)\n\n //only intercept requests to the fasten API & lighthouse, all other requests should be sent as-is\n let reqUrl = new URL(req.url)\n let lighthouseUrl = new URL(environment.lighthouse_api_endpoint_base)\n let apiUrl = new URL(environment.connect_api_endpoint_base)\n\n if(\n !((reqUrl.origin == apiUrl.origin && reqUrl.pathname.startsWith(apiUrl.pathname)) ||\n (reqUrl.origin == lighthouseUrl.origin && reqUrl.pathname.startsWith(lighthouseUrl.pathname)))\n ){\n return next.handle(req)\n }\n\n // Clone the request and ensure that cookies are sent\n const authReq = req.clone({withCredentials: true});\n // catch the error, make specific functions for catching specific errors and you can chain through them with more catch operators\n return next.handle(authReq).pipe(catchError(x=> this.handleAuthError(x))); //here use an arrow function, otherwise you may get \"Cannot read property 'navigate' of undefined\" on angular 4.4.2/net core 2/webpack 2.70\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {User} from '../models/fasten/user';\nimport {environment} from '../../environments/environment';\nimport {HttpClient} from '@angular/common/http';\nimport {ResponseWrapper} from '../models/response-wrapper';\nimport {BehaviorSubject} from 'rxjs';\nimport * as jose from 'jose'\nimport {PortalConfigService} from './portal-config.service';\n\nexport const FASTEN_AUTH_COOKIE_NAME = 'fasten_connect_auth'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n public IsAuthenticatedSubject = new BehaviorSubject(false)\n\n constructor(private _httpClient: HttpClient, private portalConfigService: PortalConfigService) {}\n\n /**\n * Signup (and Signin) both require an \"online\" user.\n * @param newUser\n * @constructor\n */\n public async SignupWithInvite(newUser: User, inviteToken: string): Promise {\n let queryParams = {\n \"token\": inviteToken\n }\n\n let resp = await this._httpClient.post(`${environment.connect_api_endpoint_base}/auth/invite`, newUser, { withCredentials: true, params:queryParams }).toPromise()\n console.log(resp)\n return resp\n }\n /**\n * Signup (and Signin) both require an \"online\" user.\n * @param newUser\n * @constructor\n */\n public async Signup(newUser?: User): Promise {\n let resp = await this._httpClient.post(`${environment.connect_api_endpoint_base}/auth/signup`, newUser, { withCredentials: true }).toPromise()\n console.log(resp)\n return resp\n }\n\n public async Signin(email: string, pass: string): Promise {\n let currentUser = new User()\n currentUser.email = email\n currentUser.password = pass\n let resp = await this._httpClient.post(`${environment.connect_api_endpoint_base}/auth/login`, currentUser, { withCredentials: true }).toPromise()\n return resp\n }\n\n public async Signout(): Promise {\n this.publishAuthenticationState(false)\n return this.deleteCookie(FASTEN_AUTH_COOKIE_NAME)\n // // let remotePouchDb = new PouchDB(this.getRemoteUserDb(localStorage.getItem(\"current_user\")), {skip_setup: true});\n // if(this.pouchDb){\n // await this.pouchDb.logOut()\n // }\n // await this.Close()\n }\n\n\n // User has requested a password reset. This is the first step in the process.\n public async UserResetRequest(userEmail: string): Promise {\n let payload = {\n \"email\": userEmail\n }\n\n let resp = await this._httpClient.post(`${environment.connect_api_endpoint_base}/auth/reset/request`, payload, { }).toPromise()\n console.log(resp)\n return resp\n }\n\n // Complete the password reset process. This is the second step in the process.\n public async UserReset(newPassword: string, inviteToken: string): Promise {\n let queryParams = {\n \"token\": inviteToken\n }\n\n let payload = {\n \"password\": newPassword\n }\n\n let resp = await this._httpClient.post(`${environment.connect_api_endpoint_base}/auth/reset`, payload, { withCredentials: true, params:queryParams }).toPromise()\n console.log(resp)\n return resp\n }\n\n public async GetJWTPayload(): Promise {\n let authToken = this.getCookie(FASTEN_AUTH_COOKIE_NAME)\n if (!authToken) {\n return null\n }\n let jwks = jose.createRemoteJWKSet(new URL(environment.jwks_uri))\n let issuerHost = environment.connect_api_jwt_issuer_host\n\n try {\n //audience and issuer must be the same. This token is only valid on the fasten connect api\n const {payload, protectedHeader} = await jose.jwtVerify(authToken, jwks, {\n issuer: issuerHost,\n audience: issuerHost,\n })\n // @ts-ignore\n this.portalConfigService.config = {user: payload}\n return payload\n } catch (e) {\n console.error(\"failed to verify jwt:\", e, issuerHost)\n return null\n }\n }\n\n public async IsAuthenticated(): Promise {\n let payload = await this.GetJWTPayload()\n let isAuthenticated = payload != null\n this.publishAuthenticationState(isAuthenticated)\n return isAuthenticated\n }\n\n //https://stackoverflow.com/questions/34298133/angular-cookies\n private getCookie(name: string): string {\n const ca: Array = decodeURIComponent(document.cookie).split(';');\n const caLen: number = ca.length;\n const cookieName = `${name}=`;\n let c: string;\n\n for (let i = 0; i < caLen; i += 1) {\n c = ca[i].replace(/^\\s+/g, '');\n if (c.indexOf(cookieName) === 0) {\n return c.substring(cookieName.length, c.length);\n }\n }\n return '';\n }\n\n private deleteCookie(name: string) {\n this.setCookie(name, '', -1);\n }\n private setCookie(name: string, value: string, expireDays: number, path: string = '') {\n const d: Date = new Date();\n d.setTime(d.getTime() + expireDays * 24 * 60 * 60 * 1000);\n const expires = `expires=${d.toUTCString()}`;\n const cpath = path ? `; path=${path}` : '';\n document.cookie = `${name}=${value}; ${expires}${cpath}; SameSite=Lax`;\n }\n\n private publishAuthenticationState(authenticated: boolean){\n if(this.IsAuthenticatedSubject.value != authenticated){\n this.IsAuthenticatedSubject.next(authenticated)\n }\n }\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {ResponseWrapper} from '../models/response-wrapper';\nimport {environment} from '../../environments/environment';\nimport {Organization} from '../models/fasten/organization';\nimport {map, Observable} from 'rxjs';\nimport {ApiMode, CRUDMode} from '../app.constants';\nimport {OrganizationCredential} from '../models/fasten/organization-credential';\nimport {OrganizationWebhook} from '../models/fasten/organization-webhook';\nimport {OrganizationWebhookDelivery} from '../models/fasten/organization-webhook-delivery';\nimport {OrganizationTeamMember} from '../models/fasten/organization-team-member';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConnectService {\n\n constructor(private _httpClient: HttpClient) { }\n\n\n /**\n * Create a new organization and associate it with the current User\n * @param newOrg\n * @param logoBlob\n * @constructor\n */\n public createOrg(newOrg: Organization, logoBlob: Blob): Observable {\n const formData = new FormData();\n\n //add the org data to the form data\n const orgJson = JSON.stringify(newOrg);\n const orgJsonBlob = new Blob([orgJson], {\n type: 'application/json'\n });\n formData.append(\"org\", orgJsonBlob);\n formData.append(\"logo\", logoBlob);\n\n let resp = this._httpClient.post(`${environment.connect_api_endpoint_base}/org`, formData)\n console.log(resp)\n return resp\n }\n\n\n public updateOrg(orgId: string, updateOrg: Organization, logoBlob?: Blob | null): Observable {\n const formData = new FormData();\n\n //add the org data to the form data\n const orgJson = JSON.stringify(updateOrg);\n const orgJsonBlob = new Blob([orgJson], {\n type: 'application/json'\n });\n formData.append(\"org\", orgJsonBlob);\n if (logoBlob){\n formData.append(\"logo\", logoBlob);\n }\n return this._httpClient.put(`${environment.connect_api_endpoint_base}/org/${orgId}`, formData)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Updated Organization\", response)\n return response.data as Organization;\n })\n );\n }\n\n public getOrg(orgId: String): Observable {\n return this._httpClient.get(`${environment.connect_api_endpoint_base}/org/${orgId}`)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization\", response)\n return response.data as Organization;\n })\n );\n }\n\n public sendOrgInvite(orgId: string, recipientEmail: string): Observable {\n return this._httpClient.post(`${environment.connect_api_endpoint_base}/org/${orgId}/invite`, {\n recipient_email_address: recipientEmail,\n org_id: orgId\n })\n }\n\n public getOrgTeam(orgId: string): Observable {\n return this._httpClient.get(`${environment.connect_api_endpoint_base}/org/${orgId}/team`)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization Team\", response)\n return response.data as OrganizationTeamMember[];\n })\n );\n }\n\n public createOrgCredentials(orgId: string, apiMode: ApiMode, redirectUrl: string): Observable<{ action: CRUDMode, org_credential: OrganizationCredential, private_key: string}> {\n return this._httpClient.post(`${environment.connect_api_endpoint_base}/org/${orgId}/credentials`, {\n api_mode: apiMode,\n redirect_uri: redirectUrl\n })\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization Credential\", response)\n response.data.action = CRUDMode.Create\n return response.data as { action: CRUDMode, org_credential: OrganizationCredential, private_key: string};\n })\n );\n }\n public updateOrgCredential(orgId: string, orgCredentialId: string, redirectUrl: string): Observable<{ action: CRUDMode, org_credential: OrganizationCredential}> {\n return this._httpClient.put(`${environment.connect_api_endpoint_base}/org/${orgId}/credentials/${orgCredentialId}`, {\n redirect_uri: redirectUrl\n })\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization Credential\", response)\n return { action: CRUDMode.Update, org_credential: response.data} as { action: CRUDMode, org_credential: OrganizationCredential};\n })\n );\n }\n\n public deleteOrgCredential(orgId: string, orgCredentialId: string): Observable<{ action: CRUDMode, org_credential: OrganizationCredential}> {\n return this._httpClient.delete(`${environment.connect_api_endpoint_base}/org/${orgId}/credentials/${orgCredentialId}`)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Deleted Organization Credential\", response)\n return { action: CRUDMode.Delete, org_credential: response.data} as { action: CRUDMode, org_credential: OrganizationCredential};\n })\n );\n }\n\n public getOrgCredentials(orgId: string): Observable {\n return this._httpClient.get(`${environment.connect_api_endpoint_base}/org/${orgId}/credentials`)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization Credentials\", response)\n return response.data as OrganizationCredential[];\n })\n );\n }\n\n\n public createOrgWebhooks(orgId: string, apiMode: ApiMode, endpointUri: string): Observable<{ action: CRUDMode, org_webhook: OrganizationWebhook}> {\n return this._httpClient.post(`${environment.connect_api_endpoint_base}/org/${orgId}/webhooks`, {\n api_mode: apiMode,\n endpoint_uri: endpointUri\n })\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization Credential\", response)\n return {action: CRUDMode.Create, org_webhook: response.data};\n })\n );\n }\n\n public deleteOrgWebhook(orgId: string, orgWebhookId: string): Observable<{ action: CRUDMode, org_webhook: OrganizationWebhook}> {\n return this._httpClient.delete(`${environment.connect_api_endpoint_base}/org/${orgId}/webhooks/${orgWebhookId}`)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Deleted Organization Webhook\", response)\n return { action: CRUDMode.Delete, org_webhook: response.data};\n })\n );\n }\n\n public updateOrgWebhook(orgId: string, orgWebhookId: string, endpointUri: string): Observable<{ action: CRUDMode, org_webhook: OrganizationWebhook}> {\n return this._httpClient.put(`${environment.connect_api_endpoint_base}/org/${orgId}/webhooks/${orgWebhookId}`, {\n endpoint_uri: endpointUri\n })\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization Webhook\", response)\n return { action: CRUDMode.Update, org_webhook: response.data};\n })\n );\n }\n\n public getOrgWebhooks(orgId: string): Observable {\n return this._httpClient.get(`${environment.connect_api_endpoint_base}/org/${orgId}/webhooks`)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization Webhooks\", response)\n return response.data as OrganizationWebhook[];\n })\n );\n }\n\n public getOrgWebhookDeliveries(orgId: string, orgWebhookId: string): Observable<{webhook: OrganizationWebhook, deliveries: OrganizationWebhookDelivery[]}> {\n return this._httpClient.get(`${environment.connect_api_endpoint_base}/org/${orgId}/webhooks/${orgWebhookId}/deliveries`)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Webhooks Deliveries\", response)\n return response.data as {webhook: OrganizationWebhook, deliveries: OrganizationWebhookDelivery[]};\n })\n );\n }\n\n\n /**\n * Generate Stripe Checkout Link to Upgrade Plan\n * @param orgId\n * @constructor\n */\n public upgradePlanCheckoutRedirect(): Observable {\n return this._httpClient.post(`${environment.connect_api_endpoint_base}/store/checkout`, {})\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"redirect URL\", response)\n\n let redirectData = response.data as { \"redirect_url\": string };\n window.location.href = redirectData.redirect_url;\n\n return null\n })\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\nimport {PortalConfig, portalConfigDefaults} from '../models/portal-config';\nimport {merge} from 'lodash';\nimport {ApiMode} from '../app.constants';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PortalConfigService {\n // Private\n public ConfigSubject: BehaviorSubject;\n private _defaultConfig: PortalConfig;\n constructor() {\n this._defaultConfig = portalConfigDefaults\n this.ConfigSubject = new BehaviorSubject(this._defaultConfig);\n }\n\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Setter & getter for config\n */\n set config(value: PortalConfig) {\n // get the current config, merge the new values, and then submit.\n const mergedSettings = merge({}, this.ConfigSubject.getValue(), value);\n\n // Store the value\n if(JSON.stringify(mergedSettings) !== JSON.stringify(this.ConfigSubject.getValue())){\n console.log('updating settings:', mergedSettings)\n this.ConfigSubject.next(mergedSettings);\n }\n }\n\n get config$(): PortalConfig {\n console.log('using cached settings:', this.ConfigSubject.getValue())\n return this.ConfigSubject.getValue()\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Resets the config to the default\n */\n reset(): void {\n // Set the config\n this.config = this._defaultConfig\n }\n\n toggleApiMode(): void {\n this.config = {\n apiMode: this.config$.apiMode === 'live' ? ApiMode.Test : ApiMode.Live\n }\n }\n}\n","export const environment = {\n name: \"development\",\n\n //specify the lighthouse base that we're going to use to authenticate against all our source/providers. Must not have trailing slash\n lighthouse_api_endpoint_base: 'https://lighthouse.fastenhealth.com',\n\n //used to specify the api server that we're going to use (can be relative or absolute). Must not have trailing slash\n // connect_api_endpoint_base: 'https://api.connect-dev.fastenhealth.com/v1',\n // if relative, must start with /\n connect_api_endpoint_base: 'https://api.connect-dev.fastenhealth.com/v1',\n connect_api_jwt_issuer_host: 'https://api.connect-dev.fastenhealth.com/v1',\n\n jwks_uri: 'https://cdn.fastenhealth.com/jwks/fasten-connect/dev.json',\n\n //Stripe pricing table (Test mode in Dev)\n stripe_customer_portal: 'https://billing.stripe.com/p/login/test_bIY7thbZL5g6gXC000'\n // stripe_customer_portal: 'https://billing.stripe.com/p/login/dR6aEYe5h4AYe2I144'\n};\n","// this file is automatically generated by git.version.ts script\nexport const versionInfo = {\n version: 'dev',\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.name != \"local\") {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-ps\": 46235,\n\t\"./ar-ps.js\": 46235,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku-kmr\": 19619,\n\t\"./ku-kmr.js\": 19619,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["ActivatedRouteSnapshot","RouterStateSnapshot","Router","IsAuthenticatedAuthGuard","constructor","authService","router","canActivate","route","state","_this","_asyncToGenerator","jwtPayload","GetJWTPayload","navigate","org_id","console","log","i0","ɵɵinject","i1","AuthService","i2","factory","ɵfac","User","environment","BehaviorSubject","jose","FASTEN_AUTH_COOKIE_NAME","_httpClient","portalConfigService","IsAuthenticatedSubject","SignupWithInvite","newUser","inviteToken","queryParams","resp","post","connect_api_endpoint_base","withCredentials","params","toPromise","Signup","_this2","Signin","email","pass","_this3","currentUser","password","Signout","_this4","publishAuthenticationState","deleteCookie","UserResetRequest","userEmail","_this5","payload","UserReset","newPassword","_this6","_this7","authToken","getCookie","jwks","createRemoteJWKSet","URL","jwks_uri","issuerHost","connect_api_jwt_issuer_host","protectedHeader","jwtVerify","issuer","audience","config","user","e","error","IsAuthenticated","_this8","isAuthenticated","name","ca","decodeURIComponent","document","cookie","split","caLen","length","cookieName","c","i","replace","indexOf","substring","setCookie","value","expireDays","path","d","Date","setTime","getTime","expires","toUTCString","cpath","authenticated","next","HttpClient","PortalConfigService","providedIn"],"sourceRoot":"webpack:///","x_google_ignoreList":[53]} \ No newline at end of file