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","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","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\n\n
\n
\n
Fasten Connect requires a logo for display when connecting providers
\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\n
\n API Credentials are used by your application to access the Fasten Connect API\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\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","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\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","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\n
\n
Use this form to change the password you use to login to your account
\n\n
\n Old Password \n \n
\n\n
\n New Password \n \n
\n\n
\n Confirm new Password \n \n
\n\n
Save New Password \n\n
\n\n
\n
\n\n\n
\n\n
\n \n\n
\n
Use this form to change the email address associated with your account.
\n
\n Current Email Address \n \n
\n\n
\n New Email Address \n \n
\n\n
\n Verify Password \n \n
\n\n
Update Email Address \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
\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\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\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 \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
\n
\n 6,4,7,5,7 \n
\n
\n Unique \n
33 \n \n
\n
\n
\n 7,4,5,7,2 \n
\n
\n Refresh \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","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 API Clients \n\n \n\n\n
\n \n
\n\n\n
\n \n\n
\n
Create a key that unlocks full API access, enabling extensive interaction with your account.
\n\n
\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 Status \n Public Id \n Private Key \n Created \n \n \n \n \n \n \n {{cred.status}} \n \n {{cred.id}} \n {{cred.private_key || 'REDACTED'}}
\n {{cred.created_at | amDateFormat:'LL'}} \n \n \n \n \n \n
\n
\n\n
\n\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 Status \n Url \n Events \n Delivery Logs \n \n \n \n \n \n \n {{webhook.status}} \n \n {{webhook.endpoint_uri}} \n \n \n {{webhook?.event_types?.length}} event(s)\n \n \n \n \n \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 Details \n Team \n Billing \n \n\n
\n \n
\n
\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\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 Details \n Team \n Billing \n \n\n
\n
\n\n
\n \n\n
\n
Invite your colleagues to join your team.
\n
\n \n \n Status \n Name \n Email \n \n \n \n \n \n \n {{member.status}} \n \n {{member.name}} \n {{member.email}} \n \n \n
\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 API Clients \n Logs \n \n\n
\n \n\n
\n\n
\n
\n \n \n Status \n API Mode \n Listening For \n Signing Secret \n Last Updated \n \n \n \n \n \n {{webhook?.status}} \n \n \n {{webhook?.api_mode}}\n \n \n {{webhook?.event_types?.length}} event(s)
\n \n \n reveal \n {{webhook?.secret_token}} \n \n {{webhook?.updated_at | amDateFormat:'LL'}} \n \n \n
\n
\n\n
\n\n
\n\n
\n \n
\n
\n
\n
\n
\n
15\" (click)=\"showAllDeliveries = !showAllDeliveries\">{{ showAllDeliveries ? 'Show Less' : 'Show More' }} \n
\n
\n\n
\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","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","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\n\n
\n
\n
Fasten Connect requires a logo for display when connecting providers
\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\n
\n API Credentials are used by your application to access the Fasten Connect API\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\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","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\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","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\n
\n
Use this form to change the password you use to login to your account
\n\n
\n Old Password \n \n
\n\n
\n New Password \n \n
\n\n
\n Confirm new Password \n \n
\n\n
Save New Password \n\n
\n\n
\n
\n\n\n
\n\n
\n \n\n
\n
Use this form to change the email address associated with your account.
\n
\n Current Email Address \n \n
\n\n
\n New Email Address \n \n
\n\n
\n Verify Password \n \n
\n\n
Update Email Address \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
\n
\n\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
\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
\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\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\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 \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
\n
\n 6,4,7,5,7 \n
\n
\n Unique \n
33 \n \n
\n
\n
\n 7,4,5,7,2 \n
\n
\n Refresh \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","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 API Clients \n\n \n\n\n
\n \n
\n\n\n
\n \n\n
\n
Create a key that unlocks full API access, enabling extensive interaction with your account.
\n\n
\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 Status \n Public Id \n Private Key \n Created \n \n \n \n \n \n \n {{cred.status}} \n \n {{cred.id}} \n {{cred.private_key || 'REDACTED'}}
\n {{cred.created_at | amDateFormat:'LL'}} \n \n \n \n \n \n
\n
\n\n
\n\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 Status \n Url \n Events \n Delivery Logs \n \n \n \n \n \n \n {{webhook.status}} \n \n {{webhook.endpoint_uri}} \n \n \n {{webhook?.event_types?.length}} event(s)\n \n \n \n \n \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 Details \n Team \n Billing \n \n\n
\n \n
\n
\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\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 Details \n Team \n Billing \n \n\n
\n
\n\n
\n \n\n
\n
Invite your colleagues to join your team.
\n
\n \n \n Status \n Name \n Email \n \n \n \n \n \n \n {{member.status}} \n \n {{member.name}} \n {{member.email}} \n \n \n
\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 API Clients \n Logs \n \n\n
\n \n\n
\n\n
\n
\n \n \n Status \n API Mode \n Listening For \n Signing Secret \n Last Updated \n \n \n \n \n \n {{webhook?.status}} \n \n \n {{webhook?.api_mode}}\n \n \n {{webhook?.event_types?.length}} event(s)
\n \n \n reveal \n {{webhook?.secret_token}} \n \n {{webhook?.updated_at | amDateFormat:'LL'}} \n \n \n
\n
\n\n
\n\n
\n\n
\n \n
\n
\n
\n
\n
\n
15\" (click)=\"showAllDeliveries = !showAllDeliveries\">{{ showAllDeliveries ? 'Show Less' : 'Show More' }} \n
\n
\n\n
\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