diff --git a/main.js b/main.js index ae5c748..4596243 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_10__ = __webpack_require__(/*! @angular/router */ 60124); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_12__ = __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); @@ -21,7 +21,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _pages_org_settings_org_settings_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pages/org-settings/org-settings.component */ 16226); /* harmony import */ var _pages_account_settings_account_settings_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./pages/account-settings/account-settings.component */ 84411); /* 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 _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 22560); +/* 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_members_org_members_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./pages/org-members/org-members.component */ 23797); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/core */ 22560); + + @@ -43,6 +47,8 @@ const routes = [ { path: 'developers', component: _pages_developers_developers_component__WEBPACK_IMPORTED_MODULE_0__.DevelopersComponent, canActivate: [_auth_guards_is_authenticated_auth_guard__WEBPACK_IMPORTED_MODULE_5__.IsAuthenticatedAuthGuard] }, { path: 'developers/webhooks/:webhookId/logs', component: _pages_webhook_logs_webhook_logs_component__WEBPACK_IMPORTED_MODULE_8__.WebhookLogsComponent, canActivate: [_auth_guards_is_authenticated_auth_guard__WEBPACK_IMPORTED_MODULE_5__.IsAuthenticatedAuthGuard] }, { path: 'org/settings', component: _pages_org_settings_org_settings_component__WEBPACK_IMPORTED_MODULE_6__.OrgSettingsComponent, canActivate: [_auth_guards_is_authenticated_auth_guard__WEBPACK_IMPORTED_MODULE_5__.IsAuthenticatedAuthGuard] }, + { path: 'org/billing', component: _pages_org_billing_org_billing_component__WEBPACK_IMPORTED_MODULE_9__.OrgBillingComponent, canActivate: [_auth_guards_is_authenticated_auth_guard__WEBPACK_IMPORTED_MODULE_5__.IsAuthenticatedAuthGuard] }, + { path: 'org/members', component: _pages_org_members_org_members_component__WEBPACK_IMPORTED_MODULE_10__.OrgMembersComponent, canActivate: [_auth_guards_is_authenticated_auth_guard__WEBPACK_IMPORTED_MODULE_5__.IsAuthenticatedAuthGuard] }, { path: 'account/settings', component: _pages_account_settings_account_settings_component__WEBPACK_IMPORTED_MODULE_7__.AccountSettingsComponent, canActivate: [_auth_guards_is_authenticated_auth_guard__WEBPACK_IMPORTED_MODULE_5__.IsAuthenticatedAuthGuard] }, //must be at bottom of list { path: '**', redirectTo: 'developers' }, @@ -50,9 +56,9 @@ const routes = [ class AppRoutingModule { } AppRoutingModule.ɵfac = function AppRoutingModule_Factory(t) { return new (t || AppRoutingModule)(); }; -AppRoutingModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_9__["ɵɵdefineNgModule"]({ type: AppRoutingModule }); -AppRoutingModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_9__["ɵɵdefineInjector"]({ imports: [_angular_router__WEBPACK_IMPORTED_MODULE_10__.RouterModule.forRoot(routes), _angular_router__WEBPACK_IMPORTED_MODULE_10__.RouterModule] }); -(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_9__["ɵɵsetNgModuleScope"](AppRoutingModule, { imports: [_angular_router__WEBPACK_IMPORTED_MODULE_10__.RouterModule], exports: [_angular_router__WEBPACK_IMPORTED_MODULE_10__.RouterModule] }); })(); +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] }); })(); /***/ }), @@ -213,17 +219,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_27__ = __webpack_require__(/*! @angular/platform-browser */ 34497); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @angular/forms */ 2508); -/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @angular/common/http */ 58987); +/* 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 _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_19__ = __webpack_require__(/*! @fortawesome/free-solid-svg-icons */ 9306); -/* harmony import */ var _fortawesome_free_regular_svg_icons__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @fortawesome/free-regular-svg-icons */ 2898); -/* harmony import */ var ngx_highlightjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ngx-highlightjs */ 97101); -/* harmony import */ var _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! @ng-bootstrap/ng-bootstrap */ 3191); -/* harmony import */ var ngx_infinite_scroll__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ngx-infinite-scroll */ 47364); -/* harmony import */ var _fortawesome_angular_fontawesome__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @fortawesome/angular-fontawesome */ 19200); +/* 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 _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); @@ -233,19 +239,25 @@ __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_24__ = __webpack_require__(/*! @angular/router */ 60124); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_27__ = __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_31__ = __webpack_require__(/*! ngx-image-cropper */ 10649); +/* harmony import */ var ngx_image_cropper__WEBPACK_IMPORTED_MODULE_34__ = __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_29__ = __webpack_require__(/*! ng2-charts */ 31208); -/* harmony import */ var ngx_moment__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ngx-moment */ 20728); +/* 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 _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); /* harmony import */ var _components_org_webhooks_editor_org_webhooks_editor_component__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./components/org-webhooks-editor/org-webhooks-editor.component */ 57751); /* harmony import */ var _pages_webhook_logs_webhook_logs_component__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./pages/webhook-logs/webhook-logs.component */ 33007); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @angular/core */ 22560); +/* 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_members_org_members_component__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./pages/org-members/org-members.component */ 23797); +/* harmony import */ var _components_org_member_invite_org_member_invite_component__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./components/org-member-invite/org-member-invite.component */ 98764); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @angular/core */ 22560); + + + @@ -282,38 +294,38 @@ __webpack_require__.r(__webpack_exports__); class AppModule { constructor(library) { - library.addIconPacks(_fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_19__.fas, _fortawesome_free_regular_svg_icons__WEBPACK_IMPORTED_MODULE_20__.far); + library.addIconPacks(_fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_22__.fas, _fortawesome_free_regular_svg_icons__WEBPACK_IMPORTED_MODULE_23__.far); } } -AppModule.ɵfac = function AppModule_Factory(t) { return new (t || AppModule)(_angular_core__WEBPACK_IMPORTED_MODULE_21__["ɵɵinject"](_fortawesome_angular_fontawesome__WEBPACK_IMPORTED_MODULE_22__.FaIconLibrary)); }; -AppModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_21__["ɵɵdefineNgModule"]({ type: AppModule, bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_1__.AppComponent] }); -AppModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_21__["ɵɵdefineInjector"]({ providers: [ +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: [ { - provide: _angular_common_http__WEBPACK_IMPORTED_MODULE_23__.HTTP_INTERCEPTORS, + provide: _angular_common_http__WEBPACK_IMPORTED_MODULE_26__.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_24__.Router] + deps: [_services_auth_service__WEBPACK_IMPORTED_MODULE_11__.AuthService, _angular_router__WEBPACK_IMPORTED_MODULE_27__.Router] }, _auth_guards_is_authenticated_auth_guard__WEBPACK_IMPORTED_MODULE_10__.IsAuthenticatedAuthGuard, { - provide: ngx_highlightjs__WEBPACK_IMPORTED_MODULE_25__.HIGHLIGHT_OPTIONS, + provide: ngx_highlightjs__WEBPACK_IMPORTED_MODULE_28__.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_26__.FormsModule, - _angular_forms__WEBPACK_IMPORTED_MODULE_26__.ReactiveFormsModule, - _angular_platform_browser__WEBPACK_IMPORTED_MODULE_27__.BrowserModule, - _angular_common_http__WEBPACK_IMPORTED_MODULE_23__.HttpClientModule, + ], 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, _app_routing_module__WEBPACK_IMPORTED_MODULE_0__.AppRoutingModule, - _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_28__.NgbModule, - ng2_charts__WEBPACK_IMPORTED_MODULE_29__.NgChartsModule, - ngx_infinite_scroll__WEBPACK_IMPORTED_MODULE_30__.InfiniteScrollModule, - _fortawesome_angular_fontawesome__WEBPACK_IMPORTED_MODULE_22__.FontAwesomeModule, - ngx_image_cropper__WEBPACK_IMPORTED_MODULE_31__.ImageCropperModule, - ngx_moment__WEBPACK_IMPORTED_MODULE_32__.MomentModule, - ngx_highlightjs__WEBPACK_IMPORTED_MODULE_25__.HighlightModule] }); -(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_21__["ɵɵsetNgModuleScope"](AppModule, { declarations: [_app_component__WEBPACK_IMPORTED_MODULE_1__.AppComponent, + _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, _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, @@ -326,19 +338,22 @@ AppModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_21__["ɵ _pages_account_settings_account_settings_component__WEBPACK_IMPORTED_MODULE_15__.AccountSettingsComponent, _components_org_credentials_editor_org_credentials_editor_component__WEBPACK_IMPORTED_MODULE_16__.OrgCredentialsEditorComponent, _components_org_webhooks_editor_org_webhooks_editor_component__WEBPACK_IMPORTED_MODULE_17__.OrgWebhooksEditorComponent, - _pages_webhook_logs_webhook_logs_component__WEBPACK_IMPORTED_MODULE_18__.WebhookLogsComponent], imports: [_angular_forms__WEBPACK_IMPORTED_MODULE_26__.FormsModule, - _angular_forms__WEBPACK_IMPORTED_MODULE_26__.ReactiveFormsModule, - _angular_platform_browser__WEBPACK_IMPORTED_MODULE_27__.BrowserModule, - _angular_common_http__WEBPACK_IMPORTED_MODULE_23__.HttpClientModule, + _pages_webhook_logs_webhook_logs_component__WEBPACK_IMPORTED_MODULE_18__.WebhookLogsComponent, + _pages_org_billing_org_billing_component__WEBPACK_IMPORTED_MODULE_19__.OrgBillingComponent, + _pages_org_members_org_members_component__WEBPACK_IMPORTED_MODULE_20__.OrgMembersComponent, + _components_org_member_invite_org_member_invite_component__WEBPACK_IMPORTED_MODULE_21__.OrgMemberInviteComponent], 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, _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_28__.NgbModule, - ng2_charts__WEBPACK_IMPORTED_MODULE_29__.NgChartsModule, - ngx_infinite_scroll__WEBPACK_IMPORTED_MODULE_30__.InfiniteScrollModule, - _fortawesome_angular_fontawesome__WEBPACK_IMPORTED_MODULE_22__.FontAwesomeModule, - ngx_image_cropper__WEBPACK_IMPORTED_MODULE_31__.ImageCropperModule, - ngx_moment__WEBPACK_IMPORTED_MODULE_32__.MomentModule, - ngx_highlightjs__WEBPACK_IMPORTED_MODULE_25__.HighlightModule] }); })(); + _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] }); })(); /***/ }), @@ -929,6 +944,136 @@ OrgCredentialsEditorComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPOR } }, 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__.PatternValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.NgModel, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.NgForm, _angular_common__WEBPACK_IMPORTED_MODULE_5__.NgIf, _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_3__.NgbTooltip], styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJvcmctY3JlZGVudGlhbHMtZWRpdG9yLmNvbXBvbmVudC5zY3NzIn0= */"] }); +/***/ }), + +/***/ 98764: +/*!*****************************************************************************!*\ + !*** ./src/app/components/org-member-invite/org-member-invite.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 */ "OrgMemberInviteComponent": () => (/* binding */ OrgMemberInviteComponent) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 22560); +/* harmony import */ var _services_connect_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../services/connect.service */ 84543); +/* harmony import */ var _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ng-bootstrap/ng-bootstrap */ 3191); +/* 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 OrgMemberInviteComponent_div_20_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 Address is required "); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} } +function OrgMemberInviteComponent_div_20_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 17); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](1, OrgMemberInviteComponent_div_20_div_1_Template, 2, 0, "div", 18); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); + const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵreference"](19); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", _r0.errors == null ? null : _r0.errors["required"]); +} } +function OrgMemberInviteComponent_div_21_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 17); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} if (rf & 2) { + const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"](" ", ctx_r2.submitOrgInviteError, " "); +} } +function OrgMemberInviteComponent_span_26_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](0, "span", 19); +} } +class OrgMemberInviteComponent { + constructor(connectService, activeModal) { + this.connectService = connectService; + this.activeModal = activeModal; + this.org = null; + this.teamMemberEmail = ''; + this.submitOrgInviteLoading = false; + this.submitOrgInviteError = ''; + } + ngOnInit() { + } + sendOrgMemberInvite() { + this.submitOrgInviteLoading = true; + this.submitOrgInviteError = ''; + if (!this.org?.id) { + this.submitOrgInviteLoading = false; + this.submitOrgInviteError = "Unknown Organization ID"; + return; + } + // this.connectService.createOrgWebhooks(this.org.id, this.apiMode!, this.endpointUri).subscribe((result) => { + // this.submitOrgWebhookLoading = false + // this.activeModal.close(result) + // }, (error: any) => { + // console.log("Error Adding Org Webhook", error) + // this.submitOrgWebhookLoading = false + // this.submitOrgWebhookError = JSON.stringify(error) + // + // }, + // () => { + // console.log("Completed Adding Org Webhook") + // this.submitOrgWebhookLoading = false + // }) + } +} +OrgMemberInviteComponent.ɵfac = function OrgMemberInviteComponent_Factory(t) { return new (t || OrgMemberInviteComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_services_connect_service__WEBPACK_IMPORTED_MODULE_0__.ConnectService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_2__.NgbActiveModal)); }; +OrgMemberInviteComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: OrgMemberInviteComponent, selectors: [["app-org-member-invite"]], inputs: { org: "org" }, decls: 27, vars: 5, consts: [[1, "modal-header"], ["id", "modal-webhook-title", 1, "modal-title"], ["type", "button", "aria-label", "Close", 1, "close", 3, "click"], ["aria-hidden", "true"], [1, "modal-body"], ["role", "alert", 1, "alert", "alert-warning", "mg-t-10"], [1, "mb-3"], ["for", "emailAddress"], ["ngbTooltip", "required", 1, "text-danger"], [1, "input-group"], ["required", "", "id", "emailAddress", "placeholder", "team_member@example.com", "name", "emailAddress", "type", "email", 1, "form-control", 3, "ngModel", "ngModelChange"], ["emailAddressField", "ngModel"], ["class", "alert alert-danger", 4, "ngIf"], [1, "modal-footer"], [2, "display", "block", "width", "100%"], ["type", "button", 1, "btn", "btn-outline-indigo", 3, "disabled", "click"], ["class", "spinner-border spinner-border-sm", "role", "status", "aria-hidden", "true", 4, "ngIf"], [1, "alert", "alert-danger"], [4, "ngIf"], ["role", "status", "aria-hidden", "true", 1, "spinner-border", "spinner-border-sm"]], template: function OrgMemberInviteComponent_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 0)(1, "h4", 1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](2, "Invite Team Member"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](3, "button", 2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("click", function OrgMemberInviteComponent_Template_button_click_3_listener() { return ctx.activeModal.dismiss("Cross click"); }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](4, "span", 3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](5, "\u00D7"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](6, "div", 4)(7, "div", 5)(8, "strong"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](9, "Warning"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](10, " Fasten Health high discourages email address from free domains such as Gmail due to access to sensitive information. "); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](11, "form")(12, "div", 6)(13, "label", 7); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](14, "Member Email"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](15, "span", 8); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](16, "*"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](17, "div", 9)(18, "input", 10, 11); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("ngModelChange", function OrgMemberInviteComponent_Template_input_ngModelChange_18_listener($event) { return ctx.teamMemberEmail = $event; }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](20, OrgMemberInviteComponent_div_20_Template, 2, 1, "div", 12); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](21, OrgMemberInviteComponent_div_21_Template, 2, 1, "div", 12); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](22, "div", 13)(23, "div", 14)(24, "button", 15); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("click", function OrgMemberInviteComponent_Template_button_click_24_listener() { return ctx.sendOrgMemberInvite(); }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](25, " Create "); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](26, OrgMemberInviteComponent_span_26_Template, 1, 0, "span", 16); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()()(); + } if (rf & 2) { + const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵreference"](19); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](18); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngModel", ctx.teamMemberEmail); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", _r0.invalid && (_r0.dirty || _r0.touched)); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", ctx.submitOrgInviteError); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("disabled", ctx.submitOrgInviteLoading); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", ctx.submitOrgInviteLoading); + } }, 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__.NgModel, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.NgForm, _angular_common__WEBPACK_IMPORTED_MODULE_4__.NgIf, _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_2__.NgbTooltip], styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJvcmctbWVtYmVyLWludml0ZS5jb21wb25lbnQuc2NzcyJ9 */"] }); + + /***/ }), /***/ 57751: @@ -1866,7 +2011,7 @@ class AuthSignupOrganizationComponent { } } AuthSignupOrganizationComponent.ɵfac = function AuthSignupOrganizationComponent_Factory(t) { return new (t || AuthSignupOrganizationComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdirectiveInject"](_services_connect_service__WEBPACK_IMPORTED_MODULE_3__.ConnectService), _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_5__.Router), _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdirectiveInject"](_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_6__.NgbModal), _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_7__.DomSanitizer)); }; -AuthSignupOrganizationComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdefineComponent"]({ type: AuthSignupOrganizationComponent, selectors: [["app-auth-signup-organization"]], decls: 53, vars: 18, consts: [[1, "row", 2, "overflow", "hidden", "height", "95vh"], ["class", "col-1 nopadding", 4, "ngFor", "ngForOf"], [1, "floating-signup", "outer-div"], [1, "inner-div"], [1, "az-signin-wrapper"], [1, "az-card-signin"], ["src", "assets/images/banner-transparent-trim.png", "alt", "fasten", 1, "az-img-logo", "mg-b-20"], [1, "az-signin-header"], ["height", "150px", 1, "cursor-pointer", "mx-auto", "d-block", 3, "src", "click"], [3, "ngSubmit"], ["orgForm", "ngForm"], [1, "form-group"], ["name", "name", "required", "", "minlength", "2", "type", "text", "placeholder", "Organization Name", 1, "form-control", 3, "ngModel", "ngModelChange"], ["name", "ngModel"], ["class", "alert alert-danger", 4, "ngIf"], ["name", "website_uri", "required", "", "autocapitalize", "none", "placeholder", "Website", 1, "form-control", 3, "ngModel", "pattern", "ngModelChange"], ["website_uri", "ngModel"], ["name", "privacy_policy_uri", "required", "", "placeholder", "Privacy Policy Url", 1, "form-control", 3, "ngModel", "pattern", "ngModelChange"], ["privacy_policy_uri", "ngModel"], ["name", "terms_and_conditions_uri", "placeholder", "Terms & Conditions Url", 1, "form-control", 3, "ngModel", "pattern", "ngModelChange"], ["terms_and_conditions_uri", "ngModel"], ["name", "company_size", "required", "", 1, "form-control", 3, "ngModel", "ngModelChange"], ["company_size", "ngModel"], ["value", "", "disabled", "", "selected", ""], ["value", "1_10"], ["value", "10_100"], ["value", "100_500"], ["value", "500_2000"], ["value", "2000_5000"], ["value", "5000_plus"], ["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, "col-1", "nopadding"], [1, "d-flex", "h-100"], [1, "mx-auto", "my-auto"], [1, "rounded", "img-fluid", "opacity-20", 3, "src"], [1, "alert", "alert-danger"], [4, "ngIf"], ["role", "status", "aria-hidden", "true", 1, "spinner-border", "spinner-border-sm"], ["role", "alert", 1, "alert", "alert-danger", "mt-3"]], template: function AuthSignupOrganizationComponent_Template(rf, ctx) { if (rf & 1) { +AuthSignupOrganizationComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdefineComponent"]({ type: AuthSignupOrganizationComponent, selectors: [["app-auth-signup-organization"]], decls: 53, vars: 19, consts: [[1, "row", 2, "overflow", "hidden", "height", "95vh"], ["class", "col-1 nopadding", 4, "ngFor", "ngForOf"], [1, "floating-signup", "outer-div"], [1, "inner-div"], [1, "az-signin-wrapper"], [1, "az-card-signin"], ["src", "assets/images/banner-transparent-trim.png", "alt", "fasten", 1, "az-img-logo", "mg-b-20"], [1, "az-signin-header"], ["height", "150px", 1, "cursor-pointer", "mx-auto", "d-block", "rounded-circle", 3, "src", "click"], [3, "ngSubmit"], ["orgForm", "ngForm"], [1, "form-group"], ["name", "name", "required", "", "minlength", "2", "type", "text", "placeholder", "Organization Name", 1, "form-control", 3, "ngModel", "ngModelChange"], ["name", "ngModel"], ["class", "alert alert-danger", 4, "ngIf"], ["name", "website_uri", "required", "", "autocapitalize", "none", "placeholder", "Website", 1, "form-control", 3, "ngModel", "pattern", "ngModelChange"], ["website_uri", "ngModel"], ["name", "privacy_policy_uri", "required", "", "placeholder", "Privacy Policy Url", 1, "form-control", 3, "ngModel", "pattern", "ngModelChange"], ["privacy_policy_uri", "ngModel"], ["name", "terms_and_conditions_uri", "placeholder", "Terms & Conditions Url", 1, "form-control", 3, "ngModel", "pattern", "ngModelChange"], ["terms_and_conditions_uri", "ngModel"], ["name", "company_size", "required", "", 1, "form-control", 3, "ngModel", "ngModelChange"], ["company_size", "ngModel"], ["value", "", "disabled", "", "selected", ""], ["value", "1_10"], ["value", "10_100"], ["value", "100_500"], ["value", "500_2000"], ["value", "2000_5000"], ["value", "5000_plus"], ["type", "submit", "ngbTooltip", "Logo is required", "placement", "top", 1, "btn", "btn-az-primary", "btn-block", 3, "disabled", "disableTooltip"], ["class", "spinner-border spinner-border-sm", "role", "status", "aria-hidden", "true", 4, "ngIf"], ["class", "alert alert-danger mt-3", "role", "alert", 4, "ngIf"], [1, "col-1", "nopadding"], [1, "d-flex", "h-100"], [1, "mx-auto", "my-auto"], [1, "rounded", "img-fluid", "opacity-20", 3, "src"], [1, "alert", "alert-danger"], [4, "ngIf"], ["role", "status", "aria-hidden", "true", 1, "spinner-border", "spinner-border-sm"], ["role", "alert", 1, "alert", "alert-danger", "mt-3"]], template: function AuthSignupOrganizationComponent_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementStart"](0, "div", 0); _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵtemplate"](1, AuthSignupOrganizationComponent_div_1_Template, 4, 1, "div", 1); _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵelementEnd"](); @@ -1966,12 +2111,12 @@ AuthSignupOrganizationComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMP _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](16); _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("ngIf", _r10.invalid && (_r10.dirty || _r10.touched)); _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("disabled", !_r1.form.valid || !ctx.croppedImageEvent || ctx.loading); + _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("disabled", !_r1.form.valid || !ctx.croppedImageEvent || ctx.loading)("disableTooltip", !!ctx.croppedImageEvent); _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("ngIf", ctx.loading); _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵproperty"]("ngIf", ctx.errorMsg); - } }, dependencies: [_angular_forms__WEBPACK_IMPORTED_MODULE_8__["ɵNgNoValidate"], _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgSelectOption, _angular_forms__WEBPACK_IMPORTED_MODULE_8__["ɵNgSelectMultipleOption"], _angular_forms__WEBPACK_IMPORTED_MODULE_8__.DefaultValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.SelectControlValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgControlStatus, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgControlStatusGroup, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.RequiredValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.MinLengthValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.PatternValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgModel, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgForm, _angular_common__WEBPACK_IMPORTED_MODULE_9__.NgForOf, _angular_common__WEBPACK_IMPORTED_MODULE_9__.NgIf], styles: [".circle[_ngcontent-%COMP%] {\n display: inline-block;\n background-color: #00d53b;\n margin: 10px;\n border-radius: 50%;\n}\n\n.circle-inner[_ngcontent-%COMP%] {\n color: white;\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n text-decoration: none;\n height: 100px;\n width: 100px;\n font-size: 30px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgtc2lnbnVwLW9yZ2FuaXphdGlvbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHFCQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUFDRjs7QUFFQTtFQUNFLFlBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7RUFDQSxxQkFBQTtFQUNBLGFBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtBQUNGIiwiZmlsZSI6ImF1dGgtc2lnbnVwLW9yZ2FuaXphdGlvbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jaXJjbGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGQ1M2I7XG4gIG1hcmdpbjogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4uY2lyY2xlLWlubmVyIHtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgd2lkdGg6IDEwMHB4O1xuICBmb250LXNpemU6IDMwcHg7XG59XG4iXX0= */"] }); + } }, dependencies: [_angular_forms__WEBPACK_IMPORTED_MODULE_8__["ɵNgNoValidate"], _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgSelectOption, _angular_forms__WEBPACK_IMPORTED_MODULE_8__["ɵNgSelectMultipleOption"], _angular_forms__WEBPACK_IMPORTED_MODULE_8__.DefaultValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.SelectControlValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgControlStatus, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgControlStatusGroup, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.RequiredValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.MinLengthValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.PatternValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgModel, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgForm, _angular_common__WEBPACK_IMPORTED_MODULE_9__.NgForOf, _angular_common__WEBPACK_IMPORTED_MODULE_9__.NgIf, _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_6__.NgbTooltip], styles: [".circle[_ngcontent-%COMP%] {\n display: inline-block;\n background-color: #00d53b;\n margin: 10px;\n border-radius: 50%;\n}\n\n.circle-inner[_ngcontent-%COMP%] {\n color: white;\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n text-decoration: none;\n height: 100px;\n width: 100px;\n font-size: 30px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgtc2lnbnVwLW9yZ2FuaXphdGlvbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHFCQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUFDRjs7QUFFQTtFQUNFLFlBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7RUFDQSxxQkFBQTtFQUNBLGFBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtBQUNGIiwiZmlsZSI6ImF1dGgtc2lnbnVwLW9yZ2FuaXphdGlvbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jaXJjbGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGQ1M2I7XG4gIG1hcmdpbjogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4uY2lyY2xlLWlubmVyIHtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgd2lkdGg6IDEwMHB4O1xuICBmb250LXNpemU6IDMwcHg7XG59XG4iXX0= */"] }); /***/ }), @@ -3044,41 +3189,74 @@ DevelopersComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE /***/ }), -/***/ 16226: -/*!**************************************************************!*\ - !*** ./src/app/pages/org-settings/org-settings.component.ts ***! - \**************************************************************/ +/***/ 57167: +/*!************************************************************!*\ + !*** ./src/app/pages/org-billing/org-billing.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 */ "OrgSettingsComponent": () => (/* binding */ OrgSettingsComponent) +/* harmony export */ "OrgBillingComponent": () => (/* binding */ OrgBillingComponent) /* harmony export */ }); /* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../environments/environment */ 92340); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 22560); /* harmony import */ var _services_portal_config_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../services/portal-config.service */ 32608); /* harmony import */ var _services_connect_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../services/connect.service */ 84543); /* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common */ 94666); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/router */ 60124); -function OrgSettingsComponent_div_33_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 37)(1, "button", 38)(2, "span", 39); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](3, "\u00D7"); + +function OrgBillingComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 7)(1, "div", 8)(2, "div", 9)(3, "h5", 10); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](4, " Invoices & Payment Methods "); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](5, "a", 11); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](6, "Visit the Billing Portal"); _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](4, "strong"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](5, "Plan Changed!"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](7, "div", 12)(8, "p"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](9, "Your account is active. You can view invoices and payment methods in the billing portal."); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()()()()(); +} if (rf & 2) { + const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](5); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("href", ctx_r1.stripe_customer_portal, _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵsanitizeUrl"]); +} } +function OrgBillingComponent_div_10_div_17_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 16)(1, "strong"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](2, "Plan Changed!"); _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](6, " Your plan changed recently. It may take up to 24 hours to reflect plan changes in your organization profile. "); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](3, " Your plan changed recently. It may take up to 24 hours to reflect plan changes in your organization profile. "); _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); } } -function OrgSettingsComponent_span_69_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](0, "span", 40); +function OrgBillingComponent_div_10_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 7)(1, "div", 8)(2, "div", 9)(3, "h5", 10); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](4, " Inactive Account "); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](5, "div", 12)(6, "div", 7)(7, "div", 13)(8, "h5"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](9, "No plan selected"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](10, "p"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](11, " Please contact "); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](12, "a", 14); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](13, "support@fastenhealth.com"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](14, " to activate your account. "); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](15, "br"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](16, " Inactive accounts may be purged after 30 days. "); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()()()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](17, OrgBillingComponent_div_10_div_17_Template, 4, 0, "div", 15); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()(); +} if (rf & 2) { + const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](17); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx_r2.recentlyChanged); } } -class OrgSettingsComponent { +class OrgBillingComponent { constructor(portalConfig, connectService) { this.portalConfig = portalConfig; this.connectService = connectService; @@ -3094,118 +3272,372 @@ class OrgSettingsComponent { this.recentlyChanged = true; } } - onUpgradePlan() { - this.loading = true; - this.connectService.upgradePlanCheckoutRedirect().subscribe(() => { - this.loading = false; - console.log("waiting for redirect"); - }); - } } -OrgSettingsComponent.ɵfac = function OrgSettingsComponent_Factory(t) { return new (t || OrgSettingsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_services_portal_config_service__WEBPACK_IMPORTED_MODULE_1__.PortalConfigService), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_services_connect_service__WEBPACK_IMPORTED_MODULE_2__.ConnectService)); }; -OrgSettingsComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdefineComponent"]({ type: OrgSettingsComponent, selectors: [["app-org-settings"]], decls: 81, vars: 12, consts: [[1, "az-content", "az-content-profile"], [1, "container", "mn-ht-100p"], [1, "az-content-left", "az-content-left-profile"], [1, "az-profile-overview"], [1, "az-img-user"], ["alt", "", 3, "src"], [1, "d-flex", "justify-content-between", "mg-b-20"], [1, "az-profile-name"], [1, "az-profile-name-text"], [1, ""], ["target", "_blank", 1, "az-link", 3, "href"], [1, "mg-y-30"], [1, "az-content-body", "az-content-body-profile"], [1, "az-profile-body"], [1, "row", "mg-b-20"], [1, "col-12"], [1, "card", "mg-t-20"], [1, "card-header", "d-flex", "justify-content-between", "align-items-center"], [1, "btn", "btn-link", "float-right", 3, "href"], [1, "mg-t-10"], ["class", "alert alert-info mg-b-30", "role", "alert", 4, "ngIf"], ["id", "pricing-two-mnthly", "role", "tabpanel", "aria-labelledby", "pricing-two-mnthly-tab", 1, "tab-pane", "active"], [1, "row"], [1, "offset-1", "col-lg-5", "mb-4"], [1, "card", "border-0", "card-shadow", "h-100"], [1, "card-body", "p-4", "p-xl-5"], [1, "mb-3"], [1, "d-flex", "align-items-center"], [1, "mb-0", "mr-auto", "font-weight-bold"], [1, "mb-4"], [1, "btn", "btn-indigo", "btn-block", "mb-4", 3, "disabled"], [1, "list-arrow", "mb-40px"], [1, "col-lg-5", "mb-4"], [1, "btn", "btn-indigo", "btn-block", "mb-4", 3, "disabled", "click"], ["class", "spinner-border spinner-border-sm", "role", "status", "aria-hidden", "true", 4, "ngIf"], [1, "mg-y-40"], [1, "mg-b-20"], ["role", "alert", 1, "alert", "alert-info", "mg-b-30"], ["type", "button", "data-dismiss", "alert", "aria-label", "Close", 1, "close"], ["aria-hidden", "true"], ["role", "status", "aria-hidden", "true", 1, "spinner-border", "spinner-border-sm"]], template: function OrgSettingsComponent_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](5, "img", 5); +OrgBillingComponent.ɵfac = function OrgBillingComponent_Factory(t) { return new (t || OrgBillingComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_services_portal_config_service__WEBPACK_IMPORTED_MODULE_1__.PortalConfigService), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_services_connect_service__WEBPACK_IMPORTED_MODULE_2__.ConnectService)); }; +OrgBillingComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdefineComponent"]({ type: OrgBillingComponent, selectors: [["app-org-billing"]], decls: 11, vars: 2, consts: [[1, "mg-t-10", "container"], [1, "mg-l-auto", "nav", "nav-pills", "flex-column", "flex-md-row"], ["data-bs-toggle", "tab", "routerLink", "/org/settings", 1, "nav-link"], ["data-bs-toggle", "tab", "routerLink", "/org/members", 1, "nav-link"], ["data-bs-toggle", "tab", "routerLink", "/org/billing", 1, "nav-link", "active"], ["activePlan", ""], ["class", "row", 4, "ngIf", "ngIfElse"], [1, "row"], [1, "col-12"], [1, "card", "mg-t-20"], [1, "card-header", "d-flex", "justify-content-between", "align-items-center"], [1, "btn", "btn-link", "float-right", 3, "href"], [1, "card-body"], [1, "col-12", "tx-gray-700"], ["href", "mailto:support@fastenhealth.com"], ["class", "alert alert-info mg-b-30", "role", "alert", 4, "ngIf"], ["role", "alert", 1, "alert", "alert-info", "mg-b-30"]], template: function OrgBillingComponent_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 0)(1, "nav", 1)(2, "a", 2); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](3, "Details"); _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](6, "div", 6)(7, "div")(8, "h5", 7); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](9); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](4, "a", 3); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](5, "Members"); _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](10, "p", 8); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](11); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](12, "div", 9)(13, "ul")(14, "li")(15, "a", 10); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](16, "Privacy Policy"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](17, "li")(18, "a", 10); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](19, "Terms of Use"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](20, "hr", 11); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](6, "a", 4); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](7, "Billing"); _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](21, "div", 12)(22, "div", 13)(23, "div", 14)(24, "div", 15)(25, "div", 16)(26, "h5", 17); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](27, " Invoices & Payment Methods "); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](28, "a", 18); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](29, "Please visit the Billing Portal"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()()()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](30, "div", 14)(31, "div", 15)(32, "div", 19); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](33, OrgSettingsComponent_div_33_Template, 7, 0, "div", 20); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](34, "div", 21)(35, "div", 22)(36, "div", 23)(37, "div", 24)(38, "div", 25)(39, "h4", 26); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](40, "Development"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](8, OrgBillingComponent_ng_template_8_Template, 10, 1, "ng-template", null, 5, _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplateRefExtractor"]); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](10, OrgBillingComponent_div_10_Template, 18, 1, "div", 6); _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](41, "div", 27)(42, "h3", 28); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](43, "Free"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](44, "h6", 29); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](45, "Monthly"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](46, "button", 30); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](47); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](48, "ul", 31)(49, "li"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](50, "Test mode only"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](51, "li"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](52, "Sandbox EHR Integrations"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](53, "li"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](54, "No live Patient Data"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](55, "li"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](56, "Email Support"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()()()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](57, "div", 32)(58, "div", 24)(59, "div", 25)(60, "h4", 26); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](61, "Live"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](62, "div", 27)(63, "h3", 28); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](64, "$100.00"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](65, "h6", 29); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](66, "Minimum Monthly"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](67, "button", 33); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function OrgSettingsComponent_Template_button_click_67_listener() { return ctx.onUpgradePlan(); }); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](68); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](69, OrgSettingsComponent_span_69_Template, 1, 0, "span", 34); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](70, "ul", 31)(71, "li"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](72, "Test & Live mode"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](73, "li"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](74, "27,000+ EHR Integrations"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](75, "li"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](76, "Live Patient Data"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](77, "li"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](78, "Email & Live Chat Support"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()()()()()()()()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](79, "hr", 35)(80, "div", 36); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()()()(); } if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](5); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpropertyInterpolate"]("src", ctx.portalConfig.config$.org == null ? null : ctx.portalConfig.config$.org.logo_uri, _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵsanitizeUrl"]); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate"](ctx.portalConfig.config$.org == null ? null : ctx.portalConfig.config$.org.name); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate"](ctx.portalConfig.config$.org == null ? null : ctx.portalConfig.config$.org.plan); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("href", ctx.portalConfig.config$.org == null ? null : ctx.portalConfig.config$.org.privacy_policy_uri, _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵsanitizeUrl"]); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("href", ctx.portalConfig.config$.org == null ? null : ctx.portalConfig.config$.org.terms_and_conditions_uri, _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵsanitizeUrl"]); + const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵreference"](9); _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](10); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("href", ctx.stripe_customer_portal, _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵsanitizeUrl"]); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](5); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx.recentlyChanged); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](13); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("disabled", ctx.loading || (ctx.portalConfig.config$.org == null ? null : ctx.portalConfig.config$.org.plan) != "paid"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate1"](" ", (ctx.portalConfig.config$.org == null ? null : ctx.portalConfig.config$.org.plan) != "paid" ? "Current" : "Change Plan", " "); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](20); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("disabled", ctx.loading || (ctx.portalConfig.config$.org == null ? null : ctx.portalConfig.config$.org.plan) == "paid"); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate1"](" ", (ctx.portalConfig.config$.org == null ? null : ctx.portalConfig.config$.org.plan) == "paid" ? "Current" : "Upgrade Plan", " "); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx.loading); - } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.NgIf], styles: [".card-shadow[_ngcontent-%COMP%] {\n box-shadow: 0 2px 30px 0 rgba(207, 207, 207, 0.5);\n}\n\nul.list-arrow[_ngcontent-%COMP%] {\n list-style: none;\n}\n\nul.list-arrow[_ngcontent-%COMP%] li[_ngcontent-%COMP%] {\n position: relative;\n margin-bottom: 14px;\n}\n\nul.list-arrow[_ngcontent-%COMP%] li[_ngcontent-%COMP%]::before {\n content: \"\";\n display: inline-block;\n height: 20px;\n width: 20px;\n background-image: url(\"data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%235b47fb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-arrow-right-circle'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 16 16 12 12 8'%3E%3C/polyline%3E%3Cline x1='8' y1='12' x2='16' y2='12'%3E%3C/line%3E%3C/svg%3E\");\n background-size: 20px;\n background-repeat: no-repeat;\n background-position: center;\n position: absolute;\n left: -35px;\n top: 2px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZy1zZXR0aW5ncy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlEQUFBO0FBQ0Y7O0FBR0E7RUFDRSxnQkFBQTtBQUFGOztBQUVBO0VBQ0Usa0JBQUE7RUFDQSxtQkFBQTtBQUNGOztBQUNBO0VBQ0UsV0FBQTtFQUNBLHFCQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxxYkFBQTtFQUNBLHFCQUFBO0VBQ0EsNEJBQUE7RUFDQSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFFBQUE7QUFFRiIsImZpbGUiOiJvcmctc2V0dGluZ3MuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY2FyZC1zaGFkb3cge1xuICBib3gtc2hhZG93OiAwIDJweCAzMHB4IDAgcmdiYSgyMDcsIDIwNywgMjA3LCAwLjUpO1xufVxuXG5cbnVsLmxpc3QtYXJyb3cge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxudWwubGlzdC1hcnJvdyBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcbn1cbnVsLmxpc3QtYXJyb3cgbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUwQSUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzViNDdmYicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIGNsYXNzPSdmZWF0aGVyIGZlYXRoZXItYXJyb3ctcmlnaHQtY2lyY2xlJyUzRSUzQ2NpcmNsZSBjeD0nMTInIGN5PScxMicgcj0nMTAnJTNFJTNDL2NpcmNsZSUzRSUzQ3BvbHlsaW5lIHBvaW50cz0nMTIgMTYgMTYgMTIgMTIgOCclM0UlM0MvcG9seWxpbmUlM0UlM0NsaW5lIHgxPSc4JyB5MT0nMTInIHgyPScxNicgeTI9JzEyJyUzRSUzQy9saW5lJTNFJTNDL3N2ZyUzRVwiKTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTM1cHg7XG4gIHRvcDogMnB4O1xufVxuIl19 */"] }); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", (ctx.portalConfig.config$.org == null ? null : ctx.portalConfig.config$.org.plan) != "paid")("ngIfElse", _r0); + } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.NgIf, _angular_router__WEBPACK_IMPORTED_MODULE_5__.RouterLinkWithHref], styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJvcmctYmlsbGluZy5jb21wb25lbnQuc2NzcyJ9 */"] }); + + +/***/ }), + +/***/ 23797: +/*!************************************************************!*\ + !*** ./src/app/pages/org-members/org-members.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 */ "OrgMembersComponent": () => (/* binding */ OrgMembersComponent) +/* harmony export */ }); +/* harmony import */ var _components_org_member_invite_org_member_invite_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../components/org-member-invite/org-member-invite.component */ 98764); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 22560); +/* harmony import */ var _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ng-bootstrap/ng-bootstrap */ 3191); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ 60124); + + + + +class OrgMembersComponent { + constructor(modalService) { + this.modalService = modalService; + } + ngOnInit() { + } + openOrgMemberInviteModal() { + this.modalService.open(_components_org_member_invite_org_member_invite_component__WEBPACK_IMPORTED_MODULE_0__.OrgMemberInviteComponent).result.then((result) => { + console.log(`Closed with: ${result}`); + }, (reason) => { + console.log(`Dismissed`, reason); + }); + } +} +OrgMembersComponent.ɵfac = function OrgMembersComponent_Factory(t) { return new (t || OrgMembersComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_2__.NgbModal)); }; +OrgMembersComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: OrgMembersComponent, selectors: [["app-org-members"]], decls: 27, vars: 0, consts: [[1, "mg-t-10", "container"], [1, "mg-l-auto", "nav", "nav-pills", "flex-column", "flex-md-row"], ["data-bs-toggle", "tab", "routerLink", "/org/settings", 1, "nav-link"], ["data-bs-toggle", "tab", "routerLink", "/org/members", 1, "nav-link", "active"], ["data-bs-toggle", "tab", "routerLink", "/org/billing", 1, "nav-link"], [1, "row"], [1, "col-12"], [1, "card", "mg-t-20"], [1, "card-header", "d-flex", "justify-content-between", "align-items-center"], [1, "btn", "btn-outline-indigo", "float-right", "text-indigo", 3, "click"], [1, "card-body"], [1, "table", "mg-t-10"], ["scope", "col"]], template: function OrgMembersComponent_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 0)(1, "nav", 1)(2, "a", 2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](3, "Details"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](4, "a", 3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](5, "Members"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](6, "a", 4); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](7, "Billing"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](8, "div", 5)(9, "div", 6)(10, "div", 7)(11, "h5", 8); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](12, " Team Members "); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](13, "button", 9); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("click", function OrgMembersComponent_Template_button_click_13_listener() { return ctx.openOrgMemberInviteModal(); }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](14, "Invite new Member"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](15, "div", 10)(16, "p"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](17, "Invite your colleagues to join your team."); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](18, "table", 11)(19, "thead")(20, "tr")(21, "th", 12); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](22, "Name"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](23, "th", 12); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](24, "Email"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](25, "th"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](26, "tbody"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()()()()()(); + } }, dependencies: [_angular_router__WEBPACK_IMPORTED_MODULE_3__.RouterLinkWithHref], styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJvcmctbWVtYmVycy5jb21wb25lbnQuc2NzcyJ9 */"] }); + + +/***/ }), + +/***/ 16226: +/*!**************************************************************!*\ + !*** ./src/app/pages/org-settings/org-settings.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 */ "OrgSettingsComponent": () => (/* binding */ OrgSettingsComponent) +/* harmony export */ }); +/* harmony import */ var _app_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../app.constants */ 2976); +/* harmony import */ var _models_fasten_organization__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../models/fasten/organization */ 41306); +/* harmony import */ var _components_logo_cropper_logo_cropper_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/logo-cropper/logo-cropper.component */ 57993); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 22560); +/* harmony import */ var _services_portal_config_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../services/portal-config.service */ 32608); +/* harmony import */ var _services_connect_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../services/connect.service */ 84543); +/* harmony import */ var _ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ng-bootstrap/ng-bootstrap */ 3191); +/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/platform-browser */ 34497); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/forms */ 2508); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/common */ 94666); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/router */ 60124); + + + + + + + + + + + +function OrgSettingsComponent_div_31_div_1_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](1, " Organization Name is required. "); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); +} } +function OrgSettingsComponent_div_31_div_2_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](1, " Organization Name must be at least 2 characters long. "); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); +} } +function OrgSettingsComponent_div_31_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div", 29); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](1, OrgSettingsComponent_div_31_div_1_Template, 2, 0, "div", 30); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](2, OrgSettingsComponent_div_31_div_2_Template, 2, 0, "div", 30); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); +} if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnextContext"](); + const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](30); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", _r1.errors == null ? null : _r1.errors["required"]); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", _r1.errors == null ? null : _r1.errors["minlength"]); +} } +function OrgSettingsComponent_div_44_div_1_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](1, " Website is required. "); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); +} } +function OrgSettingsComponent_div_44_div_2_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](1, " Website must be a valid url starting with https:// "); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); +} } +function OrgSettingsComponent_div_44_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div", 29); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](1, OrgSettingsComponent_div_44_div_1_Template, 2, 0, "div", 30); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](2, OrgSettingsComponent_div_44_div_2_Template, 2, 0, "div", 30); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); +} if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnextContext"](); + const _r3 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](43); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", _r3.errors == null ? null : _r3.errors["required"]); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", _r3.errors == null ? null : _r3.errors["pattern"]); +} } +function OrgSettingsComponent_div_50_div_1_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](1, " Privacy Policy Url is required. "); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); +} } +function OrgSettingsComponent_div_50_div_2_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](1, " Privacy Policy must be a valid url starting with https:// "); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); +} } +function OrgSettingsComponent_div_50_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div", 29); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](1, OrgSettingsComponent_div_50_div_1_Template, 2, 0, "div", 30); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](2, OrgSettingsComponent_div_50_div_2_Template, 2, 0, "div", 30); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); +} if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnextContext"](); + const _r5 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](49); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", _r5.errors == null ? null : _r5.errors["required"]); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", _r5.errors == null ? null : _r5.errors["pattern"]); +} } +function OrgSettingsComponent_div_56_div_1_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](1, " Terms & Conditions must be a valid url starting with https:// "); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); +} } +function OrgSettingsComponent_div_56_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div", 29); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](1, OrgSettingsComponent_div_56_div_1_Template, 2, 0, "div", 30); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); +} if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnextContext"](); + const _r7 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](55); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", _r7.errors == null ? null : _r7.errors["pattern"]); +} } +function OrgSettingsComponent_span_59_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelement"](0, "span", 31); +} } +function OrgSettingsComponent_div_60_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div", 32)(1, "strong"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](2, "Error"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); +} if (rf & 2) { + const ctx_r10 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtextInterpolate1"](" ", ctx_r10.errorMsg, " "); +} } +class OrgSettingsComponent { + constructor(portalConfig, connectService, modalService, sanitizer) { + this.portalConfig = portalConfig; + this.connectService = connectService; + this.modalService = modalService; + this.sanitizer = sanitizer; + this.loading = false; + this.urlPattern = _app_constants__WEBPACK_IMPORTED_MODULE_0__.URL_PATTERN; + this.submitted = false; + this.updateOrg = new _models_fasten_organization__WEBPACK_IMPORTED_MODULE_1__.Organization(); + this.errorMsg = ""; + this.croppedImage = ''; + this.croppedImageEvent = null; + } + ngOnInit() { + this.portalConfig.ConfigSubject.subscribe((config) => { + this.updateOrg = { ...config.org }; + }); + } + updateOrgSubmit() { + this.loading = true; + this.submitted = true; + console.log("starting update process...", this.updateOrg); + this.connectService.updateOrg(this.portalConfig.config$.org?.id, this.updateOrg, this.croppedImageEvent?.blob).subscribe((resp) => { + console.log("Organization Updated", resp); + }, (err) => { + console.error("Error updating Organization", err); + this.errorMsg = err.error.message; + this.loading = false; + }); + } + openLogoCropper() { + this.modalService.open(_components_logo_cropper_logo_cropper_component__WEBPACK_IMPORTED_MODULE_2__.LogoCropperComponent).result.then((result) => { + this.croppedImageEvent = result; + this.croppedImage = this.sanitizer.bypassSecurityTrustUrl(this.croppedImageEvent?.objectUrl); + }, (reason) => { + console.log(`Dismissed`, reason); + }); + } +} +OrgSettingsComponent.ɵfac = function OrgSettingsComponent_Factory(t) { return new (t || OrgSettingsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdirectiveInject"](_services_portal_config_service__WEBPACK_IMPORTED_MODULE_3__.PortalConfigService), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdirectiveInject"](_services_connect_service__WEBPACK_IMPORTED_MODULE_4__.ConnectService), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdirectiveInject"](_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_6__.NgbModal), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdirectiveInject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_7__.DomSanitizer)); }; +OrgSettingsComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdefineComponent"]({ type: OrgSettingsComponent, selectors: [["app-org-settings"]], decls: 61, vars: 16, consts: [[1, "mg-t-10", "container"], [1, "mg-l-auto", "nav", "nav-pills", "flex-column", "flex-md-row"], ["data-bs-toggle", "tab", "routerLink", "/org/settings", 1, "nav-link", "active"], ["data-bs-toggle", "tab", "routerLink", "/org/members", 1, "nav-link"], ["data-bs-toggle", "tab", "routerLink", "/org/billing", 1, "nav-link"], [1, "row"], [1, "col-12"], [1, "card", "mg-t-20"], [1, "card-header", "d-flex", "justify-content-between", "align-items-center"], [1, "card-body"], [3, "ngSubmit"], ["orgForm", "ngForm"], [1, "col-6"], [1, "form-group"], [1, "az-content-label", "tx-11", "tx-medium", "tx-gray-600"], ["name", "name", "required", "", "minlength", "2", "type", "text", 1, "form-control", 3, "ngModel", "ngModelChange"], ["name", "ngModel"], ["class", "alert alert-danger", 4, "ngIf"], [1, ""], ["height", "150px", "alt", "", 1, "cursor-pointer", "mx-auto", "d-block", "rounded-circle", 3, "src", "click"], ["name", "website_uri", "required", "", "autocapitalize", "none", 1, "form-control", 3, "ngModel", "pattern", "ngModelChange"], ["website_uri", "ngModel"], ["name", "privacy_policy_uri", "required", "", 1, "form-control", 3, "ngModel", "pattern", "ngModelChange"], ["privacy_policy_uri", "ngModel"], ["name", "terms_and_conditions_uri", 1, "form-control", 3, "ngModel", "pattern", "ngModelChange"], ["terms_and_conditions_uri", "ngModel"], ["type", "submit", 1, "btn", "btn-az-primary", "float-right", 3, "disabled"], ["class", "spinner-border spinner-border-sm", "role", "status", "aria-hidden", "true", 4, "ngIf"], ["class", "alert alert-danger mt-5", "role", "alert", 4, "ngIf"], [1, "alert", "alert-danger"], [4, "ngIf"], ["role", "status", "aria-hidden", "true", 1, "spinner-border", "spinner-border-sm"], ["role", "alert", 1, "alert", "alert-danger", "mt-5"]], template: function OrgSettingsComponent_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div", 0)(1, "nav", 1)(2, "a", 2); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](3, "Details"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](4, "a", 3); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](5, "Members"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](6, "a", 4); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](7, "Billing"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](8, "div", 5)(9, "div", 6)(10, "div", 7)(11, "h5", 8); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](12, " Details "); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](13, "div", 9)(14, "form", 10, 11); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("ngSubmit", function OrgSettingsComponent_Template_form_ngSubmit_14_listener() { return ctx.updateOrgSubmit(); }); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](16, "p"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](17, "Use this form to update information about your Organization"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](18, "div", 5)(19, "div", 12)(20, "div", 13)(21, "label", 14); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](22, "Organization ID"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](23, "pre")(24, "code"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](25); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"]()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](26, "div", 13)(27, "label", 14); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](28, "Organization Name"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](29, "input", 15, 16); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("ngModelChange", function OrgSettingsComponent_Template_input_ngModelChange_29_listener($event) { return ctx.updateOrg.name = $event; }); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](31, OrgSettingsComponent_div_31_Template, 3, 2, "div", 17); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](32, "div", 13)(33, "label", 14); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](34, "Organization Logo"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelement"](35, "br"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](36, "div", 18)(37, "img", 19); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("click", function OrgSettingsComponent_Template_img_click_37_listener() { return ctx.openLogoCropper(); }); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"]()()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](38, "div", 12)(39, "div", 13)(40, "label", 14); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](41, "Organization Website"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](42, "input", 20, 21); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("ngModelChange", function OrgSettingsComponent_Template_input_ngModelChange_42_listener($event) { return ctx.updateOrg.website_uri = $event; }); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](44, OrgSettingsComponent_div_44_Template, 3, 2, "div", 17); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](45, "div", 13)(46, "label", 14); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](47, "Privacy Policy Url"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](48, "input", 22, 23); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("ngModelChange", function OrgSettingsComponent_Template_input_ngModelChange_48_listener($event) { return ctx.updateOrg.privacy_policy_uri = $event; }); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](50, OrgSettingsComponent_div_50_Template, 3, 2, "div", 17); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](51, "div", 13)(52, "label", 14); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](53, "Terms & Conditions Url"); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](54, "input", 24, 25); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("ngModelChange", function OrgSettingsComponent_Template_input_ngModelChange_54_listener($event) { return ctx.updateOrg.terms_and_conditions_uri = $event; }); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](56, OrgSettingsComponent_div_56_Template, 2, 1, "div", 17); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"]()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](57, "button", 26); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](58, " Save Changes "); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](59, OrgSettingsComponent_span_59_Template, 1, 0, "span", 27); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](60, OrgSettingsComponent_div_60_Template, 4, 1, "div", 28); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"]()()()()()(); + } if (rf & 2) { + const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](15); + const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](30); + const _r3 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](43); + const _r5 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](49); + const _r7 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](55); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](25); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtextInterpolate"](ctx.updateOrg.id); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngModel", ctx.updateOrg.name); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", _r1.invalid && (_r1.dirty || _r1.touched)); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](6); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("src", ctx.croppedImage || ctx.updateOrg.logo_uri || "assets/images/missing_logo.jpg", _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵsanitizeUrl"]); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](5); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngModel", ctx.updateOrg.website_uri)("pattern", ctx.urlPattern); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", _r3.invalid && (_r3.dirty || _r3.touched)); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngModel", ctx.updateOrg.privacy_policy_uri)("pattern", ctx.urlPattern); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", _r5.invalid && (_r5.dirty || _r5.touched)); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngModel", ctx.updateOrg.terms_and_conditions_uri)("pattern", ctx.urlPattern); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", _r7.invalid && (_r7.dirty || _r7.touched)); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("disabled", !_r0.form.dirty || !_r0.form.valid || ctx.loading); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", ctx.loading); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", ctx.errorMsg); + } }, dependencies: [_angular_forms__WEBPACK_IMPORTED_MODULE_8__["ɵNgNoValidate"], _angular_forms__WEBPACK_IMPORTED_MODULE_8__.DefaultValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgControlStatus, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgControlStatusGroup, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.RequiredValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.MinLengthValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.PatternValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgModel, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgForm, _angular_common__WEBPACK_IMPORTED_MODULE_9__.NgIf, _angular_router__WEBPACK_IMPORTED_MODULE_10__.RouterLinkWithHref], styles: [".card-shadow[_ngcontent-%COMP%] {\n box-shadow: 0 2px 30px 0 rgba(207, 207, 207, 0.5);\n}\n\nul.list-arrow[_ngcontent-%COMP%] {\n list-style: none;\n}\n\nul.list-arrow[_ngcontent-%COMP%] li[_ngcontent-%COMP%] {\n position: relative;\n margin-bottom: 14px;\n}\n\nul.list-arrow[_ngcontent-%COMP%] li[_ngcontent-%COMP%]::before {\n content: \"\";\n display: inline-block;\n height: 20px;\n width: 20px;\n background-image: url(\"data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%235b47fb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-arrow-right-circle'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 16 16 12 12 8'%3E%3C/polyline%3E%3Cline x1='8' y1='12' x2='16' y2='12'%3E%3C/line%3E%3C/svg%3E\");\n background-size: 20px;\n background-repeat: no-repeat;\n background-position: center;\n position: absolute;\n left: -35px;\n top: 2px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZy1zZXR0aW5ncy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlEQUFBO0FBQ0Y7O0FBR0E7RUFDRSxnQkFBQTtBQUFGOztBQUVBO0VBQ0Usa0JBQUE7RUFDQSxtQkFBQTtBQUNGOztBQUNBO0VBQ0UsV0FBQTtFQUNBLHFCQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxxYkFBQTtFQUNBLHFCQUFBO0VBQ0EsNEJBQUE7RUFDQSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFFBQUE7QUFFRiIsImZpbGUiOiJvcmctc2V0dGluZ3MuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY2FyZC1zaGFkb3cge1xuICBib3gtc2hhZG93OiAwIDJweCAzMHB4IDAgcmdiYSgyMDcsIDIwNywgMjA3LCAwLjUpO1xufVxuXG5cbnVsLmxpc3QtYXJyb3cge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxudWwubGlzdC1hcnJvdyBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcbn1cbnVsLmxpc3QtYXJyb3cgbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUwQSUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzViNDdmYicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIGNsYXNzPSdmZWF0aGVyIGZlYXRoZXItYXJyb3ctcmlnaHQtY2lyY2xlJyUzRSUzQ2NpcmNsZSBjeD0nMTInIGN5PScxMicgcj0nMTAnJTNFJTNDL2NpcmNsZSUzRSUzQ3BvbHlsaW5lIHBvaW50cz0nMTIgMTYgMTYgMTIgMTIgOCclM0UlM0MvcG9seWxpbmUlM0UlM0NsaW5lIHgxPSc4JyB5MT0nMTInIHgyPScxNicgeTI9JzEyJyUzRSUzQy9saW5lJTNFJTNDL3N2ZyUzRVwiKTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTM1cHg7XG4gIHRvcDogMnB4O1xufVxuIl19 */"] }); /***/ }), @@ -3710,6 +4142,21 @@ class ConnectService { console.log(resp); return resp; } + updateOrg(orgId, updateOrg, logoBlob) { + const formData = new FormData(); + //add the org data to the form data + const orgJson = JSON.stringify(updateOrg); + const orgJsonBlob = new Blob([orgJson], { + type: 'application/json' + }); + formData.append("org", orgJsonBlob); + if (logoBlob) { + formData.append("logo", logoBlob); + } + let resp = this._httpClient.post(`${_environments_environment__WEBPACK_IMPORTED_MODULE_0__.environment.connect_api_endpoint_base}/org/${orgId}`, formData); + console.log(resp); + return resp; + } getOrg(orgId) { return this._httpClient.get(`${_environments_environment__WEBPACK_IMPORTED_MODULE_0__.environment.connect_api_endpoint_base}/org/${orgId}`) .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_2__.map)((response) => { diff --git a/main.js.map b/main.js.map index 5dd0abc..7873994 100644 --- a/main.js.map +++ b/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","mappings":"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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-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-settings/org-settings.component.ts","./src/app/pages/org-settings/org-settings.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';\n\nconst routes: Routes = [\n\n { path: 'auth/signin', component: AuthSigninComponent },\n { path: 'auth/signup', 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: 'account/settings', component: AccountSettingsComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n\n //must be at bottom of list\n { path: '**', redirectTo: 'developers' },\n\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component } from '@angular/core';\nimport {NavigationEnd, Router, RouterEvent} from '@angular/router';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n title = 'fastenhealth';\n\n showHeader:boolean = false;\n showFooter:boolean = true;\n\n constructor(\n private router: Router,\n // private toastService: ToastService,\n private modalService: NgbModal\n ) {}\n\n ngOnInit() {\n\n // navbar backdrop for mobile only\n const navbarBackdrop = document.createElement('div');\n navbarBackdrop.classList.add('az-navbar-backdrop');\n document.querySelector('body')?.appendChild(navbarBackdrop);\n\n //determine if we should show the header\n this.router.events.subscribe(event => this.routerEvent(event));\n }\n\n routerEvent(event: any) {\n if (event instanceof NavigationEnd) {\n //modify header\n if (event.url?.startsWith('/auth') || event.url?.startsWith('/desktop')) {\n this.showHeader = false;\n } else {\n // console.log(\"NU\")\n this.showHeader = true;\n }\n\n // close all open modals when route change\n this.modalService.dismissAll();\n }\n }\n}\n","
\n \n
\n \n
\n \n
\n","export const URL_PATTERN = /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$/;\n\n// https://medium.com/@ojiofor/angular-reactive-forms-strong-password-validation-8dbcce92eb6c\n// Minimum Length: A strong password should have a minimum length, typically at least 8 characters.\n// Uppercase Letters: It should contain at least one uppercase letter.\n// Lowercase Letters: It should contain at least one lowercase letter.\n// Numbers: It should contain at least one number.\n// Special Characters: It should contain at least one special character (e.g., !, @, #, $).\nexport const STRONG_PASSWORD_PATTERN = /^(?=[^A-Z]*[A-Z])(?=[^a-z]*[a-z])(?=\\D*\\d).{8,}$/;\n\nexport enum ApiMode {\n Live = 'live',\n Test = 'test',\n}\n\nexport enum CredentialStatus {\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport enum WebhookStatus {\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport enum WebhookDeliveryStatus {\n Success = 'success',\n Failure = 'failure',\n}\n\nexport enum CRUDMode {\n Create = 'create',\n Update = 'update',\n Delete = 'delete',\n}\n\nexport enum EventTypes{\n EventTypesPatientEHIExportFailed = \"patient.ehi_export_failed\",\n EventTypesPatientEHIExportSuccess = \"patient.ehi_export_success\",\n EventTypesPatientAuthorizationRevoked = \"patient.authorization_revoked\",\n EventTypesWebhookTest = \"webhook.test\",\n}\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\n\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\nimport { HighlightModule, HIGHLIGHT_OPTIONS } from 'ngx-highlightjs';\n\nimport {NgbModule} from '@ng-bootstrap/ng-bootstrap';\nimport {InfiniteScrollModule} from 'ngx-infinite-scroll';\nimport {FontAwesomeModule, FaIconLibrary} from '@fortawesome/angular-fontawesome';\nimport {HeaderComponent} from './components/header/header.component';\nimport {FooterComponent} from './components/footer/footer.component';\nimport { DevelopersComponent } from './pages/developers/developers.component';\nimport { DashboardComponent } from './pages/dashboard/dashboard.component';\nimport { AuthSigninComponent } from './pages/auth-signin/auth-signin.component';\nimport { AuthSignupComponent } from './pages/auth-signup/auth-signup.component';\nimport { AuthSignupOrganizationComponent } from './pages/auth-signup-organization/auth-signup-organization.component';\nimport { PasswordConfirmValidatorDirective } from './directives/password-confirm-validator.directive';\nimport {IsAuthenticatedAuthGuard} from './auth-guards/is-authenticated-auth-guard';\nimport {Router} from '@angular/router';\nimport {AuthService} from './services/auth.service';\nimport {AuthInterceptorService} from './services/auth-interceptor.service';\nimport { ImageCropperModule } from 'ngx-image-cropper';\nimport { LogoCropperComponent } from './components/logo-cropper/logo-cropper.component';\nimport { NgChartsModule } from 'ng2-charts';\nimport {MomentModule} from 'ngx-moment';\nimport { OrgSettingsComponent } from './pages/org-settings/org-settings.component';\nimport { AccountSettingsComponent } from './pages/account-settings/account-settings.component';\nimport { OrgCredentialsEditorComponent } from './components/org-credentials-editor/org-credentials-editor.component';\nimport { OrgWebhooksEditorComponent } from './components/org-webhooks-editor/org-webhooks-editor.component';\nimport { WebhookLogsComponent } from './pages/webhook-logs/webhook-logs.component';\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 ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n BrowserModule,\n HttpClientModule,\n AppRoutingModule,\n PasswordConfirmValidatorDirective,\n\n NgbModule,\n NgChartsModule,\n InfiniteScrollModule,\n FontAwesomeModule,\n ImageCropperModule,\n MomentModule,\n HighlightModule\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptorService,\n multi: true,\n deps: [AuthService, Router]\n },\n IsAuthenticatedAuthGuard,\n {\n provide: HIGHLIGHT_OPTIONS,\n useValue: {\n fullLibraryLoader: () => import('highlight.js'),\n }\n }\n ],\n bootstrap: [AppComponent],\n schemas: [ CUSTOM_ELEMENTS_SCHEMA ]\n})\nexport class AppModule {\n constructor(library: FaIconLibrary) {\n library.addIconPacks(fas, far);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router} from '@angular/router';\nimport {AuthService} from '../services/auth.service';\n\n@Injectable()\nexport class IsAuthenticatedAuthGuard implements CanActivate {\n constructor(private authService: AuthService, private router: Router) {\n\n }\n\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\n let jwtPayload = await this.authService.GetJWTPayload()\n\n //check if the user is authenticated, if not, redirect to login\n if (!jwtPayload) {\n return await this.router.navigate(['/auth/signin']);\n } else if(jwtPayload.org_id == '' || jwtPayload.org_id == null){\n console.log(\"User is not associated with an organization, redirecting to org signup\", jwtPayload)\n return await this.router.navigate(['/auth/signup/org']);\n }\n\n\n // continue as normal\n return true\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport {versionInfo} from '../../../environments/versions';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent implements OnInit {\n appVersion: string;\n\n constructor() {\n this.appVersion = versionInfo.version\n }\n\n ngOnInit() {\n }\n\n}\n","\n","import {Component, OnDestroy, OnInit} from '@angular/core';\nimport {AuthService} from '../../services/auth.service';\nimport {Router} from '@angular/router';\nimport {ConnectService} from '../../services/connect.service';\nimport {PortalConfig} from '../../models/portal-config';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {Organization} from '../../models/fasten/organization';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n\n constructor(\n private authService: AuthService,\n private connectService: ConnectService,\n public portalConfigService: PortalConfigService,\n private router: Router,\n ) { }\n\n ngOnInit() {\n\n this.portalConfigService.ConfigSubject.subscribe((config: PortalConfig) => {\n console.log(\"Configuration changed:\", config)\n if(config.user && config.user.org_id && !config.org){\n console.log(\"attempt to download org information, and store in config\")\n this.connectService.getOrg(config.user.org_id).subscribe((org: Organization )=>{\n console.log(\"org:\", org)\n this.portalConfigService.config = {org: org}\n })\n }\n });\n\n }\n\n toggleHeaderMenu(event: Event) {\n event.preventDefault();\n document.querySelector('body')?.classList.toggle('az-header-menu-show');\n }\n closeMenu(e: Event) {\n (e.target as HTMLElement).closest('.dropdown')?.classList.remove('show');\n (e.target as HTMLElement).closest('.dropdown .dropdown-menu')?.classList.remove('show');\n }\n\n signOut(event: Event) {\n this.authService.Signout().then(r => {\n return this.router.navigate(['/auth/signin'])\n })\n }\n}\n","
\n Test Mode Enabled\n You're using test data. You will only be able to access sandbox accounts.\n
\n\n
\n
\n
\n \n \n \n \n
\n
\n
\n \n \"fasten\"\n \n ×\n
\n \n
\n
\n\n
\n \n
\n
\n \n
\n
Notifications
\n

Background Jobs & Updates

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

Organization Logo

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

Fasten Connect requires a logo for display when connecting providers

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

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

\n \n
\n
\n

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

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

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

\n \n
\n
\n

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

\n

\n\n

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

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

\n

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

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

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

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

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

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

Welcome back!

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

API Requests

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

Webhooks

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

33

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

9

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

Recently connected healthcare insitutions.

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

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

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

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

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
StatusUrlEventsDelivery Logs
\n {{webhook.status}}\n {{webhook.endpoint_uri}}\n \n {{webhook?.event_types?.length}} event(s)\n \n \n \n
\n
\n\n\n
\n\n
\n","import { Component, OnInit } from '@angular/core';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {environment} from '../../../environments/environment';\nimport {ConnectService} from '../../services/connect.service';\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\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\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 onUpgradePlan() {\n this.loading = true\n this.connectService.upgradePlanCheckoutRedirect().subscribe(() => {\n this.loading = false\n console.log(\"waiting for redirect\")\n })\n }\n}\n","
\n
\n
\n\n
\n
\n \"\"\n
\n
\n
\n
{{portalConfig.config$.org?.name}}
\n

{{portalConfig.config$.org?.plan}}

\n
\n
\n\n
\n \n
\n\n
\n\n
\n\n
\n
\n
\n\n
\n\n
\n
\n
\n Invoices & Payment Methods\n Please visit the Billing Portal\n
\n
\n\n
\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
\n

Development

\n
\n

Free

\n
\n
Monthly
\n \n
    \n
  • Test mode only
  • \n
  • Sandbox EHR Integrations
  • \n
  • No live Patient Data
  • \n
  • Email Support
  • \n
\n
\n
\n
\n
\n
\n
\n

Live

\n
\n

$100.00

\n
\n
Minimum Monthly
\n \n
    \n
  • Test & Live mode
  • \n
  • 27,000+ EHR Integrations
  • \n
  • Live Patient Data
  • \n
  • Email & Live Chat Support
  • \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 {ConnectService} from '../../services/connect.service';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {ActivatedRoute} from '@angular/router';\nimport {OrganizationWebhookDelivery} from '../../models/fasten/organization-webhook-delivery';\nimport {OrganizationWebhook} from '../../models/fasten/organization-webhook';\nimport {OrganizationCredential} from '../../models/fasten/organization-credential';\n\n@Component({\n selector: 'app-webhook-logs',\n templateUrl: './webhook-logs.component.html',\n styleUrls: ['./webhook-logs.component.scss']\n})\nexport class WebhookLogsComponent implements OnInit {\n\n showAllDeliveries = false\n webhookDeliveries: OrganizationWebhookDelivery[] = []\n webhook: OrganizationWebhook | null = null\n selectedWebhookDelivery: OrganizationWebhookDelivery | null = null\n\n constructor(\n private connectService: ConnectService,\n public portalConfig: PortalConfigService,\n private route: ActivatedRoute,\n ) { }\n\n ngOnInit(): void {\n let webhookId = this.route.snapshot.paramMap.get('webhookId')\n if (!webhookId) {\n return\n }\n\n this.connectService.getOrgWebhookDeliveries(this.portalConfig.config$.user?.org_id!, webhookId!).subscribe((data) => {\n console.log(\"Webhook Deliveries\", data)\n this.webhookDeliveries = (data.deliveries || []).reverse()\n this.webhook = data.webhook\n\n if (this.webhookDeliveries.length > 0) {\n this.selectedWebhookDelivery = this.webhookDeliveries[0]\n }\n\n })\n }\n\n public copySecretToken(secretToken: string | undefined) {\n if (!secretToken) {\n return\n }\n navigator.clipboard.writeText(secretToken);\n }\n}\n","
\n \n\n
\n
\n {{webhook?.endpoint_uri}}\n\n
\n\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
StatusAPI ModeListening ForSigning SecretLast Updated
\n {{webhook?.status}}\n \n {{webhook?.api_mode}}\n \n {{webhook?.event_types?.length}} event(s)\n \n reveal \n \n {{webhook?.updated_at | amDateFormat:'LL'}}
\n
\n\n
\n\n
\n\n
\n
\n Delivery Logs\n
\n
\n
\n
\n
\n \n \n
\n
\n\n
\n Response\n
\n\n
\n
\n
\n Request\n
\n
\n \n
\n Waiting for delivery...\n
\n
\n
\n
\n
\n
\n
\n\n
\n","import { Injectable, Injector } from '@angular/core';\nimport {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';\nimport {Router} from '@angular/router';\nimport {Observable, of, throwError} from 'rxjs';\nimport {catchError} from 'rxjs/operators';\nimport {AuthService} from './auth.service';\nimport {environment} from '../../environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\n\n// based on https://stackoverflow.com/questions/46017245/how-to-handle-unauthorized-requestsstatus-with-401-or-403-with-new-httpclient\nexport class AuthInterceptorService implements HttpInterceptor {\n\n constructor(private authService: AuthService, private router: Router) { }\n\n private handleAuthError(err: HttpErrorResponse): Observable {\n //handle your auth error or rethrow\n if (err.status === 401 || err.status === 403) {\n //navigate /delete cookies or whatever\n this.authService.Signout()\n this.router.navigateByUrl(`/auth/signin`);\n // if you've caught / handled the error, you don't want to rethrow it unless you also want downstream consumers to have to handle it as well.\n return of(err.message); // or EMPTY may be appropriate here\n }\n return throwError(err);\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n\n console.log(\"Intercepting Request\", req)\n\n //only intercept requests to the fasten API & lighthouse, all other requests should be sent as-is\n let reqUrl = new URL(req.url)\n let lighthouseUrl = new URL(environment.lighthouse_api_endpoint_base)\n let apiUrl = new URL(environment.connect_api_endpoint_base)\n\n if(\n !((reqUrl.origin == apiUrl.origin && reqUrl.pathname.startsWith(apiUrl.pathname)) ||\n (reqUrl.origin == lighthouseUrl.origin && reqUrl.pathname.startsWith(lighthouseUrl.pathname)))\n ){\n return next.handle(req)\n }\n\n // Clone the request and ensure that cookies are sent\n const authReq = req.clone({withCredentials: true});\n // catch the error, make specific functions for catching specific errors and you can chain through them with more catch operators\n return next.handle(authReq).pipe(catchError(x=> this.handleAuthError(x))); //here use an arrow function, otherwise you may get \"Cannot read property 'navigate' of undefined\" on angular 4.4.2/net core 2/webpack 2.70\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {User} from '../models/fasten/user';\nimport {environment} from '../../environments/environment';\nimport {HttpClient} from '@angular/common/http';\nimport {ResponseWrapper} from '../models/response-wrapper';\nimport {BehaviorSubject} from 'rxjs';\nimport * as jose from 'jose'\nimport {PortalConfigService} from './portal-config.service';\n\nexport const FASTEN_AUTH_COOKIE_NAME = 'fasten_connect_auth'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n public IsAuthenticatedSubject = new BehaviorSubject(false)\n\n constructor(private _httpClient: HttpClient, private portalConfigService: PortalConfigService) {}\n\n /**\n * Signup (and Signin) both require an \"online\" user.\n * @param newUser\n * @constructor\n */\n public async 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_endpoint_base\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';\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 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\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\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","Signup","newUser","resp","post","connect_api_endpoint_base","withCredentials","toPromise","Signin","email","pass","_this2","currentUser","password","Signout","_this3","publishAuthenticationState","deleteCookie","_this4","authToken","getCookie","jwks","createRemoteJWKSet","URL","jwks_uri","issuerHost","payload","protectedHeader","jwtVerify","issuer","audience","config","user","e","error","IsAuthenticated","_this5","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":[43]} \ No newline at end of file +{"version":3,"file":"main.js","mappings":"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;sFAjDU,mBAAmB;oHAAnB,mBAAmB,WAAnB,mBAAmB,mBAFlB,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;IAExE,QAAQ,EAAE,2DAA2D;IAErE,yCAAyC;IACzC,sBAAsB,EAAE,4DAA4D;IACpF,kFAAkF;CACnF,CAAC;;;;;;;;;;;;;;;;AChBF,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-member-invite/org-member-invite.component.ts","./src/app/components/org-member-invite/org-member-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-members/org-members.component.ts","./src/app/pages/org-members/org-members.component.html","./src/app/pages/org-settings/org-settings.component.ts","./src/app/pages/org-settings/org-settings.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 {OrgMembersComponent} from './pages/org-members/org-members.component';\n\nconst routes: Routes = [\n\n { path: 'auth/signin', component: AuthSigninComponent },\n { path: 'auth/signup', 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/members', component: OrgMembersComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n { path: 'account/settings', component: AccountSettingsComponent, canActivate: [ IsAuthenticatedAuthGuard] },\n\n //must be at bottom of list\n { path: '**', redirectTo: 'developers' },\n\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component } from '@angular/core';\nimport {NavigationEnd, Router, RouterEvent} from '@angular/router';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n title = 'fastenhealth';\n\n showHeader:boolean = false;\n showFooter:boolean = true;\n\n constructor(\n private router: Router,\n // private toastService: ToastService,\n private modalService: NgbModal\n ) {}\n\n ngOnInit() {\n\n // navbar backdrop for mobile only\n const navbarBackdrop = document.createElement('div');\n navbarBackdrop.classList.add('az-navbar-backdrop');\n document.querySelector('body')?.appendChild(navbarBackdrop);\n\n //determine if we should show the header\n this.router.events.subscribe(event => this.routerEvent(event));\n }\n\n routerEvent(event: any) {\n if (event instanceof NavigationEnd) {\n //modify header\n if (event.url?.startsWith('/auth') || event.url?.startsWith('/desktop')) {\n this.showHeader = false;\n } else {\n // console.log(\"NU\")\n this.showHeader = true;\n }\n\n // close all open modals when route change\n this.modalService.dismissAll();\n }\n }\n}\n","
\n \n
\n \n
\n \n
\n","export const URL_PATTERN = /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$/;\n\n// https://medium.com/@ojiofor/angular-reactive-forms-strong-password-validation-8dbcce92eb6c\n// Minimum Length: A strong password should have a minimum length, typically at least 8 characters.\n// Uppercase Letters: It should contain at least one uppercase letter.\n// Lowercase Letters: It should contain at least one lowercase letter.\n// Numbers: It should contain at least one number.\n// Special Characters: It should contain at least one special character (e.g., !, @, #, $).\nexport const STRONG_PASSWORD_PATTERN = /^(?=[^A-Z]*[A-Z])(?=[^a-z]*[a-z])(?=\\D*\\d).{8,}$/;\n\nexport enum ApiMode {\n Live = 'live',\n Test = 'test',\n}\n\nexport enum CredentialStatus {\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport enum WebhookStatus {\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport enum WebhookDeliveryStatus {\n Success = 'success',\n Failure = 'failure',\n}\n\nexport enum CRUDMode {\n Create = 'create',\n Update = 'update',\n Delete = 'delete',\n}\n\nexport enum EventTypes{\n EventTypesPatientEHIExportFailed = \"patient.ehi_export_failed\",\n EventTypesPatientEHIExportSuccess = \"patient.ehi_export_success\",\n EventTypesPatientAuthorizationRevoked = \"patient.authorization_revoked\",\n EventTypesWebhookTest = \"webhook.test\",\n}\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\n\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\nimport { HighlightModule, HIGHLIGHT_OPTIONS } from 'ngx-highlightjs';\n\nimport {NgbModule} from '@ng-bootstrap/ng-bootstrap';\nimport {InfiniteScrollModule} from 'ngx-infinite-scroll';\nimport {FontAwesomeModule, FaIconLibrary} from '@fortawesome/angular-fontawesome';\nimport {HeaderComponent} from './components/header/header.component';\nimport {FooterComponent} from './components/footer/footer.component';\nimport { DevelopersComponent } from './pages/developers/developers.component';\nimport { DashboardComponent } from './pages/dashboard/dashboard.component';\nimport { AuthSigninComponent } from './pages/auth-signin/auth-signin.component';\nimport { AuthSignupComponent } from './pages/auth-signup/auth-signup.component';\nimport { AuthSignupOrganizationComponent } from './pages/auth-signup-organization/auth-signup-organization.component';\nimport { PasswordConfirmValidatorDirective } from './directives/password-confirm-validator.directive';\nimport {IsAuthenticatedAuthGuard} from './auth-guards/is-authenticated-auth-guard';\nimport {Router} from '@angular/router';\nimport {AuthService} from './services/auth.service';\nimport {AuthInterceptorService} from './services/auth-interceptor.service';\nimport { ImageCropperModule } from 'ngx-image-cropper';\nimport { LogoCropperComponent } from './components/logo-cropper/logo-cropper.component';\nimport { NgChartsModule } from 'ng2-charts';\nimport {MomentModule} from 'ngx-moment';\nimport { OrgSettingsComponent } from './pages/org-settings/org-settings.component';\nimport { AccountSettingsComponent } from './pages/account-settings/account-settings.component';\nimport { OrgCredentialsEditorComponent } from './components/org-credentials-editor/org-credentials-editor.component';\nimport { OrgWebhooksEditorComponent } from './components/org-webhooks-editor/org-webhooks-editor.component';\nimport { WebhookLogsComponent } from './pages/webhook-logs/webhook-logs.component';\nimport { OrgBillingComponent } from './pages/org-billing/org-billing.component';\nimport { OrgMembersComponent } from './pages/org-members/org-members.component';\nimport { OrgMemberInviteComponent } from './components/org-member-invite/org-member-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 OrgMembersComponent,\n OrgMemberInviteComponent,\n ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n BrowserModule,\n HttpClientModule,\n AppRoutingModule,\n PasswordConfirmValidatorDirective,\n\n NgbModule,\n NgChartsModule,\n InfiniteScrollModule,\n FontAwesomeModule,\n ImageCropperModule,\n MomentModule,\n HighlightModule\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptorService,\n multi: true,\n deps: [AuthService, Router]\n },\n IsAuthenticatedAuthGuard,\n {\n provide: HIGHLIGHT_OPTIONS,\n useValue: {\n fullLibraryLoader: () => import('highlight.js'),\n }\n }\n ],\n bootstrap: [AppComponent],\n schemas: [ CUSTOM_ELEMENTS_SCHEMA ]\n})\nexport class AppModule {\n constructor(library: FaIconLibrary) {\n library.addIconPacks(fas, far);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router} from '@angular/router';\nimport {AuthService} from '../services/auth.service';\n\n@Injectable()\nexport class IsAuthenticatedAuthGuard implements CanActivate {\n constructor(private authService: AuthService, private router: Router) {\n\n }\n\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\n let jwtPayload = await this.authService.GetJWTPayload()\n\n //check if the user is authenticated, if not, redirect to login\n if (!jwtPayload) {\n return await this.router.navigate(['/auth/signin']);\n } else if(jwtPayload.org_id == '' || jwtPayload.org_id == null){\n console.log(\"User is not associated with an organization, redirecting to org signup\", jwtPayload)\n return await this.router.navigate(['/auth/signup/org']);\n }\n\n\n // continue as normal\n return true\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport {versionInfo} from '../../../environments/versions';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent implements OnInit {\n appVersion: string;\n\n constructor() {\n this.appVersion = versionInfo.version\n }\n\n ngOnInit() {\n }\n\n}\n","\n","import {Component, OnDestroy, OnInit} from '@angular/core';\nimport {AuthService} from '../../services/auth.service';\nimport {Router} from '@angular/router';\nimport {ConnectService} from '../../services/connect.service';\nimport {PortalConfig} from '../../models/portal-config';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {Organization} from '../../models/fasten/organization';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n\n constructor(\n private authService: AuthService,\n private connectService: ConnectService,\n public portalConfigService: PortalConfigService,\n private router: Router,\n ) { }\n\n ngOnInit() {\n\n this.portalConfigService.ConfigSubject.subscribe((config: PortalConfig) => {\n console.log(\"Configuration changed:\", config)\n if(config.user && config.user.org_id && !config.org){\n console.log(\"attempt to download org information, and store in config\")\n this.connectService.getOrg(config.user.org_id).subscribe((org: Organization )=>{\n console.log(\"org:\", org)\n this.portalConfigService.config = {org: org}\n })\n }\n });\n\n }\n\n toggleHeaderMenu(event: Event) {\n event.preventDefault();\n document.querySelector('body')?.classList.toggle('az-header-menu-show');\n }\n closeMenu(e: Event) {\n (e.target as HTMLElement).closest('.dropdown')?.classList.remove('show');\n (e.target as HTMLElement).closest('.dropdown .dropdown-menu')?.classList.remove('show');\n }\n\n signOut(event: Event) {\n this.authService.Signout().then(r => {\n return this.router.navigate(['/auth/signin'])\n })\n }\n}\n","
\n Test Mode Enabled\n You're using test data. You will only be able to access sandbox accounts.\n
\n\n
\n
\n
\n \n \n \n \n
\n
\n
\n \n \"fasten\"\n \n ×\n
\n \n
\n
\n\n
\n \n
\n
\n \n
\n
Notifications
\n

Background Jobs & Updates

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

Organization Logo

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

Fasten Connect requires a logo for display when connecting providers

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

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

\n \n
\n
\n

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

\n\n
\n
\n \n
\n \n
\n
\n\n
\n\n
\n Redirect Url is required.\n
\n
\n Redirect Url must be a valid url starting with https://\n
\n
\n\n
\n {{submitOrgCredentialError}}\n
\n\n
\n
\n
\n
\n \n \n\n \n \n\n \n \n \n
\n
\n","import {Component, Input, OnInit} from '@angular/core';\nimport {Organization} from '../../models/fasten/organization';\nimport {ConnectService} from '../../services/connect.service';\nimport {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-org-member-invite',\n templateUrl: './org-member-invite.component.html',\n styleUrls: ['./org-member-invite.component.scss']\n})\nexport class OrgMemberInviteComponent implements OnInit {\n @Input() org: Organization | null = null\n\n teamMemberEmail: string = ''\n\n submitOrgInviteLoading: boolean = false\n submitOrgInviteError: string = ''\n\n constructor(\n private connectService: ConnectService,\n public activeModal: NgbActiveModal\n ) { }\n\n ngOnInit(): void {\n }\n\n public sendOrgMemberInvite() {\n this.submitOrgInviteLoading = true\n this.submitOrgInviteError = ''\n\n if(!this.org?.id){\n this.submitOrgInviteLoading = false\n this.submitOrgInviteError = \"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

Invite Team Member

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

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

\n \n
\n
\n

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

\n

\n\n

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

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

\n

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

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

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

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

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

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

Welcome back!

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

API Requests

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

Webhooks

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

33

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

9

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

Recently connected healthcare insitutions.

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

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

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

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

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

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

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

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

\n
\n
\n\n
\n\n
\n
\n Plan Changed! Your plan changed recently. It may take up to 24 hours to reflect plan changes in your organization profile.\n
\n\n
\n
\n\n\n
\n","import { Component, OnInit } from '@angular/core';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {LogoCropperComponent} from '../../components/logo-cropper/logo-cropper.component';\nimport {OrgMemberInviteComponent} from '../../components/org-member-invite/org-member-invite.component';\n\n@Component({\n selector: 'app-org-members',\n templateUrl: './org-members.component.html',\n styleUrls: ['./org-members.component.scss']\n})\nexport class OrgMembersComponent implements OnInit {\n\n constructor(\n private modalService: NgbModal,\n ) { }\n\n ngOnInit(): void {\n }\n\n openOrgMemberInviteModal(){\n this.modalService.open(OrgMemberInviteComponent).result.then(\n (result) => {\n console.log(`Closed with: ${result}`)\n },\n (reason) => {\n console.log(`Dismissed`, reason);\n },\n );\n }\n}\n","
\n \n\n
\n
\n\n
\n
\n Team Members\n \n
\n\n
\n

Invite your colleagues to join your team.

\n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n
NameEmail
\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 {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 (resp) => {\n console.log(\"Organization Updated\", resp)\n },\n (err) => {\n console.error(\"Error updating Organization\", err)\n this.errorMsg = err.error.message\n this.loading = false\n }\n )\n\n }\n\n openLogoCropper(){\n this.modalService.open(LogoCropperComponent).result.then(\n (result) => {\n this.croppedImageEvent = result\n this.croppedImage = this.sanitizer.bypassSecurityTrustUrl(this.croppedImageEvent?.objectUrl!);\n },\n (reason) => {\n console.log(`Dismissed`, reason);\n },\n );\n }\n}\n","
\n \n\n\n
\n
\n
\n
\n Details\n
\n\n
\n
\n\n

Use this form to update information about your Organization

\n\n\n
\n\n\n\n
\n\n
\n \n
{{updateOrg.id}}
\n
\n\n
\n \n \n\n
\n
\n Organization Name is required.\n
\n
\n Organization Name must be at least 2 characters long.\n
\n
\n
\n\n
\n \n
\n
\n \"\"\n
\n
\n
\n
\n\n
\n \n \n
\n
\n Website is required.\n
\n
\n Website must be a valid url starting with https://\n
\n
\n
\n\n
\n \n \n
\n
\n Privacy Policy Url is required.\n
\n
\n Privacy Policy must be a valid url starting with https://\n
\n
\n
\n\n
\n \n \n
\n
\n Terms & Conditions must be a valid url starting with https://\n
\n
\n
\n
\n\n\n
\n\n \n\n
\n Error {{errorMsg}}\n
\n\n
\n
\n\n
\n
\n\n\n
\n\n
\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","import { Component, OnInit } from '@angular/core';\nimport {ConnectService} from '../../services/connect.service';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {PortalConfigService} from '../../services/portal-config.service';\nimport {ActivatedRoute} from '@angular/router';\nimport {OrganizationWebhookDelivery} from '../../models/fasten/organization-webhook-delivery';\nimport {OrganizationWebhook} from '../../models/fasten/organization-webhook';\nimport {OrganizationCredential} from '../../models/fasten/organization-credential';\n\n@Component({\n selector: 'app-webhook-logs',\n templateUrl: './webhook-logs.component.html',\n styleUrls: ['./webhook-logs.component.scss']\n})\nexport class WebhookLogsComponent implements OnInit {\n\n showAllDeliveries = false\n webhookDeliveries: OrganizationWebhookDelivery[] = []\n webhook: OrganizationWebhook | null = null\n selectedWebhookDelivery: OrganizationWebhookDelivery | null = null\n\n constructor(\n private connectService: ConnectService,\n public portalConfig: PortalConfigService,\n private route: ActivatedRoute,\n ) { }\n\n ngOnInit(): void {\n let webhookId = this.route.snapshot.paramMap.get('webhookId')\n if (!webhookId) {\n return\n }\n\n this.connectService.getOrgWebhookDeliveries(this.portalConfig.config$.user?.org_id!, webhookId!).subscribe((data) => {\n console.log(\"Webhook Deliveries\", data)\n this.webhookDeliveries = (data.deliveries || []).reverse()\n this.webhook = data.webhook\n\n if (this.webhookDeliveries.length > 0) {\n this.selectedWebhookDelivery = this.webhookDeliveries[0]\n }\n\n })\n }\n\n public copySecretToken(secretToken: string | undefined) {\n if (!secretToken) {\n return\n }\n navigator.clipboard.writeText(secretToken);\n }\n}\n","
\n \n\n
\n
\n {{webhook?.endpoint_uri}}\n\n
\n\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
StatusAPI ModeListening ForSigning SecretLast Updated
\n {{webhook?.status}}\n \n {{webhook?.api_mode}}\n \n {{webhook?.event_types?.length}} event(s)\n \n reveal \n \n {{webhook?.updated_at | amDateFormat:'LL'}}
\n
\n\n
\n\n
\n\n
\n
\n Delivery Logs\n
\n
\n
\n
\n
\n \n \n
\n
\n\n
\n Response\n
\n\n
\n
\n
\n Request\n
\n
\n \n
\n Waiting for delivery...\n
\n
\n
\n
\n
\n
\n
\n\n
\n","import { Injectable, Injector } from '@angular/core';\nimport {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';\nimport {Router} from '@angular/router';\nimport {Observable, of, throwError} from 'rxjs';\nimport {catchError} from 'rxjs/operators';\nimport {AuthService} from './auth.service';\nimport {environment} from '../../environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\n\n// based on https://stackoverflow.com/questions/46017245/how-to-handle-unauthorized-requestsstatus-with-401-or-403-with-new-httpclient\nexport class AuthInterceptorService implements HttpInterceptor {\n\n constructor(private authService: AuthService, private router: Router) { }\n\n private handleAuthError(err: HttpErrorResponse): Observable {\n //handle your auth error or rethrow\n if (err.status === 401 || err.status === 403) {\n //navigate /delete cookies or whatever\n this.authService.Signout()\n this.router.navigateByUrl(`/auth/signin`);\n // if you've caught / handled the error, you don't want to rethrow it unless you also want downstream consumers to have to handle it as well.\n return of(err.message); // or EMPTY may be appropriate here\n }\n return throwError(err);\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n\n console.log(\"Intercepting Request\", req)\n\n //only intercept requests to the fasten API & lighthouse, all other requests should be sent as-is\n let reqUrl = new URL(req.url)\n let lighthouseUrl = new URL(environment.lighthouse_api_endpoint_base)\n let apiUrl = new URL(environment.connect_api_endpoint_base)\n\n if(\n !((reqUrl.origin == apiUrl.origin && reqUrl.pathname.startsWith(apiUrl.pathname)) ||\n (reqUrl.origin == lighthouseUrl.origin && reqUrl.pathname.startsWith(lighthouseUrl.pathname)))\n ){\n return next.handle(req)\n }\n\n // Clone the request and ensure that cookies are sent\n const authReq = req.clone({withCredentials: true});\n // catch the error, make specific functions for catching specific errors and you can chain through them with more catch operators\n return next.handle(authReq).pipe(catchError(x=> this.handleAuthError(x))); //here use an arrow function, otherwise you may get \"Cannot read property 'navigate' of undefined\" on angular 4.4.2/net core 2/webpack 2.70\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {User} from '../models/fasten/user';\nimport {environment} from '../../environments/environment';\nimport {HttpClient} from '@angular/common/http';\nimport {ResponseWrapper} from '../models/response-wrapper';\nimport {BehaviorSubject} from 'rxjs';\nimport * as jose from 'jose'\nimport {PortalConfigService} from './portal-config.service';\n\nexport const FASTEN_AUTH_COOKIE_NAME = 'fasten_connect_auth'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n public IsAuthenticatedSubject = new BehaviorSubject(false)\n\n constructor(private _httpClient: HttpClient, private portalConfigService: PortalConfigService) {}\n\n /**\n * Signup (and Signin) both require an \"online\" user.\n * @param newUser\n * @constructor\n */\n public async 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_endpoint_base\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';\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 let resp = this._httpClient.post(`${environment.connect_api_endpoint_base}/org/${orgId}`, formData)\n console.log(resp)\n return resp\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\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\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","Signup","newUser","resp","post","connect_api_endpoint_base","withCredentials","toPromise","Signin","email","pass","_this2","currentUser","password","Signout","_this3","publishAuthenticationState","deleteCookie","_this4","authToken","getCookie","jwks","createRemoteJWKSet","URL","jwks_uri","issuerHost","payload","protectedHeader","jwtVerify","issuer","audience","config","user","e","error","IsAuthenticated","_this5","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