diff --git a/connect/dev-vault-development/fasten-stitch.css b/connect/dev-vault-development/fasten-stitch.css index 2200732a..5f86f49d 100644 --- a/connect/dev-vault-development/fasten-stitch.css +++ b/connect/dev-vault-development/fasten-stitch.css @@ -1015,12 +1015,10 @@ video { .delay-300 { transition-delay: 300ms; } -dialog::backdrop { - background: rgba(255, 0, 0, 0.25); -} -.backdrop\:bg-gray-50::backdrop { - --tw-bg-opacity: 1; - background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)); +.backdrop\:backdrop-blur::backdrop { + --tw-backdrop-blur: blur(8px); + -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); } .hover\:border-\[\#5B47FB\]:hover { --tw-border-opacity: 1; @@ -1173,4 +1171,5 @@ dialog::backdrop { } + /*# sourceMappingURL=styles.css.map*/ \ No newline at end of file diff --git a/connect/dev-vault-development/main.js b/connect/dev-vault-development/main.js index c8f1244c..7252b294 100644 --- a/connect/dev-vault-development/main.js +++ b/connect/dev-vault-development/main.js @@ -335,40 +335,45 @@ function FastenStitchComponent_span_5_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](1, " Share Records "); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); } } -function FastenStitchComponent_div_19_Template(rf, ctx) { if (rf & 1) { +function FastenStitchComponent_div_8_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div", 9); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div", 18); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](1, "svg", 10); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelement"](2, "rect", 11)(3, "path", 12)(4, "path", 13)(5, "path", 14)(6, "path", 15)(7, "path", 16)(8, "path", 17)(9, "path", 18); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](10, " You are using Fasten in test mode "); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); +} } +function FastenStitchComponent_div_9_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div", 19); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelement"](1, "app-nav-outlet"); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); } } -function FastenStitchComponent_ng_template_20_Template(rf, ctx) { if (rf & 1) { - const _r8 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div", 19)(1, "div", 20)(2, "div", 21); +function FastenStitchComponent_ng_template_10_Template(rf, ctx) { if (rf & 1) { + const _r9 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵgetCurrentView"](); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "div", 20)(1, "div", 21)(2, "div", 22); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](3, "svg", 22); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelement"](4, "path", 23); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](3, "svg", 23); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelement"](4, "path", 24); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](5, "span", 24); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](5, "span", 25); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](6, "Error"); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](7, "h3", 25); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](7, "h3", 26); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](8, "Configuration Error"); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](9, "div", 26); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](9, "div", 27); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](10); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](11, "div", 27)(12, "button", 28); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("click", function FastenStitchComponent_ng_template_20_Template_button_click_12_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵrestoreView"](_r8); const ctx_r7 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnextContext"](); return _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵresetView"](ctx_r7.hideStitchModalExt()); }); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](11, "div", 28)(12, "button", 29); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("click", function FastenStitchComponent_ng_template_10_Template_button_click_12_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵrestoreView"](_r9); const ctx_r8 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnextContext"](); return _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵresetView"](ctx_r8.hideStitchModalExt()); }); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](13, "Close"); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"]()()()(); } if (rf & 2) { - const ctx_r6 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnextContext"](); + const ctx_r7 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](10); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtextInterpolate1"](" ", ctx_r6.errorMessage, " "); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtextInterpolate1"](" ", ctx_r7.errorMessage, " "); } } const _c2 = ["*"]; class SourceListItem { @@ -454,17 +459,29 @@ class FastenStitchComponent { // }) } else { - this.stitchModal.nativeElement.show(); + this.stitchModal.nativeElement.showModal(); + this.registerDialogCloseOnBackdropClick(); } } // TODO: this is required because when using the showStitchModal() method, the Search component is not being rendered correctly // this function can be called externally to show the modal showStitchModalExt() { - this.stitchModal.nativeElement.show(); + this.stitchModal.nativeElement.showModal(); + this.registerDialogCloseOnBackdropClick(); } hideStitchModalExt() { this.stitchModal.nativeElement.close(); } + registerDialogCloseOnBackdropClick() { + this.stitchModal.nativeElement.addEventListener('click', (event) => { + var rect = this.stitchModal.nativeElement.getBoundingClientRect(); + var isInDialog = (rect.top <= event.clientY && event.clientY <= rect.top + rect.height && + rect.left <= event.clientX && event.clientX <= rect.left + rect.width); + if (!isInDialog) { + this.stitchModal.nativeElement.close(); + } + }); + } } FastenStitchComponent.ɵfac = function FastenStitchComponent_Factory(t) { return new (t || FastenStitchComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_5__.ElementRef), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdirectiveInject"](_services_config_service__WEBPACK_IMPORTED_MODULE_1__.ConfigService), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdirectiveInject"](_services_vault_service__WEBPACK_IMPORTED_MODULE_2__.VaultService), _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdirectiveInject"](_services_message_bus_service__WEBPACK_IMPORTED_MODULE_3__.MessageBusService)); }; FastenStitchComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵdefineComponent"]({ type: FastenStitchComponent, selectors: [["fasten-stitch"]], viewQuery: function FastenStitchComponent_Query(rf, ctx) { if (rf & 1) { @@ -474,7 +491,7 @@ FastenStitchComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODU let _t; _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵloadQuery"]()) && (ctx.stitchModalButton = _t.first); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵloadQuery"]()) && (ctx.stitchModal = _t.first); - } }, inputs: { publicId: ["public-id", "publicId"], reconnectOrgConnectionId: ["reconnect-org-connection-id", "reconnectOrgConnectionId"] }, outputs: { orgConnectionCallback: "orgConnectionCallback" }, ngContentSelectors: _c2, decls: 22, vars: 3, consts: [["type", "button", 1, "block", "text-white", "bg-blue-700", "hover:bg-blue-800", "focus:ring-4", "focus:outline-none", "focus:ring-blue-300", "font-medium", "rounded-lg", "text-sm", "px-5", "py-2.5", "text-center", "dark:bg-blue-600", "dark:hover:bg-blue-700", "dark:focus:ring-blue-800", 3, "click"], ["stitchModalButton", ""], ["ref", ""], [4, "ngIf"], ["id", "stitchModal", "tabindex", "-1", "aria-hidden", "true", 1, "backdrop:bg-gray-50", "mx-auto", "w-full", "max-w-[440px]", "bg-white", "rounded-lg", "shadow-lg"], ["stitchModal", ""], ["id", "test-mode-banner", 1, "w-full", "mb-2", "bg-[#DC3545]", "text-white", "text-center", "py-2", "px-4", "rounded-t-lg", "font-medium", "text-sm", "flex", "items-center", "justify-center", "gap-2"], ["xmlns", "http://www.w3.org/2000/svg", "width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "stroke", "currentColor", "stroke-width", "2", "stroke-linecap", "round", "stroke-linejoin", "round", 1, "lucide", "lucide-construction"], ["x", "2", "y", "6", "width", "20", "height", "8", "rx", "1"], ["d", "M17 14v7"], ["d", "M7 14v7"], ["d", "M17 3v3"], ["d", "M7 3v3"], ["d", "M10 14 2.3 6.3"], ["d", "m14 6 7.7 7.7"], ["d", "m8 6 8 8"], ["id", "widget-container", "class", "w-full p-6", 4, "ngIf", "ngIfElse"], ["errorMessagePanel", ""], ["id", "widget-container", 1, "w-full", "p-6"], [1, "relative", "p-4", "w-full", "max-w-2xl", "h-full", "md:h-auto"], ["id", "alert-additional-content-2", "role", "alert", 1, "p-4", "border", "border-red-300", "rounded-lg", "bg-[#DC3545]", "text-white"], [1, "flex", "items-center"], ["aria-hidden", "true", "xmlns", "http://www.w3.org/2000/svg", "width", "22", "height", "22", "fill", "currentColor", "viewBox", "0 0 24 24", 1, "flex-shrink-0", "w-4", "h-4", "me-2"], ["fill-rule", "evenodd", "d", "M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm7.707-3.707a1 1 0 0 0-1.414 1.414L10.586 12l-2.293 2.293a1 1 0 1 0 1.414 1.414L12 13.414l2.293 2.293a1 1 0 0 0 1.414-1.414L13.414 12l2.293-2.293a1 1 0 0 0-1.414-1.414L12 10.586 9.707 8.293Z", "clip-rule", "evenodd"], [1, "sr-only"], [1, "text-lg", "font-medium"], [1, "mt-2", "mb-4", "text-sm"], [1, "flex"], ["type", "button", 1, "text-white", "bg-transparent", "border", "border-white", "hover:bg-red-900", "hover:text-white", "focus:ring-4", "focus:outline-none", "focus:ring-grey-300", "font-medium", "rounded-lg", "text-xs", "px-3", "py-1.5", "text-center", 3, "click"]], template: function FastenStitchComponent_Template(rf, ctx) { if (rf & 1) { + } }, inputs: { publicId: ["public-id", "publicId"], reconnectOrgConnectionId: ["reconnect-org-connection-id", "reconnectOrgConnectionId"] }, outputs: { orgConnectionCallback: "orgConnectionCallback" }, ngContentSelectors: _c2, decls: 12, vars: 4, consts: [["type", "button", 1, "block", "text-white", "bg-blue-700", "hover:bg-blue-800", "focus:ring-4", "focus:outline-none", "focus:ring-blue-300", "font-medium", "rounded-lg", "text-sm", "px-5", "py-2.5", "text-center", "dark:bg-blue-600", "dark:hover:bg-blue-700", "dark:focus:ring-blue-800", 3, "click"], ["stitchModalButton", ""], ["ref", ""], [4, "ngIf"], ["id", "stitchModal", "tabindex", "-1", "aria-hidden", "true", 1, "backdrop:backdrop-blur", "mx-auto", "w-full", "max-w-[440px]", "bg-white", "rounded-lg", "shadow-lg"], ["stitchModal", ""], ["id", "test-mode-banner", "class", "w-full mb-2 bg-[#DC3545] text-white text-center py-2 px-4 rounded-t-lg font-medium text-sm flex items-center justify-center gap-2", 4, "ngIf"], ["id", "widget-container", "class", "w-full p-6", 4, "ngIf", "ngIfElse"], ["errorMessagePanel", ""], ["id", "test-mode-banner", 1, "w-full", "mb-2", "bg-[#DC3545]", "text-white", "text-center", "py-2", "px-4", "rounded-t-lg", "font-medium", "text-sm", "flex", "items-center", "justify-center", "gap-2"], ["xmlns", "http://www.w3.org/2000/svg", "width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "stroke", "currentColor", "stroke-width", "2", "stroke-linecap", "round", "stroke-linejoin", "round", 1, "lucide", "lucide-construction"], ["x", "2", "y", "6", "width", "20", "height", "8", "rx", "1"], ["d", "M17 14v7"], ["d", "M7 14v7"], ["d", "M17 3v3"], ["d", "M7 3v3"], ["d", "M10 14 2.3 6.3"], ["d", "m14 6 7.7 7.7"], ["d", "m8 6 8 8"], ["id", "widget-container", 1, "w-full", "p-6"], [1, "relative", "p-4", "w-full", "max-w-2xl", "h-full", "md:h-auto"], ["id", "alert-additional-content-2", "role", "alert", 1, "p-4", "border", "border-red-300", "rounded-lg", "bg-[#DC3545]", "text-white"], [1, "flex", "items-center"], ["aria-hidden", "true", "xmlns", "http://www.w3.org/2000/svg", "width", "22", "height", "22", "fill", "currentColor", "viewBox", "0 0 24 24", 1, "flex-shrink-0", "w-4", "h-4", "me-2"], ["fill-rule", "evenodd", "d", "M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm7.707-3.707a1 1 0 0 0-1.414 1.414L10.586 12l-2.293 2.293a1 1 0 1 0 1.414 1.414L12 13.414l2.293 2.293a1 1 0 0 0 1.414-1.414L13.414 12l2.293-2.293a1 1 0 0 0-1.414-1.414L12 10.586 9.707 8.293Z", "clip-rule", "evenodd"], [1, "sr-only"], [1, "text-lg", "font-medium"], [1, "mt-2", "mb-4", "text-sm"], [1, "flex"], ["type", "button", 1, "text-white", "bg-transparent", "border", "border-white", "hover:bg-red-900", "hover:text-white", "focus:ring-4", "focus:outline-none", "focus:ring-grey-300", "font-medium", "rounded-lg", "text-xs", "px-3", "py-1.5", "text-center", 3, "click"]], template: function FastenStitchComponent_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵprojectionDef"](); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](0, "button", 0, 1); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵlistener"]("click", function FastenStitchComponent_Template_button_click_0_listener() { return ctx.showStitchModal(); }); @@ -483,24 +500,21 @@ FastenStitchComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODU _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](5, FastenStitchComponent_span_5_Template, 2, 0, "span", 3); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](6, "dialog", 4, 5)(8, "div", 6); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](9, "svg", 7); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelement"](10, "rect", 8)(11, "path", 9)(12, "path", 10)(13, "path", 11)(14, "path", 12)(15, "path", 13)(16, "path", 14)(17, "path", 15); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementStart"](6, "dialog", 4, 5); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](8, FastenStitchComponent_div_8_Template, 11, 0, "div", 6); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](9, FastenStitchComponent_div_9_Template, 2, 0, "div", 7); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtext"](18, " You are using Fasten in test mode "); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](19, FastenStitchComponent_div_19_Template, 2, 0, "div", 16); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](20, FastenStitchComponent_ng_template_20_Template, 14, 1, "ng-template", null, 17, _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplateRefExtractor"]); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplate"](10, FastenStitchComponent_ng_template_10_Template, 14, 1, "ng-template", null, 8, _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵtemplateRefExtractor"]); } if (rf & 2) { const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](3); - const _r5 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](21); + const _r6 = _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵreference"](11); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](5); _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", !_r1.hasChildNodes()); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](14); - _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", !ctx.errorMessage)("ngIfElse", _r5); - } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.NgIf, _router_nav_outlet_nav_outlet_component__WEBPACK_IMPORTED_MODULE_4__.NavOutletComponent], styles: ["\n@keyframes scale {\n 0% {\n transform: scale(0.8);\n opacity: 0.7;\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n.animate-scale {\n animation: scale 0.3s ease forwards;\n}\n\n@keyframes shake {\n 10%,\n 90% {\n transform: translateX(-1px);\n }\n\n 20%,\n 80% {\n transform: translateX(2px);\n }\n\n 30%,\n 50%,\n 70% {\n transform: translateX(-4px);\n }\n\n 40%,\n 60% {\n transform: translateX(4px);\n }\n}\n\n.animate-shake {\n animation: shake 0.3s;\n}\n\n@keyframes pulseFlow {\n 0%, 100% {\n transform: scale(0.9);\n opacity: 0.4;\n }\n 50% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n.animate-pulse-flow {\n animation: pulseFlow 2s ease-in-out infinite;\n}\n\n@keyframes bounce {\n 0%, 100% {\n transform: translateY(-25%);\n }\n 50% {\n transform: none;\n }\n}\n\n.animate-bounce {\n animation: bounce 1s cubic-bezier(0.8, 0, 1, 1) infinite;\n}\n\n@keyframes successCircle {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1.1);\n opacity: 0.8;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes successCheck {\n 0% {\n stroke-dashoffset: 100;\n opacity: 0;\n }\n 60% {\n stroke-dashoffset: 0;\n opacity: 1;\n }\n 100% {\n stroke-dashoffset: 0;\n opacity: 1;\n }\n}\n\n.success-circle {\n animation: successCircle 0.6s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;\n}\n\n.success-check {\n stroke-dasharray: 100;\n stroke-dashoffset: 100;\n animation: successCheck 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;\n animation-delay: 0.3s;\n}\n\n.connect-btn {\n transition: all 0.2s ease;\n}\n\n.connect-btn:hover {\n transform: scale(1.05);\n}\n\n.connect-btn:active {\n transform: scale(0.95);\n}\n\n.delay-100 {\n animation-delay: 0s;\n}\n\n.delay-200 {\n animation-delay: 0.4s;\n}\n\n.delay-300 {\n animation-delay: 0.8s;\n}\n\n.step-view {\n display: none;\n}\n\n.verification-input {\n width: 2.5rem;\n height: 2.5rem;\n text-align: center;\n border-radius: 0.5rem;\n font-size: 1.125rem;\n font-weight: 600;\n border: 1px solid rgb(209 213 219);\n}\n\n.verification-input:focus {\n outline: none;\n border-color: #5B47FB;\n box-shadow: 0 0 0 2px rgba(91, 71, 251, 0.2);\n}\n\n.verification-input.filled {\n background-color: rgb(249 250 251);\n border-color: #5B47FB;\n}\n\n.verification-input.error {\n border-color: rgb(239 68 68);\n animation: shake 0.3s;\n}\n\n.verification-button {\n display: block;\n width: 100%;\n text-align: center;\n color: #5B47FB;\n font-weight: 500;\n padding: 0.5rem;\n border-radius: 0.375rem;\n transition: color 0.2s;\n}\n\n.verification-button:hover {\n color: #4936E8;\n background-color: rgba(91, 71, 251, 0.05);\n}\n\n@keyframes overlayFadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes overlayContentSlideUp {\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes logoFloat {\n 0%, 100% {\n transform: translateY(0);\n }\n 50% {\n transform: translateY(-8px);\n }\n}\n\n@keyframes pulseGlow {\n 0%, 100% {\n box-shadow: 0 0 0 0 rgba(91, 71, 251, 0.4);\n }\n 50% {\n box-shadow: 0 0 20px 3px rgba(91, 71, 251, 0.2);\n }\n}\n\n.redirect-overlay-enter {\n animation: overlayFadeIn 0.3s ease-out;\n}\n\n.redirect-overlay-content {\n animation: overlayContentSlideUp 0.4s ease-out;\n}\n\n.redirect-logo-container {\n animation: logoFloat 2s ease-in-out infinite, pulseGlow 2s ease-in-out infinite;\n}\n\n.redirect-dots {\n display: flex;\n gap: 4px;\n justify-content: center;\n margin-bottom: 8px;\n}\n\n.redirect-dot {\n width: 6px;\n height: 6px;\n background-color: #5B47FB;\n border-radius: 50%;\n opacity: 0.3;\n animation: dotPulse 1s ease-in-out infinite;\n}\n\n.redirect-dot:nth-child(2) {\n animation-delay: 0.2s;\n}\n\n.redirect-dot:nth-child(3) {\n animation-delay: 0.4s;\n}\n\n@keyframes dotPulse {\n 0%, 100% {\n opacity: 0.3;\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n transform: scale(1.2);\n }\n}\n\n.az-logo {\n font-weight: 700;\n font-size: 28px;\n font-family: Poppins, sans-serif;\n text-transform: lowercase;\n color: #5b47fb;\n letter-spacing: -1px;\n display: flex;\n align-items: center;\n position: relative;\n top: -2px;\n}\n\ndialog::backdrop {\n background: rgba(255, 0, 0, 0.25);\n}\n\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZhc3Rlbi1zdGl0Y2guY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7RUFDRTtJQUNFLHFCQUFxQjtJQUNyQixZQUFZO0VBQ2Q7O0VBRUE7SUFDRSxtQkFBbUI7SUFDbkIsVUFBVTtFQUNaO0FBQ0Y7O0FBRUE7RUFDRSxtQ0FBbUM7QUFDckM7O0FBRUE7RUFDRTs7SUFFRSwyQkFBMkI7RUFDN0I7O0VBRUE7O0lBRUUsMEJBQTBCO0VBQzVCOztFQUVBOzs7SUFHRSwyQkFBMkI7RUFDN0I7O0VBRUE7O0lBRUUsMEJBQTBCO0VBQzVCO0FBQ0Y7O0FBRUE7RUFDRSxxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRTtJQUNFLHFCQUFxQjtJQUNyQixZQUFZO0VBQ2Q7RUFDQTtJQUNFLG1CQUFtQjtJQUNuQixVQUFVO0VBQ1o7QUFDRjs7QUFFQTtFQUNFLDRDQUE0QztBQUM5Qzs7QUFFQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0VBQ0E7SUFDRSxlQUFlO0VBQ2pCO0FBQ0Y7O0FBRUE7RUFDRSx3REFBd0Q7QUFDMUQ7O0FBRUE7RUFDRTtJQUNFLG1CQUFtQjtJQUNuQixVQUFVO0VBQ1o7RUFDQTtJQUNFLHFCQUFxQjtJQUNyQixZQUFZO0VBQ2Q7RUFDQTtJQUNFLG1CQUFtQjtJQUNuQixVQUFVO0VBQ1o7QUFDRjs7QUFFQTtFQUNFO0lBQ0Usc0JBQXNCO0lBQ3RCLFVBQVU7RUFDWjtFQUNBO0lBQ0Usb0JBQW9CO0lBQ3BCLFVBQVU7RUFDWjtFQUNBO0lBQ0Usb0JBQW9CO0lBQ3BCLFVBQVU7RUFDWjtBQUNGOztBQUVBO0VBQ0Usd0VBQXdFO0FBQzFFOztBQUVBO0VBQ0UscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0Qix1RUFBdUU7RUFDdkUscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0Usc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0Usc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIscUJBQXFCO0VBQ3JCLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsa0NBQWtDO0FBQ3BDOztBQUVBO0VBQ0UsYUFBYTtFQUNiLHFCQUFxQjtFQUNyQiw0Q0FBNEM7QUFDOUM7O0FBRUE7RUFDRSxrQ0FBa0M7RUFDbEMscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsNEJBQTRCO0VBQzVCLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLHVCQUF1QjtFQUN2QixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxjQUFjO0VBQ2QseUNBQXlDO0FBQzNDOztBQUVBO0VBQ0U7SUFDRSxVQUFVO0VBQ1o7RUFDQTtJQUNFLFVBQVU7RUFDWjtBQUNGOztBQUVBO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsMkJBQTJCO0VBQzdCO0VBQ0E7SUFDRSxVQUFVO0lBQ1Ysd0JBQXdCO0VBQzFCO0FBQ0Y7O0FBRUE7RUFDRTtJQUNFLHdCQUF3QjtFQUMxQjtFQUNBO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7O0FBRUE7RUFDRTtJQUNFLDBDQUEwQztFQUM1QztFQUNBO0lBQ0UsK0NBQStDO0VBQ2pEO0FBQ0Y7O0FBRUE7RUFDRSxzQ0FBc0M7QUFDeEM7O0FBRUE7RUFDRSw4Q0FBOEM7QUFDaEQ7O0FBRUE7RUFDRSwrRUFBK0U7QUFDakY7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsUUFBUTtFQUNSLHVCQUF1QjtFQUN2QixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsV0FBVztFQUNYLHlCQUF5QjtFQUN6QixrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLDJDQUEyQztBQUM3Qzs7QUFFQTtFQUNFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFO0lBQ0UsWUFBWTtJQUNaLG1CQUFtQjtFQUNyQjtFQUNBO0lBQ0UsVUFBVTtJQUNWLHFCQUFxQjtFQUN2QjtBQUNGOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixnQ0FBZ0M7RUFDaEMseUJBQXlCO0VBQ3pCLGNBQWM7RUFDZCxvQkFBb0I7RUFDcEIsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsU0FBUztBQUNYOztBQUVBO0VBQ0UsaUNBQWlDO0FBQ25DIiwiZmlsZSI6ImZhc3Rlbi1zdGl0Y2guY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxuQGtleWZyYW1lcyBzY2FsZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5hbmltYXRlLXNjYWxlIHtcbiAgYW5pbWF0aW9uOiBzY2FsZSAwLjNzIGVhc2UgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgc2hha2Uge1xuICAxMCUsXG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcHgpO1xuICB9XG5cbiAgMjAlLFxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xuICB9XG5cbiAgMzAlLFxuICA1MCUsXG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpO1xuICB9XG5cbiAgNDAlLFxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xuICB9XG59XG5cbi5hbmltYXRlLXNoYWtlIHtcbiAgYW5pbWF0aW9uOiBzaGFrZSAwLjNzO1xufVxuXG5Aa2V5ZnJhbWVzIHB1bHNlRmxvdyB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gICAgb3BhY2l0eTogMC40O1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5hbmltYXRlLXB1bHNlLWZsb3cge1xuICBhbmltYXRpb246IHB1bHNlRmxvdyAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBib3VuY2Uge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNSUpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5hbmltYXRlLWJvdW5jZSB7XG4gIGFuaW1hdGlvbjogYm91bmNlIDFzIGN1YmljLWJlemllcigwLjgsIDAsIDEsIDEpIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHN1Y2Nlc3NDaXJjbGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIG9wYWNpdHk6IDAuODtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzdWNjZXNzQ2hlY2sge1xuICAwJSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDEwMDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDYwJSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5zdWNjZXNzLWNpcmNsZSB7XG4gIGFuaW1hdGlvbjogc3VjY2Vzc0NpcmNsZSAwLjZzIGN1YmljLWJlemllcigwLjIyLCAwLjYxLCAwLjM2LCAxKSBmb3J3YXJkcztcbn1cblxuLnN1Y2Nlc3MtY2hlY2sge1xuICBzdHJva2UtZGFzaGFycmF5OiAxMDA7XG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAxMDA7XG4gIGFuaW1hdGlvbjogc3VjY2Vzc0NoZWNrIDAuOXMgY3ViaWMtYmV6aWVyKDAuMjIsIDAuNjEsIDAuMzYsIDEpIGZvcndhcmRzO1xuICBhbmltYXRpb24tZGVsYXk6IDAuM3M7XG59XG5cbi5jb25uZWN0LWJ0biB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5jb25uZWN0LWJ0bjpob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG5cbi5jb25uZWN0LWJ0bjphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xufVxuXG4uZGVsYXktMTAwIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwcztcbn1cblxuLmRlbGF5LTIwMCB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC40cztcbn1cblxuLmRlbGF5LTMwMCB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC44cztcbn1cblxuLnN0ZXAtdmlldyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52ZXJpZmljYXRpb24taW5wdXQge1xuICB3aWR0aDogMi41cmVtO1xuICBoZWlnaHQ6IDIuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYigyMDkgMjEzIDIxOSk7XG59XG5cbi52ZXJpZmljYXRpb24taW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6ICM1QjQ3RkI7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDkxLCA3MSwgMjUxLCAwLjIpO1xufVxuXG4udmVyaWZpY2F0aW9uLWlucHV0LmZpbGxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDkgMjUwIDI1MSk7XG4gIGJvcmRlci1jb2xvcjogIzVCNDdGQjtcbn1cblxuLnZlcmlmaWNhdGlvbi1pbnB1dC5lcnJvciB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDIzOSA2OCA2OCk7XG4gIGFuaW1hdGlvbjogc2hha2UgMC4zcztcbn1cblxuLnZlcmlmaWNhdGlvbi1idXR0b24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICM1QjQ3RkI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnM7XG59XG5cbi52ZXJpZmljYXRpb24tYnV0dG9uOmhvdmVyIHtcbiAgY29sb3I6ICM0OTM2RTg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTEsIDcxLCAyNTEsIDAuMDUpO1xufVxuXG5Aa2V5ZnJhbWVzIG92ZXJsYXlGYWRlSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgb3ZlcmxheUNvbnRlbnRTbGlkZVVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbG9nb0Zsb2F0IHtcbiAgMCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHB1bHNlR2xvdyB7XG4gIDAlLCAxMDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoOTEsIDcxLCAyNTEsIDAuNCk7XG4gIH1cbiAgNTAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMjBweCAzcHggcmdiYSg5MSwgNzEsIDI1MSwgMC4yKTtcbiAgfVxufVxuXG4ucmVkaXJlY3Qtb3ZlcmxheS1lbnRlciB7XG4gIGFuaW1hdGlvbjogb3ZlcmxheUZhZGVJbiAwLjNzIGVhc2Utb3V0O1xufVxuXG4ucmVkaXJlY3Qtb3ZlcmxheS1jb250ZW50IHtcbiAgYW5pbWF0aW9uOiBvdmVybGF5Q29udGVudFNsaWRlVXAgMC40cyBlYXNlLW91dDtcbn1cblxuLnJlZGlyZWN0LWxvZ28tY29udGFpbmVyIHtcbiAgYW5pbWF0aW9uOiBsb2dvRmxvYXQgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGUsIHB1bHNlR2xvdyAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLnJlZGlyZWN0LWRvdHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDRweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLnJlZGlyZWN0LWRvdCB7XG4gIHdpZHRoOiA2cHg7XG4gIGhlaWdodDogNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNUI0N0ZCO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG9wYWNpdHk6IDAuMztcbiAgYW5pbWF0aW9uOiBkb3RQdWxzZSAxcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLnJlZGlyZWN0LWRvdDpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IDAuMnM7XG59XG5cbi5yZWRpcmVjdC1kb3Q6bnRoLWNoaWxkKDMpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjRzO1xufVxuXG5Aa2V5ZnJhbWVzIGRvdFB1bHNlIHtcbiAgMCUsIDEwMCUge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gIH1cbn1cblxuLmF6LWxvZ28ge1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDI4cHg7XG4gIGZvbnQtZmFtaWx5OiBQb3BwaW5zLCBzYW5zLXNlcmlmO1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICBjb2xvcjogIzViNDdmYjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0xcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMnB4O1xufVxuXG5kaWFsb2c6OmJhY2tkcm9wIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDAsIDAsIDAuMjUpO1xufVxuXG4iXX0= */"], encapsulation: 2 }); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", false); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_5__["ɵɵproperty"]("ngIf", !ctx.errorMessage)("ngIfElse", _r6); + } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.NgIf, _router_nav_outlet_nav_outlet_component__WEBPACK_IMPORTED_MODULE_4__.NavOutletComponent], styles: ["\n@keyframes scale {\n 0% {\n transform: scale(0.8);\n opacity: 0.7;\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n.animate-scale {\n animation: scale 0.3s ease forwards;\n}\n\n@keyframes shake {\n 10%,\n 90% {\n transform: translateX(-1px);\n }\n\n 20%,\n 80% {\n transform: translateX(2px);\n }\n\n 30%,\n 50%,\n 70% {\n transform: translateX(-4px);\n }\n\n 40%,\n 60% {\n transform: translateX(4px);\n }\n}\n\n.animate-shake {\n animation: shake 0.3s;\n}\n\n@keyframes pulseFlow {\n 0%, 100% {\n transform: scale(0.9);\n opacity: 0.4;\n }\n 50% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n.animate-pulse-flow {\n animation: pulseFlow 2s ease-in-out infinite;\n}\n\n@keyframes bounce {\n 0%, 100% {\n transform: translateY(-25%);\n }\n 50% {\n transform: none;\n }\n}\n\n.animate-bounce {\n animation: bounce 1s cubic-bezier(0.8, 0, 1, 1) infinite;\n}\n\n@keyframes successCircle {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1.1);\n opacity: 0.8;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes successCheck {\n 0% {\n stroke-dashoffset: 100;\n opacity: 0;\n }\n 60% {\n stroke-dashoffset: 0;\n opacity: 1;\n }\n 100% {\n stroke-dashoffset: 0;\n opacity: 1;\n }\n}\n\n.success-circle {\n animation: successCircle 0.6s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;\n}\n\n.success-check {\n stroke-dasharray: 100;\n stroke-dashoffset: 100;\n animation: successCheck 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;\n animation-delay: 0.3s;\n}\n\n.connect-btn {\n transition: all 0.2s ease;\n}\n\n.connect-btn:hover {\n transform: scale(1.05);\n}\n\n.connect-btn:active {\n transform: scale(0.95);\n}\n\n.delay-100 {\n animation-delay: 0s;\n}\n\n.delay-200 {\n animation-delay: 0.4s;\n}\n\n.delay-300 {\n animation-delay: 0.8s;\n}\n\n.step-view {\n display: none;\n}\n\n.verification-input {\n width: 2.5rem;\n height: 2.5rem;\n text-align: center;\n border-radius: 0.5rem;\n font-size: 1.125rem;\n font-weight: 600;\n border: 1px solid rgb(209 213 219);\n}\n\n.verification-input:focus {\n outline: none;\n border-color: #5B47FB;\n box-shadow: 0 0 0 2px rgba(91, 71, 251, 0.2);\n}\n\n.verification-input.filled {\n background-color: rgb(249 250 251);\n border-color: #5B47FB;\n}\n\n.verification-input.error {\n border-color: rgb(239 68 68);\n animation: shake 0.3s;\n}\n\n.verification-button {\n display: block;\n width: 100%;\n text-align: center;\n color: #5B47FB;\n font-weight: 500;\n padding: 0.5rem;\n border-radius: 0.375rem;\n transition: color 0.2s;\n}\n\n.verification-button:hover {\n color: #4936E8;\n background-color: rgba(91, 71, 251, 0.05);\n}\n\n@keyframes overlayFadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes overlayContentSlideUp {\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes logoFloat {\n 0%, 100% {\n transform: translateY(0);\n }\n 50% {\n transform: translateY(-8px);\n }\n}\n\n@keyframes pulseGlow {\n 0%, 100% {\n box-shadow: 0 0 0 0 rgba(91, 71, 251, 0.4);\n }\n 50% {\n box-shadow: 0 0 20px 3px rgba(91, 71, 251, 0.2);\n }\n}\n\n.redirect-overlay-enter {\n animation: overlayFadeIn 0.3s ease-out;\n}\n\n.redirect-overlay-content {\n animation: overlayContentSlideUp 0.4s ease-out;\n}\n\n.redirect-logo-container {\n animation: logoFloat 2s ease-in-out infinite, pulseGlow 2s ease-in-out infinite;\n}\n\n.redirect-dots {\n display: flex;\n gap: 4px;\n justify-content: center;\n margin-bottom: 8px;\n}\n\n.redirect-dot {\n width: 6px;\n height: 6px;\n background-color: #5B47FB;\n border-radius: 50%;\n opacity: 0.3;\n animation: dotPulse 1s ease-in-out infinite;\n}\n\n.redirect-dot:nth-child(2) {\n animation-delay: 0.2s;\n}\n\n.redirect-dot:nth-child(3) {\n animation-delay: 0.4s;\n}\n\n@keyframes dotPulse {\n 0%, 100% {\n opacity: 0.3;\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n transform: scale(1.2);\n }\n}\n\n.az-logo {\n font-weight: 700;\n font-size: 28px;\n font-family: Poppins, sans-serif;\n text-transform: lowercase;\n color: #5b47fb;\n letter-spacing: -1px;\n display: flex;\n align-items: center;\n position: relative;\n top: -2px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZhc3Rlbi1zdGl0Y2guY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7RUFDRTtJQUNFLHFCQUFxQjtJQUNyQixZQUFZO0VBQ2Q7O0VBRUE7SUFDRSxtQkFBbUI7SUFDbkIsVUFBVTtFQUNaO0FBQ0Y7O0FBRUE7RUFDRSxtQ0FBbUM7QUFDckM7O0FBRUE7RUFDRTs7SUFFRSwyQkFBMkI7RUFDN0I7O0VBRUE7O0lBRUUsMEJBQTBCO0VBQzVCOztFQUVBOzs7SUFHRSwyQkFBMkI7RUFDN0I7O0VBRUE7O0lBRUUsMEJBQTBCO0VBQzVCO0FBQ0Y7O0FBRUE7RUFDRSxxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRTtJQUNFLHFCQUFxQjtJQUNyQixZQUFZO0VBQ2Q7RUFDQTtJQUNFLG1CQUFtQjtJQUNuQixVQUFVO0VBQ1o7QUFDRjs7QUFFQTtFQUNFLDRDQUE0QztBQUM5Qzs7QUFFQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0VBQ0E7SUFDRSxlQUFlO0VBQ2pCO0FBQ0Y7O0FBRUE7RUFDRSx3REFBd0Q7QUFDMUQ7O0FBRUE7RUFDRTtJQUNFLG1CQUFtQjtJQUNuQixVQUFVO0VBQ1o7RUFDQTtJQUNFLHFCQUFxQjtJQUNyQixZQUFZO0VBQ2Q7RUFDQTtJQUNFLG1CQUFtQjtJQUNuQixVQUFVO0VBQ1o7QUFDRjs7QUFFQTtFQUNFO0lBQ0Usc0JBQXNCO0lBQ3RCLFVBQVU7RUFDWjtFQUNBO0lBQ0Usb0JBQW9CO0lBQ3BCLFVBQVU7RUFDWjtFQUNBO0lBQ0Usb0JBQW9CO0lBQ3BCLFVBQVU7RUFDWjtBQUNGOztBQUVBO0VBQ0Usd0VBQXdFO0FBQzFFOztBQUVBO0VBQ0UscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0Qix1RUFBdUU7RUFDdkUscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0Usc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0Usc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIscUJBQXFCO0VBQ3JCLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsa0NBQWtDO0FBQ3BDOztBQUVBO0VBQ0UsYUFBYTtFQUNiLHFCQUFxQjtFQUNyQiw0Q0FBNEM7QUFDOUM7O0FBRUE7RUFDRSxrQ0FBa0M7RUFDbEMscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsNEJBQTRCO0VBQzVCLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLHVCQUF1QjtFQUN2QixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxjQUFjO0VBQ2QseUNBQXlDO0FBQzNDOztBQUVBO0VBQ0U7SUFDRSxVQUFVO0VBQ1o7RUFDQTtJQUNFLFVBQVU7RUFDWjtBQUNGOztBQUVBO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsMkJBQTJCO0VBQzdCO0VBQ0E7SUFDRSxVQUFVO0lBQ1Ysd0JBQXdCO0VBQzFCO0FBQ0Y7O0FBRUE7RUFDRTtJQUNFLHdCQUF3QjtFQUMxQjtFQUNBO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7O0FBRUE7RUFDRTtJQUNFLDBDQUEwQztFQUM1QztFQUNBO0lBQ0UsK0NBQStDO0VBQ2pEO0FBQ0Y7O0FBRUE7RUFDRSxzQ0FBc0M7QUFDeEM7O0FBRUE7RUFDRSw4Q0FBOEM7QUFDaEQ7O0FBRUE7RUFDRSwrRUFBK0U7QUFDakY7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsUUFBUTtFQUNSLHVCQUF1QjtFQUN2QixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsV0FBVztFQUNYLHlCQUF5QjtFQUN6QixrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLDJDQUEyQztBQUM3Qzs7QUFFQTtFQUNFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFO0lBQ0UsWUFBWTtJQUNaLG1CQUFtQjtFQUNyQjtFQUNBO0lBQ0UsVUFBVTtJQUNWLHFCQUFxQjtFQUN2QjtBQUNGOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixnQ0FBZ0M7RUFDaEMseUJBQXlCO0VBQ3pCLGNBQWM7RUFDZCxvQkFBb0I7RUFDcEIsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsU0FBUztBQUNYIiwiZmlsZSI6ImZhc3Rlbi1zdGl0Y2guY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxuQGtleWZyYW1lcyBzY2FsZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5hbmltYXRlLXNjYWxlIHtcbiAgYW5pbWF0aW9uOiBzY2FsZSAwLjNzIGVhc2UgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgc2hha2Uge1xuICAxMCUsXG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcHgpO1xuICB9XG5cbiAgMjAlLFxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xuICB9XG5cbiAgMzAlLFxuICA1MCUsXG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpO1xuICB9XG5cbiAgNDAlLFxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xuICB9XG59XG5cbi5hbmltYXRlLXNoYWtlIHtcbiAgYW5pbWF0aW9uOiBzaGFrZSAwLjNzO1xufVxuXG5Aa2V5ZnJhbWVzIHB1bHNlRmxvdyB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gICAgb3BhY2l0eTogMC40O1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5hbmltYXRlLXB1bHNlLWZsb3cge1xuICBhbmltYXRpb246IHB1bHNlRmxvdyAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBib3VuY2Uge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNSUpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5hbmltYXRlLWJvdW5jZSB7XG4gIGFuaW1hdGlvbjogYm91bmNlIDFzIGN1YmljLWJlemllcigwLjgsIDAsIDEsIDEpIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHN1Y2Nlc3NDaXJjbGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIG9wYWNpdHk6IDAuODtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzdWNjZXNzQ2hlY2sge1xuICAwJSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDEwMDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDYwJSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5zdWNjZXNzLWNpcmNsZSB7XG4gIGFuaW1hdGlvbjogc3VjY2Vzc0NpcmNsZSAwLjZzIGN1YmljLWJlemllcigwLjIyLCAwLjYxLCAwLjM2LCAxKSBmb3J3YXJkcztcbn1cblxuLnN1Y2Nlc3MtY2hlY2sge1xuICBzdHJva2UtZGFzaGFycmF5OiAxMDA7XG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAxMDA7XG4gIGFuaW1hdGlvbjogc3VjY2Vzc0NoZWNrIDAuOXMgY3ViaWMtYmV6aWVyKDAuMjIsIDAuNjEsIDAuMzYsIDEpIGZvcndhcmRzO1xuICBhbmltYXRpb24tZGVsYXk6IDAuM3M7XG59XG5cbi5jb25uZWN0LWJ0biB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5jb25uZWN0LWJ0bjpob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG5cbi5jb25uZWN0LWJ0bjphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xufVxuXG4uZGVsYXktMTAwIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwcztcbn1cblxuLmRlbGF5LTIwMCB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC40cztcbn1cblxuLmRlbGF5LTMwMCB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC44cztcbn1cblxuLnN0ZXAtdmlldyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52ZXJpZmljYXRpb24taW5wdXQge1xuICB3aWR0aDogMi41cmVtO1xuICBoZWlnaHQ6IDIuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYigyMDkgMjEzIDIxOSk7XG59XG5cbi52ZXJpZmljYXRpb24taW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6ICM1QjQ3RkI7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDkxLCA3MSwgMjUxLCAwLjIpO1xufVxuXG4udmVyaWZpY2F0aW9uLWlucHV0LmZpbGxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDkgMjUwIDI1MSk7XG4gIGJvcmRlci1jb2xvcjogIzVCNDdGQjtcbn1cblxuLnZlcmlmaWNhdGlvbi1pbnB1dC5lcnJvciB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDIzOSA2OCA2OCk7XG4gIGFuaW1hdGlvbjogc2hha2UgMC4zcztcbn1cblxuLnZlcmlmaWNhdGlvbi1idXR0b24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICM1QjQ3RkI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnM7XG59XG5cbi52ZXJpZmljYXRpb24tYnV0dG9uOmhvdmVyIHtcbiAgY29sb3I6ICM0OTM2RTg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTEsIDcxLCAyNTEsIDAuMDUpO1xufVxuXG5Aa2V5ZnJhbWVzIG92ZXJsYXlGYWRlSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgb3ZlcmxheUNvbnRlbnRTbGlkZVVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbG9nb0Zsb2F0IHtcbiAgMCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHB1bHNlR2xvdyB7XG4gIDAlLCAxMDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoOTEsIDcxLCAyNTEsIDAuNCk7XG4gIH1cbiAgNTAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMjBweCAzcHggcmdiYSg5MSwgNzEsIDI1MSwgMC4yKTtcbiAgfVxufVxuXG4ucmVkaXJlY3Qtb3ZlcmxheS1lbnRlciB7XG4gIGFuaW1hdGlvbjogb3ZlcmxheUZhZGVJbiAwLjNzIGVhc2Utb3V0O1xufVxuXG4ucmVkaXJlY3Qtb3ZlcmxheS1jb250ZW50IHtcbiAgYW5pbWF0aW9uOiBvdmVybGF5Q29udGVudFNsaWRlVXAgMC40cyBlYXNlLW91dDtcbn1cblxuLnJlZGlyZWN0LWxvZ28tY29udGFpbmVyIHtcbiAgYW5pbWF0aW9uOiBsb2dvRmxvYXQgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGUsIHB1bHNlR2xvdyAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLnJlZGlyZWN0LWRvdHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDRweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLnJlZGlyZWN0LWRvdCB7XG4gIHdpZHRoOiA2cHg7XG4gIGhlaWdodDogNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNUI0N0ZCO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG9wYWNpdHk6IDAuMztcbiAgYW5pbWF0aW9uOiBkb3RQdWxzZSAxcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLnJlZGlyZWN0LWRvdDpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IDAuMnM7XG59XG5cbi5yZWRpcmVjdC1kb3Q6bnRoLWNoaWxkKDMpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjRzO1xufVxuXG5Aa2V5ZnJhbWVzIGRvdFB1bHNlIHtcbiAgMCUsIDEwMCUge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gIH1cbn1cblxuLmF6LWxvZ28ge1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDI4cHg7XG4gIGZvbnQtZmFtaWx5OiBQb3BwaW5zLCBzYW5zLXNlcmlmO1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICBjb2xvcjogIzViNDdmYjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0xcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMnB4O1xufVxuIl19 */"], encapsulation: 2 }); /***/ }), diff --git a/connect/dev-vault-development/main.js.map b/connect/dev-vault-development/main.js.map index c8f4fa92..fb1fea2d 100644 --- a/connect/dev-vault-development/main.js.map +++ b/connect/dev-vault-development/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app.constants.ts","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/components/spinner/spinner.component.ts","./src/app/components/spinner/spinner.component.html","./src/app/directives/image-fallback.directive.ts","./src/app/fasten-stitch/fasten-stitch.component.ts","./src/app/fasten-stitch/fasten-stitch.component.html","./src/app/models/fasten/vaultProfile.ts","./src/app/models/forms/form-health-system-request.ts","./src/app/models/forms/form-support-request.ts","./src/app/models/search-filter.ts","./src/app/models/vault-config.ts","./src/app/pages/complete/complete.component.ts","./src/app/pages/complete/complete.component.html","./src/app/pages/dashboard/dashboard.component.ts","./src/app/pages/dashboard/dashboard.component.html","./src/app/pages/form-health-system-request/form-health-system-request.component.ts","./src/app/pages/form-health-system-request/form-health-system-request.component.html","./src/app/pages/form-support-request/form-support-request.component.ts","./src/app/pages/form-support-request/form-support-request.component.html","./src/app/pages/health-system-brand-details/health-system-brand-details.component.ts","./src/app/pages/health-system-brand-details/health-system-brand-details.component.html","./src/app/pages/health-system-connecting/health-system-connecting.component.ts","./src/app/pages/health-system-connecting/health-system-connecting.component.html","./src/app/pages/health-system-search/health-system-search.component.ts","./src/app/pages/health-system-search/health-system-search.component.html","./src/app/pages/identity-verification/identity-verification.component.ts","./src/app/pages/identity-verification/identity-verification.component.html","./src/app/pages/vault-profile-signin-code/vault-profile-signin-code.component.ts","./src/app/pages/vault-profile-signin-code/vault-profile-signin-code.component.html","./src/app/pages/vault-profile-signin/vault-profile-signin.component.ts","./src/app/pages/vault-profile-signin/vault-profile-signin.component.html","./src/app/pipes/safe-html.pipe.ts","./src/app/router/nav-outlet/nav-outlet-link.directive.ts","./src/app/router/nav-outlet/nav-outlet.component.ts","./src/app/router/nav-outlet/nav-outlet.component.html","./src/app/router/nav-outlet/nav-outlet.directive.ts","./src/app/router/nav-outlet/nav-outlet.service.ts","./src/app/services/auth-interceptor.service.ts","./src/app/services/auth.service.ts","./src/app/services/config.service.ts","./src/app/services/message-bus.service.ts","./src/app/services/vault.service.ts","./src/app/utils/connect-helper.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["export enum ApiMode {\n Live = \"live\",\n Test = \"test\",\n}\n\nexport enum ConnectionStatus {\n Authorized = \"authorized\",\n Revoked = \"revoked\"\n}\n\nexport enum ConnectMode {\n Redirect = \"redirect\",\n Popup = \"popup\",\n}\n\nexport const ConnectWindowTimeout = 24*5000 //wait 2 minutes (5 * 24 = 120)\n","import { NgModule, Injector } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport {FormsModule} from '@angular/forms';\nimport { createCustomElement } from '@angular/elements';\nimport {CommonModule} from '@angular/common';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {InfiniteScrollModule} from 'ngx-infinite-scroll';\nimport { CodeInputModule } from 'angular-code-input';\n\nimport {ImageFallbackDirective} from './directives/image-fallback.directive';\nimport {NavOutletComponent} from './router/nav-outlet/nav-outlet.component';\nimport {NavOutletDirective} from './router/nav-outlet/nav-outlet.directive';\nimport {NavOutletLinkDirective} from './router/nav-outlet/nav-outlet-link.directive';\n\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\nimport { SpinnerComponent } from './components/spinner/spinner.component';\n\nimport { FastenStitchComponent } from './fasten-stitch/fasten-stitch.component';\nimport { DashboardComponent } from './pages/dashboard/dashboard.component';\nimport { VaultProfileSigninComponent } from './pages/vault-profile-signin/vault-profile-signin.component';\nimport { VaultProfileSigninCodeComponent } from './pages/vault-profile-signin-code/vault-profile-signin-code.component';\nimport { IdentityVerificationComponent } from './pages/identity-verification/identity-verification.component';\nimport { HealthSystemSearchComponent } from './pages/health-system-search/health-system-search.component';\nimport { HealthSystemBrandDetailsComponent } from './pages/health-system-brand-details/health-system-brand-details.component';\nimport { FormHealthSystemRequestComponent } from './pages/form-health-system-request/form-health-system-request.component';\nimport { FormSupportRequestComponent } from './pages/form-support-request/form-support-request.component';\nimport { HealthSystemConnectingComponent } from './pages/health-system-connecting/health-system-connecting.component';\nimport { CompleteComponent } from './pages/complete/complete.component';\nimport {NavOutletService} from './router/nav-outlet/nav-outlet.service';\nimport {AuthInterceptorService} from './services/auth-interceptor.service';\nimport {AuthService} from './services/auth.service';\n\n\n@NgModule({\n declarations: [\n FastenStitchComponent,\n DashboardComponent,\n VaultProfileSigninComponent,\n VaultProfileSigninCodeComponent,\n IdentityVerificationComponent,\n HealthSystemSearchComponent,\n HealthSystemBrandDetailsComponent,\n FormHealthSystemRequestComponent,\n FormSupportRequestComponent,\n HealthSystemConnectingComponent,\n CompleteComponent,\n\n ImageFallbackDirective,\n NavOutletComponent,\n NavOutletDirective,\n NavOutletLinkDirective,\n SafeHtmlPipe,\n SpinnerComponent,\n ],\n imports: [\n BrowserModule,\n FormsModule,\n HttpClientModule,\n CommonModule,\n InfiniteScrollModule,\n CodeInputModule,\n ],\n // providers: [NavOutletService],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptorService,\n multi: true,\n // deps: [AuthService, NavOutletService]\n // deps: [AuthService, NavOutletService]\n },\n ],\n entryComponents: [FastenStitchComponent]\n})\nexport class AppModule {\n constructor(injector: Injector) {\n const el = createCustomElement(FastenStitchComponent, { injector });\n customElements.define('fasten-stitch', el);\n }\n\n ngDoBootstrap() {}\n}\n","import { Type} from '@angular/core';\nimport {VaultProfileSigninComponent} from './pages/vault-profile-signin/vault-profile-signin.component';\nimport {VaultProfileSigninCodeComponent} from './pages/vault-profile-signin-code/vault-profile-signin-code.component';\nimport {IdentityVerificationComponent} from './pages/identity-verification/identity-verification.component';\nimport {\n FormHealthSystemRequestComponent\n} from './pages/form-health-system-request/form-health-system-request.component';\nimport {FormSupportRequestComponent} from './pages/form-support-request/form-support-request.component';\nimport {HealthSystemSearchComponent} from './pages/health-system-search/health-system-search.component';\nimport {\n HealthSystemBrandDetailsComponent\n} from './pages/health-system-brand-details/health-system-brand-details.component';\nimport {HealthSystemConnectingComponent} from './pages/health-system-connecting/health-system-connecting.component';\nimport {CompleteComponent} from './pages/complete/complete.component';\nimport {NavOutletPage} from './models/nav-outlet-page';\nimport {DashboardComponent} from './pages/dashboard/dashboard.component';\n\nexport enum ComponentNavPage {\n Default = \"\",\n\n VaultProfileSignin = \"vault-profile-signin\",\n VaultProfileSigninCode = \"vault-profile-signin-code\",\n IdentityVerification = \"identity-verification\",\n\n Dashboard = \"dashboard\",\n FormHealthSystemRequest = \"form-health-system-request\",\n FormSupportRequest = \"form-support-request\",\n\n HealthSystemSearch = \"health-system-search\",\n HealthSystemBrandDetails = \"health-system-brand-details\",\n HealthSystemConnecting = \"health-system-connecting\",\n CompleteSummary = \"complete\",\n}\n\nexport interface NavOutletCanActivate {\n canActivate(route: NavOutletRoute): Promise \n}\nexport class NavOutletRoute {\n page: string = ComponentNavPage.Dashboard\n component: Type = null\n inputs?: Map\n canActivate?: NavOutletCanActivate\n}\n\nexport const Routes: NavOutletRoute[] = [\n //on empty, this is where we go\n { page: ComponentNavPage.Default, component: VaultProfileSigninComponent },\n\n { page: ComponentNavPage.VaultProfileSignin, component: VaultProfileSigninComponent },\n { page: ComponentNavPage.VaultProfileSigninCode, component: VaultProfileSigninCodeComponent },\n { page: ComponentNavPage.IdentityVerification, component: IdentityVerificationComponent },\n\n { page: ComponentNavPage.Dashboard, component: DashboardComponent },\n { page: ComponentNavPage.FormHealthSystemRequest, component: FormHealthSystemRequestComponent },\n { page: ComponentNavPage.FormSupportRequest, component: FormSupportRequestComponent },\n\n { page: ComponentNavPage.HealthSystemSearch, component: HealthSystemSearchComponent },\n { page: ComponentNavPage.HealthSystemBrandDetails, component: HealthSystemBrandDetailsComponent },\n { page: ComponentNavPage.HealthSystemConnecting, component: HealthSystemConnectingComponent },\n { page: ComponentNavPage.CompleteSummary, component: CompleteComponent },\n]\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss']\n})\nexport class SpinnerComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n \n \n\n","import {Directive, ElementRef, HostListener, Input} from '@angular/core';\n\nconst DEFAULT_IMAGE_FALLBACK_PATH: string = 'https://cdn.fastenhealth.com/images/no-image.svg';\n\n@Directive({\n selector: 'img[imageFallback]'\n})\nexport class ImageFallbackDirective {\n @Input() imageFallback?: string;\n constructor(private elementRef: ElementRef) {}\n\n @HostListener('error')\n loadFallbackOnError() {\n // Check to see if we have already tried to load the fallback image.\n // Avoids endless loop if for some reason fallback image is missing. Just accept the broken image.\n if (this.path(this.elementRef.nativeElement.src) == this.path(this.fallbackSrc())) {\n return;\n }\n\n this.elementRef.nativeElement.src = this.fallbackSrc();\n }\n\n private fallbackSrc(): string {\n return this.imageFallback || DEFAULT_IMAGE_FALLBACK_PATH;\n }\n\n private path(urlString: string): string {\n // remove http(s) and domain\n return urlString.replace(/^https?:\\/\\/[^\\/]*/, '');\n }\n\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n AfterViewInit, ViewEncapsulation,\n} from '@angular/core';\nimport {LighthouseBrandListDisplayItem} from '../models/lighthouse/lighthouse-source-search';\nimport {ApiMode} from '../app.constants';\nimport {MessageBusService} from '../services/message-bus.service';\nimport {OrganizationConnectionCallbackEvent} from '../models/organization-connection-callback-event';\nimport { ElementRef, ViewChild } from '@angular/core';\nimport {ConfigService} from '../services/config.service';\nimport {VaultService} from '../services/vault.service';\nimport {Organization} from '../models/fasten/organization';\n\nexport class SourceListItem {\n brand: LighthouseBrandListDisplayItem\n searchHighlights?: string[]\n}\n\n\n@Component({\n // standalone: true,\n selector: 'fasten-stitch',\n templateUrl: './fasten-stitch.component.html',\n styleUrls: ['./fasten-stitch.component.css'],\n // SEE https://stackoverflow.com/questions/67115155/angular-web-component-how-to-embed-css-file-into-the-final-js-file\n // using view encapsulation to namespace CSS.\n encapsulation: ViewEncapsulation.None //default is ViewEncapsulation.Emulated\n})\nexport class FastenStitchComponent implements OnInit, AfterViewInit {\n @Input('public-id') publicId = ''; //validate\n @Input('reconnect-org-connection-id') reconnectOrgConnectionId: string | null = null;\n @Output('orgConnectionCallback') orgConnectionCallback = new EventEmitter()\n\n public errorMessage: string\n\n @ViewChild('stitchModalButton', { static: false }) public stitchModalButton: ElementRef;\n @ViewChild('stitchModal', { static: false }) public stitchModal: ElementRef;\n\n // private flowbitStitchModal: Modal = null\n constructor(\n private host: ElementRef,\n private configService: ConfigService,\n private vaultService: VaultService,\n public messageBus: MessageBusService,\n ) {\n\n //https://stackoverflow.com/a/69173549/1157633\n this.host.nativeElement.show = this.showStitchModalExt.bind(this);\n this.host.nativeElement.hide = this.hideStitchModalExt.bind(this);\n }\n\n ngAfterViewInit() {\n // this.flowbitStitchModal = new Modal(this.stitchModal.nativeElement, {\n // onHide: () => {\n // this.messageBus.reset()\n // },\n // });\n }\n\n ngOnInit(): void {\n let publicIdParts = this.publicId.split('_')\n let apiMode = ApiMode.Test\n if(publicIdParts.length == 3 && publicIdParts[1] == ApiMode.Live) {\n apiMode = ApiMode.Live\n }\n if(publicIdParts.length != 3){\n console.error(\"Could not register Fasten Connect installation: missing or invalid id\", this.publicId)\n this.errorMessage = 'Could not register Fasten Connect installation: missing or invalid id. Please contact the developer of this app.'\n return\n }\n console.log(this.publicId, publicIdParts, apiMode)\n //update the system config\n this.configService.systemConfig = {\n apiMode: apiMode,\n publicId: this.publicId,\n reconnectOrgConnectionId: this.reconnectOrgConnectionId,\n }\n\n\n this.vaultService.getOrgByPublicId(this.publicId).subscribe((org: Organization) => {\n console.log(\"Fasten Connect registration\", org)\n this.configService.systemConfig = {\n org: org\n }\n },(err) => {\n this.errorMessage = 'Could not register Fasten Connect installation using id. Please contact the developer of this app.'\n console.log(\"Invalid Fasten Connect registration\", err)\n })\n\n this.messageBus.orgConnectionCallbackSubject.subscribe((orgConnectionCallbackData) => {\n console.log(\"bubbling up event\", orgConnectionCallbackData)\n this.orgConnectionCallback.emit(orgConnectionCallbackData)\n })\n }\n\n showStitchModal(): void {\n\n if(this.reconnectOrgConnectionId){\n //TODO: not supported yet\n // const childSpan: HTMLElement = document.createElement('span');\n // childSpan.innerHTML = 'Reconnecting...';\n // (this.stitchModalButton.nativeElement as HTMLButtonElement).replaceChildren(childSpan); // Component needs to be added here\n //\n // this.connectApi.getOrgConnectionById(this.publicId, this.reconnectOrgConnectionId).subscribe((orgConnection) => {\n // console.log(\"Reconnect Org Connection\", orgConnection)\n //\n // ConnectHelper(this.connectApi, this.messageBus, {\n // catalog_brand_id: orgConnection.catalog_brand_id,\n // catalog_endpoint_id: orgConnection.catalog_endpoint_id,\n // catalog_portal_id: orgConnection.catalog_portal_id,\n // connect_mode: this.connectMode,\n // external_id: this.externalId,\n // external_state: this.externalState,\n // org_connection_id: orgConnection.org_connection_id,\n // public_id: this.publicId\n // })\n //\n // }, (err) => {\n // this.errorMessage = 'Could not find the patient connection using id. Please contact the developer of this app.'\n // console.log(\"Invalid Fasten Connect Connection ID\", err)\n // this.stitchModal.nativeElement.show()\n // })\n } else {\n this.stitchModal.nativeElement.show()\n }\n\n }\n\n // TODO: this is required because when using the showStitchModal() method, the Search component is not being rendered correctly\n // this function can be called externally to show the modal\n showStitchModalExt(): void {\n this.stitchModal.nativeElement.show()\n }\n\n hideStitchModalExt(): void {\n this.stitchModal.nativeElement.close()\n }\n}\n","\n\n\n\n\n
\n \n You are using Fasten in test mode\n
\n
\n \n
\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n\n\n\n
\n
\n
\n \n \n \n\n Error\n

Configuration Error

\n
\n
\n {{errorMessage}}\n
\n
\n\n \n
\n
\n
\n
\n","export class VaultProfile {\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","export class FormHealthSystemRequest {\n name: string = \"\"\n email: string = \"\"\n website: string = \"\"\n street_address: string = \"\"\n}\n","\nexport class FormSupportRequest {\n healthsystem_name: string\n email: string\n request_content: string\n\n org_id: string\n org_name: string\n version: string\n arch: string\n os: string\n}\n","\nexport class SearchFilter {\n //primary search terms (changes here should restart the search completely)\n query: string = \"\"\n\n //secondary search terms/facets (changes here should restart pagination)\n platformTypes: string[] = [];\n categories: string[] = [];\n showHidden: boolean = false;\n\n //pagination - this is the current page (changes here should be ignored)\n searchAfter: string | string[] = '';\n\n fields: string[] = []; //specify the fields to return. if null or empty list, return all.\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 {VaultProfile} from './fasten/vaultProfile';\nimport {SearchFilter} from './search-filter';\nimport {\n LighthouseBrandListDisplayItem,\n LighthouseEndpointListDisplayItem,\n LighthousePortalListDisplayItem\n} from './lighthouse/lighthouse-source-search';\nimport {RecordLocatorFacility} from './fasten/record-locator-facility';\n\nexport interface VaultSystemConfig {\n publicId: string;\n apiMode: ApiMode;\n org?: Organization;\n org_id?: string\n reconnectOrgConnectionId?: string;\n}\n\nexport class VaultProfileConfig {\n vaultProfile?: VaultProfile;\n\n // connected patient accounts\n connectedPatientAccounts?: RecordLocatorFacility[];\n\n // pending patient accounts?\n pendingPatientAccounts?: { brand: LighthouseBrandListDisplayItem, portal: LighthousePortalListDisplayItem, endpoint: LighthouseEndpointListDisplayItem }[];\n addPendingAccount(brand: LighthouseBrandListDisplayItem, portal: LighthousePortalListDisplayItem, endpoint: LighthouseEndpointListDisplayItem): void {\n if (!this.pendingPatientAccounts) {\n this.pendingPatientAccounts = []\n }\n this.pendingPatientAccounts?.push({brand, portal, endpoint})\n }\n addConnectedAccount(recordLocatorFacility: RecordLocatorFacility): void {\n if (!this.connectedPatientAccounts) {\n this.connectedPatientAccounts = []\n }\n this.connectedPatientAccounts?.push(recordLocatorFacility)\n }\n}\n\n\nexport interface VaultSearchConfig {\n searchFilter?: SearchFilter\n selectedBrand?: LighthouseBrandListDisplayItem\n}\n\n// - apiMode\n// - organization information\n// - org credential information\n// - reconnect id.\n\n/**\n * Default configuration for the entire application. This object is used by\n * \"PortalConfigService\" to set the default configuration.\n */\nexport const vaultConfigDefaults: VaultSystemConfig = {\n publicId: '',\n apiMode: ApiMode.Test\n};\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-complete',\n templateUrl: './complete.component.html',\n styleUrls: ['./complete.component.scss']\n})\nexport class CompleteComponent implements OnInit, NavOutletPage {\n\n constructor(\n public changeRef: ChangeDetectorRef,\n ) { }\n\n ngOnInit(): void {\n }\n\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n}\n","\n
\n
\n

fasten

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

Success!

\n

\n Your health records have been successfully linked with Acme Labs.\n You can now close this window.\n

\n
\n\n \n
\n\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {VaultService} from '../../services/vault.service';\nimport {ConfigService} from '../../services/config.service';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss']\n})\nexport class DashboardComponent implements OnInit, NavOutletPage {\n\n\n constructor(\n public changeRef: ChangeDetectorRef,\n private vaultService: VaultService,\n public configService: ConfigService,\n ) { }\n\n ngOnInit(): void {\n this.vaultService.getRecordLocatorFacilities().subscribe((facilities)=>{\n console.log(\"record locator facilities\", facilities)\n for (let facility of facilities) {\n this.configService.vaultProfileAddConnectedAccount(facility)\n }\n })\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n}\n","
\n
\n

fasten

\n
\n\n
\n

Select Health Systems

\n

\n Choose the health systems you'd like to connect\n

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

{{connectedAccount.display_name}}

\n

Ready to connect

\n
\n \n
\n
\n \n \n \n \n \n
\n \"{{pendingAccount.brand?.name}}\"\n

{{pendingAccount.portal.name}}

\n

Sign in required

\n
\n \n Sign in\n \n
\n
\n\n \n \n\n
\n
\n \n Your medical records are secure\n
\n \n
\n
\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {VaultService} from '../../services/vault.service';\nimport {ConfigService} from '../../services/config.service';\nimport {FormHealthSystemRequest} from '../../models/forms/form-health-system-request';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../../app.routing';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-form-health-system-request',\n templateUrl: './form-health-system-request.component.html',\n styleUrls: ['./form-health-system-request.component.scss']\n})\nexport class FormHealthSystemRequestComponent implements OnInit, NavOutletPage {\n formRequestHealthSystem: FormHealthSystemRequest = {} as FormHealthSystemRequest\n\n loading: boolean = false\n submitSuccess: boolean = false\n errorMsg: string = \"\"\n\n constructor(\n public changeRef: ChangeDetectorRef,\n private navOutletService: NavOutletService,\n private configService: ConfigService,\n private vaultApi: VaultService,\n ) { }\n\n ngOnInit(): void {\n this.resetForm()\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n resetForm() {\n this.submitSuccess = false\n let requestForm = new FormHealthSystemRequest()\n requestForm.email = ''\n requestForm.name = this.configService.searchConfig$.searchFilter?.query || \"\"\n requestForm.street_address = ''\n requestForm.website = ''\n\n this.formRequestHealthSystem = requestForm\n }\n\n submitForm() {\n this.loading = true\n this.vaultApi.requestHealthSystem(this.formRequestHealthSystem).subscribe((resp: any) => {\n this.loading = false\n this.submitSuccess = true\n //show success toast? close modal?\n },\n (err)=>{\n this.loading = false\n console.error(\"an error occurred during request submission\",err)\n this.errorMsg = err || \"An error occurred while submitting your request. Please try again later.\"\n })\n }\n\n dismiss(){\n // this.messageBus.componentNavigationSubject.next({\n // page: ComponentNavPage.Search,\n // } as ComponentNavigationEvent)\n\n this.navOutletService.navigateByUrl(ComponentNavPage.Dashboard)\n }\n}\n","\n
\n
\n \n

fasten

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

Request your Health System

\n

\n Sharing your email address and related information helps us prioritize your Health System.\n

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

\n \n Email is required.\n \n \n Email must be valid.\n \n

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

\n \n Health system name is required.\n \n \n Health system name must be at least 4 characters long.\n \n

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

\n \n Website is required.\n \n \n Website must be at least 4 characters long.\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 Thanks for providing information about your Health System. Your request has been recorded and we will notify you once your Health System is supported.\n
\n \n
\n\n
\n
\n\n
\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {FormHealthSystemRequest} from '../../models/forms/form-health-system-request';\nimport {Router} from '@angular/router';\nimport {ConfigService} from '../../services/config.service';\nimport {VaultService} from '../../services/vault.service';\nimport {FormSupportRequest} from '../../models/forms/form-support-request';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../../app.routing';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-form-support-request',\n templateUrl: './form-support-request.component.html',\n styleUrls: ['./form-support-request.component.scss']\n})\nexport class FormSupportRequestComponent implements OnInit, NavOutletPage {\n formSupportRequest: FormSupportRequest = {} as FormSupportRequest\n\n loading: boolean = false\n submitSuccess: boolean = false\n errorMsg: string = \"\"\n\n constructor(\n public changeRef: ChangeDetectorRef,\n private navOutletService: NavOutletService,\n private configService: ConfigService,\n private vaultApi: VaultService,\n ) { }\n\n ngOnInit(): void {\n this.resetForm()\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n resetForm() {\n this.submitSuccess = false\n let requestForm = new FormSupportRequest()\n requestForm.email = ''\n requestForm.healthsystem_name = this.configService.searchConfig$.searchFilter?.query || \"\"\n requestForm.request_content = ''\n\n this.formSupportRequest = requestForm\n }\n\n submitForm() {\n this.loading = true\n this.vaultApi.requestSupport(this.formSupportRequest).subscribe((resp: any) => {\n this.loading = false\n this.submitSuccess = true\n //show success toast? close modal?\n },\n (err)=>{\n this.loading = false\n console.error(\"an error occurred during issue submission\",err)\n this.errorMsg = err || \"An error occurred while submitting your issue. Please try again later.\"\n })\n }\n\n dismiss(){\n // this.messageBus.componentNavigationSubject.next({\n // page: ComponentNavPage.Search,\n // } as ComponentNavigationEvent)\n\n this.navOutletService.navigateByUrl(ComponentNavPage.Dashboard)\n }\n\n}\n","\n
\n
\n \n

fasten

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

Report an issue

\n

\n Sharing your email address and related information helps us prioritize your issue.\n

\n
\n\n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n\n \n
\n
\n\n\n\n\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n Thanks for providing information about your issue. Your request has been recorded and we will notify you once we have an update.\n
\n \n
\n\n
\n
\n\n
\n","import {ChangeDetectorRef, Component, Input, OnInit} from '@angular/core';\nimport {\n LighthouseBrandListDisplayItem, LighthouseEndpointListDisplayItem,\n LighthousePortalListDisplayItem\n} from '../../models/lighthouse/lighthouse-source-search';\nimport {ConfigService} from '../../services/config.service';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../../app.routing';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-health-system-brand-details',\n templateUrl: './health-system-brand-details.component.html',\n styleUrls: ['./health-system-brand-details.component.scss']\n})\nexport class HealthSystemBrandDetailsComponent implements OnInit, NavOutletPage {\n\n @Input() brand!: LighthouseBrandListDisplayItem;\n\n constructor(\n public changeRef: ChangeDetectorRef,\n public configService: ConfigService,\n public navOutletService: NavOutletService\n ) {\n this.brand = configService.searchConfig$.selectedBrand!\n }\n\n ngOnInit(): void {\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n addPendingAccount(brand: LighthouseBrandListDisplayItem, portal: LighthousePortalListDisplayItem, endpoint: LighthouseEndpointListDisplayItem){\n console.log(\"addPendingAccount\")\n this.configService.vaultProfileAddPendingAccount(brand, portal, endpoint)\n this.navOutletService.navigateByUrl(ComponentNavPage.Dashboard)\n }\n}\n","\n
\n
\n \n

fasten

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

{{brand.name}}

\n
\n
\n\n

\n\n
\n
\n \n \n \n \n \n {{brand.brand_website}}\n
\n
\n \n \n \n \n {{brand.locations}}\n
\n
\n
\n\n \n
\n \n
\n
\n

{{portal.name}}

\n \n
\n
\n
\n
\n
\n
\n\n","import {ChangeDetectorRef, Component, Input, OnInit} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ConnectHelper} from '../../utils/connect-helper';\nimport {VaultService} from '../../services/vault.service';\nimport {ConfigService} from '../../services/config.service';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-health-system-connecting',\n templateUrl: './health-system-connecting.component.html',\n styleUrls: ['./health-system-connecting.component.scss']\n})\nexport class HealthSystemConnectingComponent implements OnInit, NavOutletPage {\n @Input() brandId: string = \"\";\n @Input() portalId: string = \"\";\n @Input() endpointId: string = \"\";\n\n\n constructor(\n public changeRef: ChangeDetectorRef,\n private route: ActivatedRoute,\n private vaultService: VaultService,\n private configService: ConfigService,\n private navOutletService: NavOutletService,\n ){\n this.route.params.subscribe((params) => {\n this.brandId = params['brandId'];\n this.portalId = params['portalId'];\n this.endpointId = params['endpointId'];\n });\n\n }\n\n ngOnInit(): void {\n\n ConnectHelper(this.vaultService, this.navOutletService, {\n public_id: this.configService.systemConfig$.publicId,\n catalog_brand_id: this.brandId,\n catalog_portal_id: this.portalId,\n catalog_endpoint_id: this.endpointId,\n // org_connection_id: this.reconnectOrgConnectionId,\n // external_id: this.externalId,\n // external_state: this.externalState,\n // connect_mode: this.connectMode,\n })\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n}\n","\n
\n
\n \n

fasten

\n
\n
\n
\n\n\n
\n
\n \"\"\n
\n
\n\n
\n

\n

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

Redirecting to sign in...

\n
\n
\n
\n
\n\n
\n","import {ChangeDetectorRef, Component, Input, OnInit} from '@angular/core';\nimport {SourceListItem} from '../../models/source-list-item';\nimport {\n LighthouseBrandListDisplayItem,\n LighthouseSourceSearch,\n LighthouseSourceSearchAggregation\n} from '../../models/lighthouse/lighthouse-source-search';\nimport {Observable, of} from 'rxjs';\nimport {SearchFilter} from '../../models/search-filter';\nimport {VaultService} from '../../services/vault.service';\nimport {ConfigService} from '../../services/config.service';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../../app.routing';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-health-system-search',\n templateUrl: './health-system-search.component.html',\n styleUrls: ['./health-system-search.component.scss']\n})\nexport class HealthSystemSearchComponent implements OnInit, NavOutletPage {\n loading = false;\n lighthouseBrandList: SourceListItem[] = []\n\n filter: SearchFilter = new SearchFilter()\n\n //limits that are tied to the current result set.\n resultLimits: {\n totalItems: number,\n scrollComplete: boolean,\n platformTypesBuckets: LighthouseSourceSearchAggregation | undefined,\n categoryBuckets: LighthouseSourceSearchAggregation | undefined,\n } = {\n totalItems: 0,\n scrollComplete: false,\n platformTypesBuckets: undefined,\n categoryBuckets: undefined\n }\n\n constructor(\n public changeRef: ChangeDetectorRef,\n public vaultServiceApi: VaultService,\n public configService: ConfigService,\n public navOutletService: NavOutletService\n ) { }\n\n ngOnInit(): void {\n this.querySources(true)\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n public querySources(reset: boolean): Observable {\n if(reset){\n this.resetSearch()\n }\n\n console.log(\"querySources()\", this.filter)\n if(this.loading){\n console.log(\"already loading, ignoring querySources()\")\n return of(null)\n }\n //TODO: pass filter to function.\n // this.location.replaceState('/dashboard','', this.filter)\n\n if(!this.filter){\n this.filter = new SearchFilter()\n console.log(\"querySources() - no filter provided, using current form value\", this.filter)\n }\n\n\n this.filter.fields = [\"*\"];\n this.loading = true\n var searchObservable = this.vaultServiceApi.searchCatalogBrands(this.configService.systemConfig$.apiMode!, this.filter);\n searchObservable.subscribe(wrapper => {\n console.log(\"search sources\", wrapper);\n // this.searchResults = wrapper.hits.hits;\n this.resultLimits.totalItems = wrapper?.hits?.total.value || 0;\n\n this.lighthouseBrandList = this.lighthouseBrandList.concat((wrapper?.hits?.hits || []).map((result) => {\n return {\n brand: result._source,\n searchHighlights: result?.highlight?.aliases || []\n }\n }))\n\n //check if scroll is complete.\n if(!wrapper?.hits || !wrapper?.hits?.hits || wrapper?.hits?.hits?.length == 0 || wrapper?.hits?.total?.value == wrapper?.hits?.hits?.length){\n console.log(\"SCROLL_COMPLETE!@@@@@@@@\")\n this.resultLimits.scrollComplete = true;\n } else {\n //change the current Page (but don't cause a new query)\n console.log(\"SETTING NEXT SORT KEY:\", wrapper.hits.hits[wrapper.hits.hits.length - 1].sort.join(','))\n this.filter.searchAfter = wrapper.hits.hits[wrapper.hits.hits.length - 1].sort.join(\",\")\n }\n this.loading = false\n },\n error => {\n this.loading = false\n console.error(\"sources FAILED\", error)\n },\n () => {\n this.loading = false\n console.log(\"sources finished\")\n }\n );\n return searchObservable;\n }\n\n onScroll() {\n if(!this.resultLimits.scrollComplete) {\n this.querySources(false)\n }\n }\n\n private resetSearch(){\n console.log(\"reset search...\")\n this.lighthouseBrandList = []\n this.filter.searchAfter = []\n this.resultLimits = {\n totalItems: 0,\n scrollComplete: false,\n platformTypesBuckets: undefined,\n categoryBuckets: undefined\n }\n }\n\n public selectBrand(brandItem?: LighthouseBrandListDisplayItem){\n\n this.configService.searchConfig$.selectedBrand = brandItem\n this.navOutletService.navigateByUrl(ComponentNavPage.HealthSystemBrandDetails)\n // this.messageBus.componentNavigationSubject.next({\n // page: ComponentNavPage.PortalConnect,\n // title: brandItem.name,\n // data: brandItem,\n // } as ComponentNavigationEvent)\n }\n}\n","\n
\n
\n \n

fasten

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

Filters

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

No results found

\n

We couldn't find any health systems matching your search.

\n \n
\n\n
\n\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {VaultService} from '../../services/vault.service';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../../app.routing';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-identity-verification',\n templateUrl: './identity-verification.component.html',\n styleUrls: ['./identity-verification.component.scss']\n})\nexport class IdentityVerificationComponent implements OnInit, NavOutletPage {\n loading = false;\n\n constructor(\n public changeRef: ChangeDetectorRef,\n private vaultService: VaultService,\n private navOutletService: NavOutletService,\n ) { }\n\n ngOnInit(): void {\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n verifyIdentity(){\n this.loading = true\n this.vaultService.verificationWithPopup().subscribe((result)=>{\n this.loading = false\n console.log(\"verification result\", result)\n this.navOutletService.navigateByUrl(ComponentNavPage.Dashboard)\n }, (err)=>{\n this.loading = false\n console.error(\"verification error\", err)\n })\n }\n}\n","\n
\n
\n

fasten

\n
\n\n
\n

\n Verify your identity
just once\n

\n

\n Your leaving Acme Labs to verify your identity with our partner, Clear.\n This one-time step will bring you right back after your ID has been verified.\n

\n
\n\n\n
\n \n
\n
\n\n","import {ChangeDetectorRef, Component, Input, OnInit} from '@angular/core';\nimport {AuthService} from '../../services/auth.service';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../../app.routing';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-vault-profile-signin-code',\n templateUrl: './vault-profile-signin-code.component.html',\n styleUrls: ['./vault-profile-signin-code.component.scss']\n})\nexport class VaultProfileSigninCodeComponent implements OnInit, NavOutletPage {\n loading: boolean = false\n errorMsg: string = \"\"\n\n @Input() currentEmail = \"test@example.com\"\n\n constructor(\n public changeRef: ChangeDetectorRef,\n private navOutletService: NavOutletService,\n private authService: AuthService,\n ) {}\n\n ngOnInit(): void {\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n onCodeCompleted(code: string){\n this.loading = true\n\n console.log(\"submit finish\", this.currentEmail, code)\n this.authService.VaultAuthFinish(this.currentEmail, code)\n .then(() => {\n this.loading = false\n this.navOutletService.navigateByUrl(ComponentNavPage.Dashboard)\n })\n .catch((err)=>{\n this.loading = false\n if(err?.name){\n this.errorMsg = \"code is incorrect\"\n } else{\n this.errorMsg = \"an unknown error occurred during sign-in\"\n }\n // const toastNotification = new ToastNotification()\n // toastNotification.type = ToastType.Error\n // toastNotification.message = this.errorMsg\n // this.toastService.show(toastNotification)\n })\n }\n\n}\n","\n
\n
\n

fasten

\n
\n\n
\n

\n Enter authentication code
from your email\n

\n

\n A code was sent to {{currentEmail}}\n

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

\n\n
\n Code expires in\n 4:59\n
\n\n
\n \n \n
\n
\n\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {VaultProfile} from '../../models/fasten/vaultProfile';\nimport {AuthService} from '../../services/auth.service';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../../app.routing';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\nimport {ConfigService} from '../../services/config.service';\n\n@Component({\n selector: 'app-auth-signin',\n templateUrl: './vault-profile-signin.component.html',\n styleUrls: ['./vault-profile-signin.component.scss']\n})\nexport class VaultProfileSigninComponent implements OnInit, NavOutletPage {\n loading: boolean = false\n showMessage: boolean = false\n\n submitted: boolean = false\n existingVaultProfile: VaultProfile = new VaultProfile()\n errorMsg: string = \"\"\n message: string = \"\"\n\n constructor(\n public changeRef: ChangeDetectorRef,\n public configService: ConfigService,\n private authService: AuthService,\n private navOutletService: NavOutletService,\n ) { }\n\n ngOnInit(): void {\n const urlParams = new URLSearchParams(window.location.search);\n this.setMessage(urlParams.get('action') || \"\")\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n signinSubmit(){\n this.submitted = true;\n this.loading = true\n\n console.log(\"Signin\", this.existingVaultProfile.email)\n this.authService.VaultAuthBegin(this.existingVaultProfile.email!)\n .then(() => {\n this.loading = false\n this.navOutletService.navigateByUrl( ComponentNavPage.VaultProfileSigninCode, new Map([[\"currentEmail\", this.existingVaultProfile.email]]))\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 setMessage(action: string) {\n if (action === \"email-changed\"){\n this.showMessage = true;\n this.message = \"Email successfully changed! Please sign in with your new email.\";\n } else if (action === \"password-changed\"){\n this.showMessage = true;\n this.message = \"Password successfully changed! Please sign in with your new password.\";\n }\n }\n}\n","\n
\n
\n

fasten

\n
\n\n
\n
\n \n \n \n \n \n
\n\n
\n
\n
\n
\n
\n\n \"Fasten'\" />\n
\n\n
\n

Connect Your Health Records

\n

\n {{(configService.systemConfigSubject | async).org?.name || 'Unknown'}} uses Fasten to securely link your health systems\n

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

Safe

\n

\n Securely connect your medical records with bank-level encryption\n

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

Private

\n

\n We never sell your personal info and only use it with your\n permission\n

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

\n \n Email is required.\n \n \n Email must be at least 4 characters long.\n \n \n Email must be a valid email address.\n \n \n Error {{errorMsg}}\n \n

\n\n

\n By clicking continue you agree to Fasten's\n Privacy Policy\n and {{(configService.systemConfigSubject | async).org?.name || 'Unknown'}}'s\n Privacy Policy\n

\n\n \n\n
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 { Pipe, PipeTransform } from '@angular/core';\nimport {DomSanitizer} from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHtml'\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer:DomSanitizer){}\n\n transform(value: any, args?: any): any {\n return this.sanitizer.bypassSecurityTrustHtml(value);\n // return this.sanitizer.bypassSecurityTrustStyle(style);\n // return this.sanitizer.bypassSecurityTrustXxx(style); - see docs\n }\n\n}\n","import {Directive, ElementRef, HostListener, Input, ViewContainerRef} from '@angular/core';\nimport {NavOutletService} from './nav-outlet.service';\n\n@Directive({\n selector: '[navOutletLink]'\n})\nexport class NavOutletLinkDirective {\n\n constructor(\n private eleRef: ElementRef,\n public navOutletService: NavOutletService\n ) {}\n\n @Input() navOutletLink: string = \"\"\n\n @HostListener('click') onClick(){\n this.navOutletService.navigateByUrl(this.navOutletLink)\n }\n}\n","import {Component, OnChanges, OnInit, SimpleChanges, ViewChild} from '@angular/core';\nimport {NavOutletDirective, } from './nav-outlet.directive';\nimport {ComponentNavPage, Routes, NavOutletRoute} from '../../app.routing';\nimport {NavOutletService} from './nav-outlet.service';\n\n@Component({\n selector: 'app-nav-outlet',\n templateUrl: './nav-outlet.component.html',\n styleUrls: ['./nav-outlet.component.css']\n})\nexport class NavOutletComponent implements OnInit, OnChanges {\n //location to dynamically load the resource list\n @ViewChild(NavOutletDirective, {static: true}) navOutlet!: NavOutletDirective;\n\n constructor(private navOutletService: NavOutletService) { }\n\n ngOnInit(): void {\n console.log(\"NavOutletComponent ngOnInit\")\n this.loadComponent()\n\n this.navOutletService.componentNavigationSubject.subscribe((componentNavEvent) => {\n console.log(\"page navigation event detected in NavOutletComponent: \", componentNavEvent)\n this.loadComponent(componentNavEvent)\n })\n }\n ngOnChanges(changes: SimpleChanges) {\n this.loadComponent()\n }\n\n // WARNING: errors in this method will cause silent failures and limited error messages for some reason.\n // it will also cause the ngOnInit subscribe functions to be ignored (subscription will be broken for all future calls)\n loadComponent(pageRoute?: NavOutletRoute) {\n try{\n //clear the current outlet\n const viewContainerRef = this.navOutlet.viewContainerRef;\n viewContainerRef.clear();\n\n if(pageRoute == null){\n //find the default route\n for(let route of Routes){\n if(route.page == ComponentNavPage.Default){\n pageRoute = route\n break\n }\n }\n if(pageRoute == null){\n //throw if the default page not found\n throw new Error(\"default page not found\")\n }\n }\n\n const componentRef = viewContainerRef.createComponent(pageRoute.component);\n if(pageRoute.inputs != null){\n for(let [key, value] of pageRoute.inputs) {\n componentRef.instance[key] = value\n }\n }\n componentRef.instance.markForCheck()\n } catch (e) {\n console.error(\"NavOutletComponent loadComponent error\", e)\n }\n\n }\n}\n","\n","import {Directive, ViewContainerRef} from '@angular/core';\n\n@Directive({\n selector: '[navOutletDirective]'\n})\nexport class NavOutletDirective {\n\n constructor(public viewContainerRef: ViewContainerRef) { }\n\n}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\nimport {NavOutletRoute, Routes} from '../../app.routing';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavOutletService {\n // this subject is populated when the \"page\" is changed\n public componentNavigationSubject = new BehaviorSubject(null)\n\n constructor() {}\n\n\n reset(){\n this.componentNavigationSubject.next(null)\n }\n\n navigateByUrl(nextPage: string, payload?: Map) {\n //remove the \"/\" prefix if present\n nextPage = nextPage.trim()\n if(nextPage.startsWith(\"/\")){\n nextPage = nextPage.substring(1)\n }\n\n\n console.log('navigating to page: ', nextPage)\n\n //find the component Route by nextPage\n let foundRoute: NavOutletRoute = null;\n for(let route of Routes) {\n if(route.page == nextPage){\n route.inputs = new Map()\n //add the payload data to the route\n //TODO: should we do a deep clone before?\n if(payload != null && payload.size > 0){\n route.inputs = payload\n }\n foundRoute = route\n console.log(\"found route info: \", nextPage)\n break;\n }\n }\n if(foundRoute == null){\n console.error(\"unknown page, could not route to: \", nextPage)\n throw new Error(\"unknown page, could not route to: \" + nextPage)\n }\n\n //check if we can \"activate\" the new page\n if(foundRoute.canActivate != null){\n foundRoute.canActivate.canActivate(foundRoute)\n .then((cont) => {\n if(!cont){\n return\n }\n this.componentNavigationSubject.next(foundRoute)\n })\n .catch(console.error)\n } else {\n this.componentNavigationSubject.next(foundRoute)\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';\nimport {NavOutletService} from '../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../app.routing';\n\n// based on https://stackoverflow.com/questions/46017245/how-to-handle-unauthorized-requestsstatus-with-401-or-403-with-new-httpclient\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthInterceptorService implements HttpInterceptor {\n\n constructor(private authService: AuthService, private navOutletService: NavOutletService) { }\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.navOutletService.navigateByUrl(ComponentNavPage.VaultProfileSignin);\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 {VaultProfile} from '../models/fasten/vaultProfile';\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 {ConfigService} from './config.service';\n\nexport const FASTEN_AUTH_VAULT_COOKIE_NAME = 'fasten_connect_auth_vault'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n\n public IsAuthenticatedSubject = new BehaviorSubject(false)\n\n constructor(private _httpClient: HttpClient, private configService: ConfigService) {}\n\n\n\n\n public async VaultAuthBegin(email: string): Promise {\n let resp = await this._httpClient.post(`${environment.connect_api_endpoint_base}/bridge/vault_auth_begin`, {\n \"email\": email,\n }, { withCredentials: true, params: {\"public_id\": this.configService.systemConfig$.publicId} }).toPromise()\n return resp\n }\n\n public async VaultAuthFinish(email: string, code: string): Promise {\n let resp = await this._httpClient.post(`${environment.connect_api_endpoint_base}/bridge/vault_auth_finish`, {\n \"email\": email,\n \"code\": code\n }, { withCredentials: true, params: {\"public_id\": this.configService.systemConfig$.publicId} }).toPromise()\n return resp\n }\n\n public async Signout(): Promise {\n this.publishAuthenticationState(false)\n return this.deleteCookie(FASTEN_AUTH_VAULT_COOKIE_NAME)\n // // let remotePouchDb = new PouchDB(this.getRemoteUserDb(localStorage.getItem(\"current_user\")), {skip_setup: true});\n // if(this.pouchDb){\n // await this.pouchDb.logOut()\n // }\n // await this.Close()\n }\n\n\n public async GetJWTPayload(): Promise {\n let authToken = this.getCookie(FASTEN_AUTH_VAULT_COOKIE_NAME)\n if (!authToken) {\n return null\n }\n let jwks = jose.createRemoteJWKSet(new URL(environment.jwks_uri))\n let issuerHost = environment.connect_api_jwt_issuer_host\n\n try {\n //audience and issuer must be the same. This token is only valid on the fasten connect api\n const {payload, protectedHeader} = await jose.jwtVerify(authToken, jwks, {\n issuer: issuerHost,\n audience: issuerHost,\n })\n // @ts-ignore\n this.vaultConfigService.systemConfig = {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, '', -99999); // - 1 was not far back enough to actually remove the cookie, this sets the time before the epoch and will cause the cookie to be deleted.\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 {BehaviorSubject} from 'rxjs';\nimport {VaultSystemConfig, vaultConfigDefaults, VaultSearchConfig, VaultProfileConfig} from '../models/vault-config';\nimport {merge} from 'lodash';\nimport {ApiMode} from '../app.constants';\nimport {VaultProfile} from '../models/fasten/vaultProfile';\nimport {Organization} from '../models/fasten/organization';\nimport {VaultService} from './vault.service';\nimport {\n LighthouseBrandListDisplayItem, LighthouseEndpointListDisplayItem,\n LighthousePortalListDisplayItem\n} from '../models/lighthouse/lighthouse-source-search';\nimport {RecordLocatorFacility} from '../models/fasten/record-locator-facility';\nimport {NavOutletRoute} from '../app.routing';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService {\n //TODO: there should be 3 types of \"config\" settings:\n // 1. Service settings\n // - apiMode\n // - organization information\n // - org credential information\n // - reconnect id.\n // 2. User settings\n // - user token/cookie data\n // - vault profile\n // - current connected patient auth's\n // - (FUTURE) potential patient auths?\n // 3. Search settings\n // - search filters\n // - selected brand\n // -\n\n //public but should only be used in HTML directly. (via `| async`)\n public systemConfigSubject: BehaviorSubject;\n public vaultProfileConfigSubject: BehaviorSubject;\n public searchConfigSubject: BehaviorSubject;\n\n\n private _defaultSystemConfig: VaultSystemConfig;\n\n constructor() {\n this._defaultSystemConfig = vaultConfigDefaults\n this.systemConfigSubject = new BehaviorSubject(this._defaultSystemConfig);\n this.vaultProfileConfigSubject = new BehaviorSubject(Object.setPrototypeOf({}, VaultProfileConfig.prototype));\n this.searchConfigSubject = new BehaviorSubject({} as VaultSearchConfig);\n\n }\n\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Setter & getter for config\n */\n\n //Setter\n set systemConfig(value: Partial) {\n // get the current config, merge the new values, and then submit.\n const mergedSettings = merge({}, this.systemConfigSubject.getValue(), value);\n\n // Store the value\n if(JSON.stringify(mergedSettings) !== JSON.stringify(this.systemConfigSubject.getValue())){\n console.log('updating system settings:', mergedSettings)\n this.systemConfigSubject.next(mergedSettings);\n }\n }\n\n //Getter\n get systemConfig$(): VaultSystemConfig {\n console.log('getting cached system settings:', this.systemConfigSubject.getValue())\n return this.systemConfigSubject.getValue()\n }\n\n //Setter\n set vaultProfileConfig(value: Partial) {\n // get the current config, merge the new values, and then submit.\n const mergedSettings = merge({}, this.vaultProfileConfigSubject.getValue(), value);\n\n // Store the value\n if(JSON.stringify(mergedSettings) !== JSON.stringify(this.vaultProfileConfigSubject.getValue())){\n console.log('updating vault profile settings:', mergedSettings)\n this.vaultProfileConfigSubject.next(Object.setPrototypeOf(mergedSettings, VaultProfileConfig.prototype));\n }\n }\n //Getter\n get vaultProfileConfig$(): VaultProfileConfig {\n console.log('getting vault profile settings:', this.vaultProfileConfigSubject.getValue())\n return this.vaultProfileConfigSubject.getValue()\n }\n vaultProfileAddPendingAccount(brand: LighthouseBrandListDisplayItem, portal: LighthousePortalListDisplayItem, endpoint: LighthouseEndpointListDisplayItem){\n let updatedVaultProfile = this.vaultProfileConfig$\n updatedVaultProfile.addPendingAccount(brand, portal, endpoint)\n this.vaultProfileConfig = updatedVaultProfile\n }\n vaultProfileAddConnectedAccount(recordLocatorFacility: RecordLocatorFacility){\n let updatedVaultProfile = this.vaultProfileConfig$\n updatedVaultProfile.addConnectedAccount(recordLocatorFacility)\n this.vaultProfileConfig = updatedVaultProfile\n }\n\n //Setter\n set searchConfig(value: Partial) {\n // get the current config, merge the new values, and then submit.\n const mergedSettings = merge({}, this.searchConfigSubject.getValue(), value);\n\n // Store the value\n if(JSON.stringify(mergedSettings) !== JSON.stringify(this.searchConfigSubject.getValue())){\n console.log('updating search settings:', mergedSettings)\n this.searchConfigSubject.next(mergedSettings);\n }\n }\n //Getter\n get searchConfig$(): VaultSearchConfig {\n console.log('getting search settings:', this.searchConfigSubject.getValue())\n return this.searchConfigSubject.getValue()\n }\n}\n","import { Injectable } from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\nimport {OrganizationConnectionCallbackEvent} from '../models/organization-connection-callback-event';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageBusService {\n\n //this subject is populated when in popup mode, and a Portal/Endpoint has been selected.\n // A separate window will be opened, and credentials & metadata from that connection will be passed to this callback fn.\n // SEE: https://docs.connect.fastenhealth.com/stitch/webcomponent for example data structure.\n // {\n // \"org_connection_id\": \"1234-1234-1234-1234-1234\",\n // \"endpoint_id\": \"1234-1234-1234-1234-1234\"\n // }\n public orgConnectionCallbackSubject = new BehaviorSubject(null)\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 { ApiMode } from '../app.constants';\nimport { OrganizationCredential } from '../models/fasten/organization-credential';\nimport { VaultProfile } from \"../models/fasten/vaultProfile\";\nimport {catchError, concatMap, filter, first, fromEvent, map, Observable, of, throwError, timeout} from 'rxjs';\nimport { DeviceDetectorService } from 'ngx-device-detector';\nimport {SearchFilter} from '../models/search-filter';\nimport {LighthouseSourceSearch} from '../models/lighthouse/lighthouse-source-search';\nimport {FormHealthSystemRequest} from '../models/forms/form-health-system-request';\nimport {FormSupportRequest} from '../models/forms/form-support-request';\nimport {RecordLocatorFacility} from '../models/fasten/record-locator-facility';\nimport {OrganizationConnectionCallbackEvent} from '../models/organization-connection-callback-event';\nimport {ConfigService} from './config.service';\nimport {VaultSystemConfig} from '../models/vault-config';\n\nexport const ConnectWindowTimeout = 2*60*1000 //wait 2 minutes (in milliseconds)\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VaultService {\n\n constructor(\n private _httpClient: HttpClient,\n private deviceService: DeviceDetectorService,\n public configService: ConfigService,\n ) {\n\n //always watch for changes to the vault\n this.configService.systemConfigSubject.subscribe((systemConfig: VaultSystemConfig) => {\n console.log(\"System configuration changed:\", systemConfig, this.configService.systemConfig$)\n if(systemConfig.org_id && !systemConfig.org){\n console.log(\"attempt to download org information, and store in config\")\n this.getOrg(systemConfig.org_id).subscribe((org: Organization )=>{\n console.log(\"org:\", org)\n this.configService.systemConfig = {org: org}\n })\n }\n });\n }\n\n\n //This function must be \".subscribed()\" to work. If not, the handler will not be registered and messages will be ignored.\n private waitForOrgConnectionOrTimeout(openedWindow: Window): Observable {\n console.log(`waiting for postMessage notification from popup window`)\n\n //new code to listen to post message\n return fromEvent(window, 'message')\n .pipe(\n //throw an error if we wait more than 2 minutes (this will close the window)\n timeout(ConnectWindowTimeout) as any,\n //make sure we're only listening to events from the \"opened\" window.\n filter((event: MessageEvent) => event.source == openedWindow),\n //after filtering, we should only have one event to handle.\n first(),\n map((event: any) => {\n console.log(`received postMessage notification from popup window & sending acknowledgment`)\n // @ts-ignore\n event.source.postMessage(JSON.stringify({close:true}), event.origin);\n console.log(\"postmessage data\", event.data)\n return JSON.parse(event.data)\n }),\n catchError((err) => {\n console.warn(`timed out waiting for notification from popup (${ConnectWindowTimeout/1000}s), closing window`)\n openedWindow.self.close()\n return throwError(err)\n })\n )\n }\n\n public getRecordLocatorFacilities(): Observable {\n return this._httpClient.get(`${environment.connect_api_endpoint_base}/bridge/record_locator`,\n {params: {\"public_id\": this.configService.systemConfig$.publicId }})\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Record Locator Response\", response)\n return response.data as RecordLocatorFacility[];\n })\n );\n }\n\n public searchCatalogBrands(apiMode: ApiMode, filter: SearchFilter): Observable {\n if((typeof filter.searchAfter === 'string' || filter.searchAfter instanceof String) && (filter.searchAfter as string).length > 0){\n filter.searchAfter = (filter.searchAfter as string).split(',')\n } else {\n filter.searchAfter = []\n }\n const endpointUrl = new URL(`${environment.connect_api_endpoint_base}/bridge/catalog/search`);\n\n return this._httpClient.post(endpointUrl.toString(), filter, {params: {\n \"public_id\": this.configService.systemConfig$.publicId,\n 'api_mode': apiMode\n }})\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Metadata RESPONSE\", response)\n return response.data as LighthouseSourceSearch\n })\n );\n }\n\n public getOrg(orgId: String): Observable {\n return this._httpClient.get(`${environment.connect_api_endpoint_base}/org/${orgId}`,\n {params: {\n \"public_id\": this.configService.systemConfig$.publicId,\n }})\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization\", response)\n return response.data as Organization;\n })\n );\n }\n\n public getOrgByPublicId(publicId: String): Observable {\n let queryParams = {}\n queryParams['public_id'] = publicId\n\n return this._httpClient.get(\n `${environment.connect_api_endpoint_base}/bridge/org`, {params: queryParams})\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization\", response)\n return response.data as Organization;\n })\n );\n }\n\n\n requestHealthSystem(requestHealth: FormHealthSystemRequest): Observable {\n const endpointUrl = new URL(`${environment.connect_api_endpoint_base}/support/healthsystem`);\n\n return this._httpClient.post(endpointUrl.toString(), requestHealth)\n .pipe(\n map((response: ResponseWrapper) => {\n // @ts-ignore\n return {}\n })\n );\n }\n\n requestSupport(request: FormSupportRequest): Observable {\n const endpointUrl = new URL(`${environment.connect_api_endpoint_base}/support/request`);\n\n return this._httpClient.post(endpointUrl.toString(), request)\n .pipe(\n map((response: ResponseWrapper) => {\n // @ts-ignore\n return {}\n })\n );\n }\n\n\n // public verificationWithPopup(publicId: string, brandId: string, portalId: string, endpointId: string, reconnectOrgConnectionId?: string, connectMode?: ConnectMode, externalId?: string, externalState?: string): Observable {\n public verificationWithPopup(): Observable {\n //todo, this should use a bridge/connect or vault endpoint\n\n const redirectUrl = new URL(`${environment.connect_api_endpoint_base}/bridge/identity_verification/connect`);\n redirectUrl.searchParams.set(\"public_id\", this.configService.systemConfig$.publicId);\n\n const isDesktop = this.deviceService.isDesktop();\n let features = \"\"\n if(isDesktop){\n //add optons for window.open, popup only for desktop (mobile and table will open a new tab)\n features = \"popup=true,width=700,height=600\"\n }\n\n //open a external url in a new window\n let openedWindow = window.open(redirectUrl.toString(), \"_blank\", features);\n\n return this.waitForOrgConnectionOrTimeout(openedWindow!)\n }\n\n public accountConnectWithPopup(brandId: string, portalId: string, endpointId: string, reconnectOrgConnectionId?: string, externalId?: string, externalState?: string): Observable {\n const redirectUrlParts = new URL(`${environment.connect_api_endpoint_base}/bridge/connect`);\n const redirectParams = new URLSearchParams()\n redirectParams.set(\"public_id\", this.configService.systemConfig$.publicId)\n redirectParams.set(\"brand_id\", brandId)\n redirectParams.set(\"portal_id\", portalId)\n redirectParams.set(\"endpoint_id\", endpointId)\n redirectParams.set(\"connect_mode\", \"popup\")\n if (reconnectOrgConnectionId) {\n redirectParams.set(\"reconnect_org_connection_id\", reconnectOrgConnectionId)\n }\n if (externalId) {\n redirectParams.set(\"external_id\", externalId)\n }\n if (externalState) {\n redirectParams.set(\"external_state\", externalState)\n }\n\n redirectUrlParts.search = redirectParams.toString()\n console.log(redirectUrlParts.toString());\n\n\n const isDesktop = this.deviceService.isDesktop();\n let features = \"\"\n if(isDesktop){\n //add optons for window.open, popup only for desktop (mobile and table will open a new tab)\n features = \"popup=true,width=700,height=600\"\n }\n\n //We're always in popup mode, we can open a new window, rather than redirecting the current window (which is an app frame)\n //open a external url in a new window\n let openedWindow = window.open(redirectUrlParts.toString(), \"_blank\", features);\n return this.waitForOrgConnectionOrTimeout(openedWindow!)\n }\n\n\n //OLD code\n\n\n public updateUser(oldPass: string, oldEmail: string, newEmail: string, newPass: string = \"\"): Observable {\n const userUpdateJson = JSON.stringify({\n email: oldEmail,\n password: oldPass,\n newEmail: newEmail,\n newPassword: newPass\n });\n return this._httpClient.put(`${environment.connect_api_endpoint_base}/user`, userUpdateJson)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Updated User\", response)\n\n return response.data as VaultProfile;\n })\n );\n }\n\n /**\n * Create a new organization and associate it with the current User\n * @param newOrg\n * @param logoBlob\n * @constructor\n */\n public createOrg(newOrg: Organization, logoBlob: Blob): Observable {\n const formData = new FormData();\n\n //add the org data to the form data\n const orgJson = JSON.stringify(newOrg);\n const orgJsonBlob = new Blob([orgJson], {\n type: 'application/json'\n });\n formData.append(\"org\", orgJsonBlob);\n formData.append(\"logo\", logoBlob);\n\n let resp = this._httpClient.post(`${environment.connect_api_endpoint_base}/org`, formData)\n console.log(resp)\n return resp\n }\n\n\n public updateOrg(orgId: string, updateOrg: Organization, logoBlob?: Blob | null): Observable {\n const formData = new FormData();\n\n //add the org data to the form data\n const orgJson = JSON.stringify(updateOrg);\n const orgJsonBlob = new Blob([orgJson], {\n type: 'application/json'\n });\n formData.append(\"org\", orgJsonBlob);\n if (logoBlob) {\n formData.append(\"logo\", logoBlob);\n }\n return this._httpClient.put(`${environment.connect_api_endpoint_base}/org/${orgId}`, formData)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Updated Organization\", response)\n return response.data as Organization;\n })\n );\n }\n\n public sendOrgInvite(orgId: string, recipientEmail: string): Observable {\n return this._httpClient.post(`${environment.connect_api_endpoint_base}/org/${orgId}/invite`, {\n recipient_email_address: recipientEmail,\n org_id: orgId\n })\n }\n\n // public createOrgCredentials(orgId: string, apiMode: ApiMode, redirectUrl: string, note: 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 // note: note\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\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\n\n\n\n\n\n\n}\n","import {Observable} from 'rxjs';\nimport {VaultService} from '../services/vault.service';\nimport {Router} from '@angular/router';\nimport {NavOutletService} from '../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../app.routing';\n\nexport interface ConnectData {\n public_id: string;\n catalog_brand_id: string;\n catalog_portal_id: string;\n catalog_endpoint_id: string;\n\n\n //only populated when reconnect_org_connection is present\n org_connection_id?: string;\n external_id?: string\n external_state?: string\n}\n\nexport function ConnectHelper(vaultApi:VaultService, navOutletService: NavOutletService, connectData: ConnectData): void {\n vaultApi.accountConnectWithPopup(connectData.catalog_brand_id, connectData.catalog_portal_id, connectData.catalog_endpoint_id, connectData.org_connection_id, connectData.external_id, connectData.external_state).subscribe((orgConnectionCallbackData) => {\n console.log(orgConnectionCallbackData)\n\n if(!orgConnectionCallbackData){\n return //wait for redirect\n }\n\n //Note: this code will only run when this.connectMode == popup\n //when connectMode == 'redirect', the user is redirected in the same window, and this code is never executed.\n\n // messageBus.orgConnectionCallbackSubject.next(orgConnectionCallbackData)\n\n // //redirect the browser back to the search page (TODO: this should show the support request page if an error occurred)\n // messageBus.componentNavigationSubject.next({\n // page: ComponentNavPage.Search,\n // } as ComponentNavigationEvent)\n navOutletService.navigateByUrl(ComponentNavPage.Dashboard);\n })\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport 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 //use to specify the host that issued the JWT. This is used to verify the JWT.\n //This should always be the same as the connect_api_endpoint_base, however in local mode it will be different because of angular proxy\n // connect_api_jwt_issuer_host: 'http://localhost:8000',\n\n //JWKS for JWT verification\n // jwks_uri: 'https://cdn.fastenhealth.com/jwks/fasten-connect/local.json',\n\n\n //when using local proxy to api.connect-dev.fastenhealth.com, uncomment the following lines:\n jwks_uri: 'https://cdn.fastenhealth.com/jwks/fasten-connect/dev.json',\n connect_api_jwt_issuer_host: 'https://api.connect-dev.fastenhealth.com/v1',\n\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\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 == \"production\") {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"names":["ChangeDetectorRef","i0","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","connectedAccount_r2","display_name","ɵɵtextInterpolate","ɵɵnamespaceSVG","ɵɵnamespaceHTML","ɵɵpropertyInterpolate1","pendingAccount_r3","brand","id","ɵɵsanitizeUrl","ɵɵpropertyInterpolate","name","portal","endpoint","DashboardComponent","constructor","changeRef","vaultService","configService","ngOnInit","getRecordLocatorFacilities","subscribe","facilities","console","log","facility","vaultProfileAddConnectedAccount","markForCheck","ɵɵdirectiveInject","i1","VaultService","i2","ConfigService","selectors","decls","vars","consts","template","DashboardComponent_Template","rf","ctx","ɵɵtemplate","DashboardComponent_div_10_Template","DashboardComponent_div_12_Template","tmp_0_0","ɵɵpipeBind1","vaultProfileConfigSubject","connectedPatientAccounts","ɵɵpureFunction0","_c0","tmp_1_0","pendingPatientAccounts","VaultProfile","ComponentNavPage","ɵɵtextInterpolate1","ctx_r7","errorMsg","VaultProfileSigninComponent_p_47_span_1_Template","VaultProfileSigninComponent_p_47_span_2_Template","VaultProfileSigninComponent_p_47_span_3_Template","VaultProfileSigninComponent_p_47_span_4_Template","_r1","errors","ctx_r2","VaultProfileSigninComponent","authService","navOutletService","loading","showMessage","submitted","existingVaultProfile","message","urlParams","URLSearchParams","window","location","search","setMessage","get","signinSubmit","email","VaultAuthBegin","then","navigateByUrl","VaultProfileSigninCode","Map","catch","err","action","AuthService","i3","NavOutletService","VaultProfileSigninComponent_Template","ɵɵlistener","VaultProfileSigninComponent_Template_form_ngSubmit_41_listener","VaultProfileSigninComponent_Template_input_ngModelChange_45_listener","$event","VaultProfileSigninComponent_p_47_Template","VaultProfileSigninComponent_app_spinner_58_Template","systemConfigSubject","org","invalid","dirty","touched","privacy_policy_uri","_r0","form","valid","environment","BehaviorSubject","jose","FASTEN_AUTH_VAULT_COOKIE_NAME","_httpClient","IsAuthenticatedSubject","_this","_asyncToGenerator","resp","post","connect_api_endpoint_base","withCredentials","params","systemConfig$","publicId","toPromise","VaultAuthFinish","code","_this2","Signout","_this3","publishAuthenticationState","deleteCookie","GetJWTPayload","_this4","authToken","getCookie","jwks","createRemoteJWKSet","URL","jwks_uri","issuerHost","connect_api_jwt_issuer_host","payload","protectedHeader","jwtVerify","issuer","audience","vaultConfigService","systemConfig","user","e","error","IsAuthenticated","_this5","isAuthenticated","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","ɵɵinject","HttpClient","factory","ɵfac","providedIn"],"sourceRoot":"webpack:///","x_google_ignoreList":[]} \ No newline at end of file +{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app.constants.ts","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/components/spinner/spinner.component.ts","./src/app/components/spinner/spinner.component.html","./src/app/directives/image-fallback.directive.ts","./src/app/fasten-stitch/fasten-stitch.component.ts","./src/app/fasten-stitch/fasten-stitch.component.html","./src/app/models/fasten/vaultProfile.ts","./src/app/models/forms/form-health-system-request.ts","./src/app/models/forms/form-support-request.ts","./src/app/models/search-filter.ts","./src/app/models/vault-config.ts","./src/app/pages/complete/complete.component.ts","./src/app/pages/complete/complete.component.html","./src/app/pages/dashboard/dashboard.component.ts","./src/app/pages/dashboard/dashboard.component.html","./src/app/pages/form-health-system-request/form-health-system-request.component.ts","./src/app/pages/form-health-system-request/form-health-system-request.component.html","./src/app/pages/form-support-request/form-support-request.component.ts","./src/app/pages/form-support-request/form-support-request.component.html","./src/app/pages/health-system-brand-details/health-system-brand-details.component.ts","./src/app/pages/health-system-brand-details/health-system-brand-details.component.html","./src/app/pages/health-system-connecting/health-system-connecting.component.ts","./src/app/pages/health-system-connecting/health-system-connecting.component.html","./src/app/pages/health-system-search/health-system-search.component.ts","./src/app/pages/health-system-search/health-system-search.component.html","./src/app/pages/identity-verification/identity-verification.component.ts","./src/app/pages/identity-verification/identity-verification.component.html","./src/app/pages/vault-profile-signin-code/vault-profile-signin-code.component.ts","./src/app/pages/vault-profile-signin-code/vault-profile-signin-code.component.html","./src/app/pages/vault-profile-signin/vault-profile-signin.component.ts","./src/app/pages/vault-profile-signin/vault-profile-signin.component.html","./src/app/pipes/safe-html.pipe.ts","./src/app/router/nav-outlet/nav-outlet-link.directive.ts","./src/app/router/nav-outlet/nav-outlet.component.ts","./src/app/router/nav-outlet/nav-outlet.component.html","./src/app/router/nav-outlet/nav-outlet.directive.ts","./src/app/router/nav-outlet/nav-outlet.service.ts","./src/app/services/auth-interceptor.service.ts","./src/app/services/auth.service.ts","./src/app/services/config.service.ts","./src/app/services/message-bus.service.ts","./src/app/services/vault.service.ts","./src/app/utils/connect-helper.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["export enum ApiMode {\n Live = \"live\",\n Test = \"test\",\n}\n\nexport enum ConnectionStatus {\n Authorized = \"authorized\",\n Revoked = \"revoked\"\n}\n\nexport enum ConnectMode {\n Redirect = \"redirect\",\n Popup = \"popup\",\n}\n\nexport const ConnectWindowTimeout = 24*5000 //wait 2 minutes (5 * 24 = 120)\n","import { NgModule, Injector } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport {FormsModule} from '@angular/forms';\nimport { createCustomElement } from '@angular/elements';\nimport {CommonModule} from '@angular/common';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {InfiniteScrollModule} from 'ngx-infinite-scroll';\nimport { CodeInputModule } from 'angular-code-input';\n\nimport {ImageFallbackDirective} from './directives/image-fallback.directive';\nimport {NavOutletComponent} from './router/nav-outlet/nav-outlet.component';\nimport {NavOutletDirective} from './router/nav-outlet/nav-outlet.directive';\nimport {NavOutletLinkDirective} from './router/nav-outlet/nav-outlet-link.directive';\n\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\nimport { SpinnerComponent } from './components/spinner/spinner.component';\n\nimport { FastenStitchComponent } from './fasten-stitch/fasten-stitch.component';\nimport { DashboardComponent } from './pages/dashboard/dashboard.component';\nimport { VaultProfileSigninComponent } from './pages/vault-profile-signin/vault-profile-signin.component';\nimport { VaultProfileSigninCodeComponent } from './pages/vault-profile-signin-code/vault-profile-signin-code.component';\nimport { IdentityVerificationComponent } from './pages/identity-verification/identity-verification.component';\nimport { HealthSystemSearchComponent } from './pages/health-system-search/health-system-search.component';\nimport { HealthSystemBrandDetailsComponent } from './pages/health-system-brand-details/health-system-brand-details.component';\nimport { FormHealthSystemRequestComponent } from './pages/form-health-system-request/form-health-system-request.component';\nimport { FormSupportRequestComponent } from './pages/form-support-request/form-support-request.component';\nimport { HealthSystemConnectingComponent } from './pages/health-system-connecting/health-system-connecting.component';\nimport { CompleteComponent } from './pages/complete/complete.component';\nimport {NavOutletService} from './router/nav-outlet/nav-outlet.service';\nimport {AuthInterceptorService} from './services/auth-interceptor.service';\nimport {AuthService} from './services/auth.service';\n\n\n@NgModule({\n declarations: [\n FastenStitchComponent,\n DashboardComponent,\n VaultProfileSigninComponent,\n VaultProfileSigninCodeComponent,\n IdentityVerificationComponent,\n HealthSystemSearchComponent,\n HealthSystemBrandDetailsComponent,\n FormHealthSystemRequestComponent,\n FormSupportRequestComponent,\n HealthSystemConnectingComponent,\n CompleteComponent,\n\n ImageFallbackDirective,\n NavOutletComponent,\n NavOutletDirective,\n NavOutletLinkDirective,\n SafeHtmlPipe,\n SpinnerComponent,\n ],\n imports: [\n BrowserModule,\n FormsModule,\n HttpClientModule,\n CommonModule,\n InfiniteScrollModule,\n CodeInputModule,\n ],\n // providers: [NavOutletService],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptorService,\n multi: true,\n // deps: [AuthService, NavOutletService]\n // deps: [AuthService, NavOutletService]\n },\n ],\n entryComponents: [FastenStitchComponent]\n})\nexport class AppModule {\n constructor(injector: Injector) {\n const el = createCustomElement(FastenStitchComponent, { injector });\n customElements.define('fasten-stitch', el);\n }\n\n ngDoBootstrap() {}\n}\n","import { Type} from '@angular/core';\nimport {VaultProfileSigninComponent} from './pages/vault-profile-signin/vault-profile-signin.component';\nimport {VaultProfileSigninCodeComponent} from './pages/vault-profile-signin-code/vault-profile-signin-code.component';\nimport {IdentityVerificationComponent} from './pages/identity-verification/identity-verification.component';\nimport {\n FormHealthSystemRequestComponent\n} from './pages/form-health-system-request/form-health-system-request.component';\nimport {FormSupportRequestComponent} from './pages/form-support-request/form-support-request.component';\nimport {HealthSystemSearchComponent} from './pages/health-system-search/health-system-search.component';\nimport {\n HealthSystemBrandDetailsComponent\n} from './pages/health-system-brand-details/health-system-brand-details.component';\nimport {HealthSystemConnectingComponent} from './pages/health-system-connecting/health-system-connecting.component';\nimport {CompleteComponent} from './pages/complete/complete.component';\nimport {NavOutletPage} from './models/nav-outlet-page';\nimport {DashboardComponent} from './pages/dashboard/dashboard.component';\n\nexport enum ComponentNavPage {\n Default = \"\",\n\n VaultProfileSignin = \"vault-profile-signin\",\n VaultProfileSigninCode = \"vault-profile-signin-code\",\n IdentityVerification = \"identity-verification\",\n\n Dashboard = \"dashboard\",\n FormHealthSystemRequest = \"form-health-system-request\",\n FormSupportRequest = \"form-support-request\",\n\n HealthSystemSearch = \"health-system-search\",\n HealthSystemBrandDetails = \"health-system-brand-details\",\n HealthSystemConnecting = \"health-system-connecting\",\n CompleteSummary = \"complete\",\n}\n\nexport interface NavOutletCanActivate {\n canActivate(route: NavOutletRoute): Promise \n}\nexport class NavOutletRoute {\n page: string = ComponentNavPage.Dashboard\n component: Type = null\n inputs?: Map\n canActivate?: NavOutletCanActivate\n}\n\nexport const Routes: NavOutletRoute[] = [\n //on empty, this is where we go\n { page: ComponentNavPage.Default, component: VaultProfileSigninComponent },\n\n { page: ComponentNavPage.VaultProfileSignin, component: VaultProfileSigninComponent },\n { page: ComponentNavPage.VaultProfileSigninCode, component: VaultProfileSigninCodeComponent },\n { page: ComponentNavPage.IdentityVerification, component: IdentityVerificationComponent },\n\n { page: ComponentNavPage.Dashboard, component: DashboardComponent },\n { page: ComponentNavPage.FormHealthSystemRequest, component: FormHealthSystemRequestComponent },\n { page: ComponentNavPage.FormSupportRequest, component: FormSupportRequestComponent },\n\n { page: ComponentNavPage.HealthSystemSearch, component: HealthSystemSearchComponent },\n { page: ComponentNavPage.HealthSystemBrandDetails, component: HealthSystemBrandDetailsComponent },\n { page: ComponentNavPage.HealthSystemConnecting, component: HealthSystemConnectingComponent },\n { page: ComponentNavPage.CompleteSummary, component: CompleteComponent },\n]\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss']\n})\nexport class SpinnerComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n \n \n\n","import {Directive, ElementRef, HostListener, Input} from '@angular/core';\n\nconst DEFAULT_IMAGE_FALLBACK_PATH: string = 'https://cdn.fastenhealth.com/images/no-image.svg';\n\n@Directive({\n selector: 'img[imageFallback]'\n})\nexport class ImageFallbackDirective {\n @Input() imageFallback?: string;\n constructor(private elementRef: ElementRef) {}\n\n @HostListener('error')\n loadFallbackOnError() {\n // Check to see if we have already tried to load the fallback image.\n // Avoids endless loop if for some reason fallback image is missing. Just accept the broken image.\n if (this.path(this.elementRef.nativeElement.src) == this.path(this.fallbackSrc())) {\n return;\n }\n\n this.elementRef.nativeElement.src = this.fallbackSrc();\n }\n\n private fallbackSrc(): string {\n return this.imageFallback || DEFAULT_IMAGE_FALLBACK_PATH;\n }\n\n private path(urlString: string): string {\n // remove http(s) and domain\n return urlString.replace(/^https?:\\/\\/[^\\/]*/, '');\n }\n\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n AfterViewInit, ViewEncapsulation,\n} from '@angular/core';\nimport {LighthouseBrandListDisplayItem} from '../models/lighthouse/lighthouse-source-search';\nimport {ApiMode} from '../app.constants';\nimport {MessageBusService} from '../services/message-bus.service';\nimport {OrganizationConnectionCallbackEvent} from '../models/organization-connection-callback-event';\nimport { ElementRef, ViewChild } from '@angular/core';\nimport {ConfigService} from '../services/config.service';\nimport {VaultService} from '../services/vault.service';\nimport {Organization} from '../models/fasten/organization';\n\nexport class SourceListItem {\n brand: LighthouseBrandListDisplayItem\n searchHighlights?: string[]\n}\n\n\n@Component({\n // standalone: true,\n selector: 'fasten-stitch',\n templateUrl: './fasten-stitch.component.html',\n styleUrls: ['./fasten-stitch.component.css'],\n // SEE https://stackoverflow.com/questions/67115155/angular-web-component-how-to-embed-css-file-into-the-final-js-file\n // using view encapsulation to namespace CSS.\n encapsulation: ViewEncapsulation.None //default is ViewEncapsulation.Emulated\n})\nexport class FastenStitchComponent implements OnInit, AfterViewInit {\n @Input('public-id') publicId = ''; //validate\n @Input('reconnect-org-connection-id') reconnectOrgConnectionId: string | null = null;\n @Output('orgConnectionCallback') orgConnectionCallback = new EventEmitter()\n\n public errorMessage: string\n\n @ViewChild('stitchModalButton', { static: false }) public stitchModalButton: ElementRef;\n @ViewChild('stitchModal', { static: false }) public stitchModal: ElementRef;\n\n // private flowbitStitchModal: Modal = null\n constructor(\n private host: ElementRef,\n private configService: ConfigService,\n private vaultService: VaultService,\n public messageBus: MessageBusService,\n ) {\n\n //https://stackoverflow.com/a/69173549/1157633\n this.host.nativeElement.show = this.showStitchModalExt.bind(this);\n this.host.nativeElement.hide = this.hideStitchModalExt.bind(this);\n }\n\n ngAfterViewInit() {\n // this.flowbitStitchModal = new Modal(this.stitchModal.nativeElement, {\n // onHide: () => {\n // this.messageBus.reset()\n // },\n // });\n }\n\n ngOnInit(): void {\n let publicIdParts = this.publicId.split('_')\n let apiMode = ApiMode.Test\n if(publicIdParts.length == 3 && publicIdParts[1] == ApiMode.Live) {\n apiMode = ApiMode.Live\n }\n if(publicIdParts.length != 3){\n console.error(\"Could not register Fasten Connect installation: missing or invalid id\", this.publicId)\n this.errorMessage = 'Could not register Fasten Connect installation: missing or invalid id. Please contact the developer of this app.'\n return\n }\n console.log(this.publicId, publicIdParts, apiMode)\n //update the system config\n this.configService.systemConfig = {\n apiMode: apiMode,\n publicId: this.publicId,\n reconnectOrgConnectionId: this.reconnectOrgConnectionId,\n }\n\n\n this.vaultService.getOrgByPublicId(this.publicId).subscribe((org: Organization) => {\n console.log(\"Fasten Connect registration\", org)\n this.configService.systemConfig = {\n org: org\n }\n },(err) => {\n this.errorMessage = 'Could not register Fasten Connect installation using id. Please contact the developer of this app.'\n console.log(\"Invalid Fasten Connect registration\", err)\n })\n\n this.messageBus.orgConnectionCallbackSubject.subscribe((orgConnectionCallbackData) => {\n console.log(\"bubbling up event\", orgConnectionCallbackData)\n this.orgConnectionCallback.emit(orgConnectionCallbackData)\n })\n }\n\n showStitchModal(): void {\n\n if(this.reconnectOrgConnectionId){\n //TODO: not supported yet\n // const childSpan: HTMLElement = document.createElement('span');\n // childSpan.innerHTML = 'Reconnecting...';\n // (this.stitchModalButton.nativeElement as HTMLButtonElement).replaceChildren(childSpan); // Component needs to be added here\n //\n // this.connectApi.getOrgConnectionById(this.publicId, this.reconnectOrgConnectionId).subscribe((orgConnection) => {\n // console.log(\"Reconnect Org Connection\", orgConnection)\n //\n // ConnectHelper(this.connectApi, this.messageBus, {\n // catalog_brand_id: orgConnection.catalog_brand_id,\n // catalog_endpoint_id: orgConnection.catalog_endpoint_id,\n // catalog_portal_id: orgConnection.catalog_portal_id,\n // connect_mode: this.connectMode,\n // external_id: this.externalId,\n // external_state: this.externalState,\n // org_connection_id: orgConnection.org_connection_id,\n // public_id: this.publicId\n // })\n //\n // }, (err) => {\n // this.errorMessage = 'Could not find the patient connection using id. Please contact the developer of this app.'\n // console.log(\"Invalid Fasten Connect Connection ID\", err)\n // this.stitchModal.nativeElement.show()\n // })\n } else {\n this.stitchModal.nativeElement.showModal()\n this.registerDialogCloseOnBackdropClick()\n }\n\n }\n\n // TODO: this is required because when using the showStitchModal() method, the Search component is not being rendered correctly\n // this function can be called externally to show the modal\n showStitchModalExt(): void {\n this.stitchModal.nativeElement.showModal()\n this.registerDialogCloseOnBackdropClick()\n }\n\n hideStitchModalExt(): void {\n this.stitchModal.nativeElement.close()\n }\n\n registerDialogCloseOnBackdropClick() {\n this.stitchModal.nativeElement.addEventListener('click', (event) => {\n var rect = this.stitchModal.nativeElement.getBoundingClientRect();\n var isInDialog = (rect.top <= event.clientY && event.clientY <= rect.top + rect.height &&\n rect.left <= event.clientX && event.clientX <= rect.left + rect.width);\n if (!isInDialog) {\n this.stitchModal.nativeElement.close();\n }\n });\n }\n}\n","\n\n\n\n\n
\n \n You are using Fasten in test mode\n
\n
\n \n
\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n\n\n\n
\n
\n
\n \n \n \n\n Error\n

Configuration Error

\n
\n
\n {{errorMessage}}\n
\n
\n\n \n
\n
\n
\n
\n","export class VaultProfile {\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","export class FormHealthSystemRequest {\n name: string = \"\"\n email: string = \"\"\n website: string = \"\"\n street_address: string = \"\"\n}\n","\nexport class FormSupportRequest {\n healthsystem_name: string\n email: string\n request_content: string\n\n org_id: string\n org_name: string\n version: string\n arch: string\n os: string\n}\n","\nexport class SearchFilter {\n //primary search terms (changes here should restart the search completely)\n query: string = \"\"\n\n //secondary search terms/facets (changes here should restart pagination)\n platformTypes: string[] = [];\n categories: string[] = [];\n showHidden: boolean = false;\n\n //pagination - this is the current page (changes here should be ignored)\n searchAfter: string | string[] = '';\n\n fields: string[] = []; //specify the fields to return. if null or empty list, return all.\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 {VaultProfile} from './fasten/vaultProfile';\nimport {SearchFilter} from './search-filter';\nimport {\n LighthouseBrandListDisplayItem,\n LighthouseEndpointListDisplayItem,\n LighthousePortalListDisplayItem\n} from './lighthouse/lighthouse-source-search';\nimport {RecordLocatorFacility} from './fasten/record-locator-facility';\n\nexport interface VaultSystemConfig {\n publicId: string;\n apiMode: ApiMode;\n org?: Organization;\n org_id?: string\n reconnectOrgConnectionId?: string;\n}\n\nexport class VaultProfileConfig {\n vaultProfile?: VaultProfile;\n\n // connected patient accounts\n connectedPatientAccounts?: RecordLocatorFacility[];\n\n // pending patient accounts?\n pendingPatientAccounts?: { brand: LighthouseBrandListDisplayItem, portal: LighthousePortalListDisplayItem, endpoint: LighthouseEndpointListDisplayItem }[];\n addPendingAccount(brand: LighthouseBrandListDisplayItem, portal: LighthousePortalListDisplayItem, endpoint: LighthouseEndpointListDisplayItem): void {\n if (!this.pendingPatientAccounts) {\n this.pendingPatientAccounts = []\n }\n this.pendingPatientAccounts?.push({brand, portal, endpoint})\n }\n addConnectedAccount(recordLocatorFacility: RecordLocatorFacility): void {\n if (!this.connectedPatientAccounts) {\n this.connectedPatientAccounts = []\n }\n this.connectedPatientAccounts?.push(recordLocatorFacility)\n }\n}\n\n\nexport interface VaultSearchConfig {\n searchFilter?: SearchFilter\n selectedBrand?: LighthouseBrandListDisplayItem\n}\n\n// - apiMode\n// - organization information\n// - org credential information\n// - reconnect id.\n\n/**\n * Default configuration for the entire application. This object is used by\n * \"PortalConfigService\" to set the default configuration.\n */\nexport const vaultConfigDefaults: VaultSystemConfig = {\n publicId: '',\n apiMode: ApiMode.Test\n};\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-complete',\n templateUrl: './complete.component.html',\n styleUrls: ['./complete.component.scss']\n})\nexport class CompleteComponent implements OnInit, NavOutletPage {\n\n constructor(\n public changeRef: ChangeDetectorRef,\n ) { }\n\n ngOnInit(): void {\n }\n\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n}\n","\n
\n
\n

fasten

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

Success!

\n

\n Your health records have been successfully linked with Acme Labs.\n You can now close this window.\n

\n
\n\n \n
\n\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {VaultService} from '../../services/vault.service';\nimport {ConfigService} from '../../services/config.service';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss']\n})\nexport class DashboardComponent implements OnInit, NavOutletPage {\n\n\n constructor(\n public changeRef: ChangeDetectorRef,\n private vaultService: VaultService,\n public configService: ConfigService,\n ) { }\n\n ngOnInit(): void {\n this.vaultService.getRecordLocatorFacilities().subscribe((facilities)=>{\n console.log(\"record locator facilities\", facilities)\n for (let facility of facilities) {\n this.configService.vaultProfileAddConnectedAccount(facility)\n }\n })\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n}\n","
\n
\n

fasten

\n
\n\n
\n

Select Health Systems

\n

\n Choose the health systems you'd like to connect\n

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

{{connectedAccount.display_name}}

\n

Ready to connect

\n
\n \n
\n
\n \n \n \n \n \n
\n \"{{pendingAccount.brand?.name}}\"\n

{{pendingAccount.portal.name}}

\n

Sign in required

\n
\n \n Sign in\n \n
\n
\n\n \n \n\n
\n
\n \n Your medical records are secure\n
\n \n
\n
\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {VaultService} from '../../services/vault.service';\nimport {ConfigService} from '../../services/config.service';\nimport {FormHealthSystemRequest} from '../../models/forms/form-health-system-request';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../../app.routing';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-form-health-system-request',\n templateUrl: './form-health-system-request.component.html',\n styleUrls: ['./form-health-system-request.component.scss']\n})\nexport class FormHealthSystemRequestComponent implements OnInit, NavOutletPage {\n formRequestHealthSystem: FormHealthSystemRequest = {} as FormHealthSystemRequest\n\n loading: boolean = false\n submitSuccess: boolean = false\n errorMsg: string = \"\"\n\n constructor(\n public changeRef: ChangeDetectorRef,\n private navOutletService: NavOutletService,\n private configService: ConfigService,\n private vaultApi: VaultService,\n ) { }\n\n ngOnInit(): void {\n this.resetForm()\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n resetForm() {\n this.submitSuccess = false\n let requestForm = new FormHealthSystemRequest()\n requestForm.email = ''\n requestForm.name = this.configService.searchConfig$.searchFilter?.query || \"\"\n requestForm.street_address = ''\n requestForm.website = ''\n\n this.formRequestHealthSystem = requestForm\n }\n\n submitForm() {\n this.loading = true\n this.vaultApi.requestHealthSystem(this.formRequestHealthSystem).subscribe((resp: any) => {\n this.loading = false\n this.submitSuccess = true\n //show success toast? close modal?\n },\n (err)=>{\n this.loading = false\n console.error(\"an error occurred during request submission\",err)\n this.errorMsg = err || \"An error occurred while submitting your request. Please try again later.\"\n })\n }\n\n dismiss(){\n // this.messageBus.componentNavigationSubject.next({\n // page: ComponentNavPage.Search,\n // } as ComponentNavigationEvent)\n\n this.navOutletService.navigateByUrl(ComponentNavPage.Dashboard)\n }\n}\n","\n
\n
\n \n

fasten

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

Request your Health System

\n

\n Sharing your email address and related information helps us prioritize your Health System.\n

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

\n \n Email is required.\n \n \n Email must be valid.\n \n

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

\n \n Health system name is required.\n \n \n Health system name must be at least 4 characters long.\n \n

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

\n \n Website is required.\n \n \n Website must be at least 4 characters long.\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 Thanks for providing information about your Health System. Your request has been recorded and we will notify you once your Health System is supported.\n
\n \n
\n\n
\n
\n\n
\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {FormHealthSystemRequest} from '../../models/forms/form-health-system-request';\nimport {Router} from '@angular/router';\nimport {ConfigService} from '../../services/config.service';\nimport {VaultService} from '../../services/vault.service';\nimport {FormSupportRequest} from '../../models/forms/form-support-request';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../../app.routing';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-form-support-request',\n templateUrl: './form-support-request.component.html',\n styleUrls: ['./form-support-request.component.scss']\n})\nexport class FormSupportRequestComponent implements OnInit, NavOutletPage {\n formSupportRequest: FormSupportRequest = {} as FormSupportRequest\n\n loading: boolean = false\n submitSuccess: boolean = false\n errorMsg: string = \"\"\n\n constructor(\n public changeRef: ChangeDetectorRef,\n private navOutletService: NavOutletService,\n private configService: ConfigService,\n private vaultApi: VaultService,\n ) { }\n\n ngOnInit(): void {\n this.resetForm()\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n resetForm() {\n this.submitSuccess = false\n let requestForm = new FormSupportRequest()\n requestForm.email = ''\n requestForm.healthsystem_name = this.configService.searchConfig$.searchFilter?.query || \"\"\n requestForm.request_content = ''\n\n this.formSupportRequest = requestForm\n }\n\n submitForm() {\n this.loading = true\n this.vaultApi.requestSupport(this.formSupportRequest).subscribe((resp: any) => {\n this.loading = false\n this.submitSuccess = true\n //show success toast? close modal?\n },\n (err)=>{\n this.loading = false\n console.error(\"an error occurred during issue submission\",err)\n this.errorMsg = err || \"An error occurred while submitting your issue. Please try again later.\"\n })\n }\n\n dismiss(){\n // this.messageBus.componentNavigationSubject.next({\n // page: ComponentNavPage.Search,\n // } as ComponentNavigationEvent)\n\n this.navOutletService.navigateByUrl(ComponentNavPage.Dashboard)\n }\n\n}\n","\n
\n
\n \n

fasten

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

Report an issue

\n

\n Sharing your email address and related information helps us prioritize your issue.\n

\n
\n\n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n\n \n
\n
\n\n\n\n\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n Thanks for providing information about your issue. Your request has been recorded and we will notify you once we have an update.\n
\n \n
\n\n
\n
\n\n
\n","import {ChangeDetectorRef, Component, Input, OnInit} from '@angular/core';\nimport {\n LighthouseBrandListDisplayItem, LighthouseEndpointListDisplayItem,\n LighthousePortalListDisplayItem\n} from '../../models/lighthouse/lighthouse-source-search';\nimport {ConfigService} from '../../services/config.service';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../../app.routing';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-health-system-brand-details',\n templateUrl: './health-system-brand-details.component.html',\n styleUrls: ['./health-system-brand-details.component.scss']\n})\nexport class HealthSystemBrandDetailsComponent implements OnInit, NavOutletPage {\n\n @Input() brand!: LighthouseBrandListDisplayItem;\n\n constructor(\n public changeRef: ChangeDetectorRef,\n public configService: ConfigService,\n public navOutletService: NavOutletService\n ) {\n this.brand = configService.searchConfig$.selectedBrand!\n }\n\n ngOnInit(): void {\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n addPendingAccount(brand: LighthouseBrandListDisplayItem, portal: LighthousePortalListDisplayItem, endpoint: LighthouseEndpointListDisplayItem){\n console.log(\"addPendingAccount\")\n this.configService.vaultProfileAddPendingAccount(brand, portal, endpoint)\n this.navOutletService.navigateByUrl(ComponentNavPage.Dashboard)\n }\n}\n","\n
\n
\n \n

fasten

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

{{brand.name}}

\n
\n
\n\n

\n\n
\n
\n \n \n \n \n \n {{brand.brand_website}}\n
\n
\n \n \n \n \n {{brand.locations}}\n
\n
\n
\n\n \n
\n \n
\n
\n

{{portal.name}}

\n \n
\n
\n
\n
\n
\n
\n\n","import {ChangeDetectorRef, Component, Input, OnInit} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ConnectHelper} from '../../utils/connect-helper';\nimport {VaultService} from '../../services/vault.service';\nimport {ConfigService} from '../../services/config.service';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-health-system-connecting',\n templateUrl: './health-system-connecting.component.html',\n styleUrls: ['./health-system-connecting.component.scss']\n})\nexport class HealthSystemConnectingComponent implements OnInit, NavOutletPage {\n @Input() brandId: string = \"\";\n @Input() portalId: string = \"\";\n @Input() endpointId: string = \"\";\n\n\n constructor(\n public changeRef: ChangeDetectorRef,\n private route: ActivatedRoute,\n private vaultService: VaultService,\n private configService: ConfigService,\n private navOutletService: NavOutletService,\n ){\n this.route.params.subscribe((params) => {\n this.brandId = params['brandId'];\n this.portalId = params['portalId'];\n this.endpointId = params['endpointId'];\n });\n\n }\n\n ngOnInit(): void {\n\n ConnectHelper(this.vaultService, this.navOutletService, {\n public_id: this.configService.systemConfig$.publicId,\n catalog_brand_id: this.brandId,\n catalog_portal_id: this.portalId,\n catalog_endpoint_id: this.endpointId,\n // org_connection_id: this.reconnectOrgConnectionId,\n // external_id: this.externalId,\n // external_state: this.externalState,\n // connect_mode: this.connectMode,\n })\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n}\n","\n
\n
\n \n

fasten

\n
\n
\n
\n\n\n
\n
\n \"\"\n
\n
\n\n
\n

\n

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

Redirecting to sign in...

\n
\n
\n
\n
\n\n
\n","import {ChangeDetectorRef, Component, Input, OnInit} from '@angular/core';\nimport {SourceListItem} from '../../models/source-list-item';\nimport {\n LighthouseBrandListDisplayItem,\n LighthouseSourceSearch,\n LighthouseSourceSearchAggregation\n} from '../../models/lighthouse/lighthouse-source-search';\nimport {Observable, of} from 'rxjs';\nimport {SearchFilter} from '../../models/search-filter';\nimport {VaultService} from '../../services/vault.service';\nimport {ConfigService} from '../../services/config.service';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../../app.routing';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-health-system-search',\n templateUrl: './health-system-search.component.html',\n styleUrls: ['./health-system-search.component.scss']\n})\nexport class HealthSystemSearchComponent implements OnInit, NavOutletPage {\n loading = false;\n lighthouseBrandList: SourceListItem[] = []\n\n filter: SearchFilter = new SearchFilter()\n\n //limits that are tied to the current result set.\n resultLimits: {\n totalItems: number,\n scrollComplete: boolean,\n platformTypesBuckets: LighthouseSourceSearchAggregation | undefined,\n categoryBuckets: LighthouseSourceSearchAggregation | undefined,\n } = {\n totalItems: 0,\n scrollComplete: false,\n platformTypesBuckets: undefined,\n categoryBuckets: undefined\n }\n\n constructor(\n public changeRef: ChangeDetectorRef,\n public vaultServiceApi: VaultService,\n public configService: ConfigService,\n public navOutletService: NavOutletService\n ) { }\n\n ngOnInit(): void {\n this.querySources(true)\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n public querySources(reset: boolean): Observable {\n if(reset){\n this.resetSearch()\n }\n\n console.log(\"querySources()\", this.filter)\n if(this.loading){\n console.log(\"already loading, ignoring querySources()\")\n return of(null)\n }\n //TODO: pass filter to function.\n // this.location.replaceState('/dashboard','', this.filter)\n\n if(!this.filter){\n this.filter = new SearchFilter()\n console.log(\"querySources() - no filter provided, using current form value\", this.filter)\n }\n\n\n this.filter.fields = [\"*\"];\n this.loading = true\n var searchObservable = this.vaultServiceApi.searchCatalogBrands(this.configService.systemConfig$.apiMode!, this.filter);\n searchObservable.subscribe(wrapper => {\n console.log(\"search sources\", wrapper);\n // this.searchResults = wrapper.hits.hits;\n this.resultLimits.totalItems = wrapper?.hits?.total.value || 0;\n\n this.lighthouseBrandList = this.lighthouseBrandList.concat((wrapper?.hits?.hits || []).map((result) => {\n return {\n brand: result._source,\n searchHighlights: result?.highlight?.aliases || []\n }\n }))\n\n //check if scroll is complete.\n if(!wrapper?.hits || !wrapper?.hits?.hits || wrapper?.hits?.hits?.length == 0 || wrapper?.hits?.total?.value == wrapper?.hits?.hits?.length){\n console.log(\"SCROLL_COMPLETE!@@@@@@@@\")\n this.resultLimits.scrollComplete = true;\n } else {\n //change the current Page (but don't cause a new query)\n console.log(\"SETTING NEXT SORT KEY:\", wrapper.hits.hits[wrapper.hits.hits.length - 1].sort.join(','))\n this.filter.searchAfter = wrapper.hits.hits[wrapper.hits.hits.length - 1].sort.join(\",\")\n }\n this.loading = false\n },\n error => {\n this.loading = false\n console.error(\"sources FAILED\", error)\n },\n () => {\n this.loading = false\n console.log(\"sources finished\")\n }\n );\n return searchObservable;\n }\n\n onScroll() {\n if(!this.resultLimits.scrollComplete) {\n this.querySources(false)\n }\n }\n\n private resetSearch(){\n console.log(\"reset search...\")\n this.lighthouseBrandList = []\n this.filter.searchAfter = []\n this.resultLimits = {\n totalItems: 0,\n scrollComplete: false,\n platformTypesBuckets: undefined,\n categoryBuckets: undefined\n }\n }\n\n public selectBrand(brandItem?: LighthouseBrandListDisplayItem){\n\n this.configService.searchConfig$.selectedBrand = brandItem\n this.navOutletService.navigateByUrl(ComponentNavPage.HealthSystemBrandDetails)\n // this.messageBus.componentNavigationSubject.next({\n // page: ComponentNavPage.PortalConnect,\n // title: brandItem.name,\n // data: brandItem,\n // } as ComponentNavigationEvent)\n }\n}\n","\n
\n
\n \n

fasten

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

Filters

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

No results found

\n

We couldn't find any health systems matching your search.

\n \n
\n\n
\n\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {VaultService} from '../../services/vault.service';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../../app.routing';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-identity-verification',\n templateUrl: './identity-verification.component.html',\n styleUrls: ['./identity-verification.component.scss']\n})\nexport class IdentityVerificationComponent implements OnInit, NavOutletPage {\n loading = false;\n\n constructor(\n public changeRef: ChangeDetectorRef,\n private vaultService: VaultService,\n private navOutletService: NavOutletService,\n ) { }\n\n ngOnInit(): void {\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n verifyIdentity(){\n this.loading = true\n this.vaultService.verificationWithPopup().subscribe((result)=>{\n this.loading = false\n console.log(\"verification result\", result)\n this.navOutletService.navigateByUrl(ComponentNavPage.Dashboard)\n }, (err)=>{\n this.loading = false\n console.error(\"verification error\", err)\n })\n }\n}\n","\n
\n
\n

fasten

\n
\n\n
\n

\n Verify your identity
just once\n

\n

\n Your leaving Acme Labs to verify your identity with our partner, Clear.\n This one-time step will bring you right back after your ID has been verified.\n

\n
\n\n\n
\n \n
\n
\n\n","import {ChangeDetectorRef, Component, Input, OnInit} from '@angular/core';\nimport {AuthService} from '../../services/auth.service';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../../app.routing';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\n\n@Component({\n selector: 'app-vault-profile-signin-code',\n templateUrl: './vault-profile-signin-code.component.html',\n styleUrls: ['./vault-profile-signin-code.component.scss']\n})\nexport class VaultProfileSigninCodeComponent implements OnInit, NavOutletPage {\n loading: boolean = false\n errorMsg: string = \"\"\n\n @Input() currentEmail = \"test@example.com\"\n\n constructor(\n public changeRef: ChangeDetectorRef,\n private navOutletService: NavOutletService,\n private authService: AuthService,\n ) {}\n\n ngOnInit(): void {\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n onCodeCompleted(code: string){\n this.loading = true\n\n console.log(\"submit finish\", this.currentEmail, code)\n this.authService.VaultAuthFinish(this.currentEmail, code)\n .then(() => {\n this.loading = false\n this.navOutletService.navigateByUrl(ComponentNavPage.Dashboard)\n })\n .catch((err)=>{\n this.loading = false\n if(err?.name){\n this.errorMsg = \"code is incorrect\"\n } else{\n this.errorMsg = \"an unknown error occurred during sign-in\"\n }\n // const toastNotification = new ToastNotification()\n // toastNotification.type = ToastType.Error\n // toastNotification.message = this.errorMsg\n // this.toastService.show(toastNotification)\n })\n }\n\n}\n","\n
\n
\n

fasten

\n
\n\n
\n

\n Enter authentication code
from your email\n

\n

\n A code was sent to {{currentEmail}}\n

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

\n\n
\n Code expires in\n 4:59\n
\n\n
\n \n \n
\n
\n\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {VaultProfile} from '../../models/fasten/vaultProfile';\nimport {AuthService} from '../../services/auth.service';\nimport {NavOutletService} from '../../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../../app.routing';\nimport {NavOutletPage} from '../../models/nav-outlet-page';\nimport {ConfigService} from '../../services/config.service';\n\n@Component({\n selector: 'app-auth-signin',\n templateUrl: './vault-profile-signin.component.html',\n styleUrls: ['./vault-profile-signin.component.scss']\n})\nexport class VaultProfileSigninComponent implements OnInit, NavOutletPage {\n loading: boolean = false\n showMessage: boolean = false\n\n submitted: boolean = false\n existingVaultProfile: VaultProfile = new VaultProfile()\n errorMsg: string = \"\"\n message: string = \"\"\n\n constructor(\n public changeRef: ChangeDetectorRef,\n public configService: ConfigService,\n private authService: AuthService,\n private navOutletService: NavOutletService,\n ) { }\n\n ngOnInit(): void {\n const urlParams = new URLSearchParams(window.location.search);\n this.setMessage(urlParams.get('action') || \"\")\n }\n markForCheck(){\n this.changeRef.markForCheck()\n }\n\n signinSubmit(){\n this.submitted = true;\n this.loading = true\n\n console.log(\"Signin\", this.existingVaultProfile.email)\n this.authService.VaultAuthBegin(this.existingVaultProfile.email!)\n .then(() => {\n this.loading = false\n this.navOutletService.navigateByUrl( ComponentNavPage.VaultProfileSigninCode, new Map([[\"currentEmail\", this.existingVaultProfile.email]]))\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 setMessage(action: string) {\n if (action === \"email-changed\"){\n this.showMessage = true;\n this.message = \"Email successfully changed! Please sign in with your new email.\";\n } else if (action === \"password-changed\"){\n this.showMessage = true;\n this.message = \"Password successfully changed! Please sign in with your new password.\";\n }\n }\n}\n","\n
\n
\n

fasten

\n
\n\n
\n
\n \n \n \n \n \n
\n\n
\n
\n
\n
\n
\n\n \"Fasten'\" />\n
\n\n
\n

Connect Your Health Records

\n

\n {{(configService.systemConfigSubject | async).org?.name || 'Unknown'}} uses Fasten to securely link your health systems\n

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

Safe

\n

\n Securely connect your medical records with bank-level encryption\n

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

Private

\n

\n We never sell your personal info and only use it with your\n permission\n

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

\n \n Email is required.\n \n \n Email must be at least 4 characters long.\n \n \n Email must be a valid email address.\n \n \n Error {{errorMsg}}\n \n

\n\n

\n By clicking continue you agree to Fasten's\n Privacy Policy\n and {{(configService.systemConfigSubject | async).org?.name || 'Unknown'}}'s\n Privacy Policy\n

\n\n \n\n
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 { Pipe, PipeTransform } from '@angular/core';\nimport {DomSanitizer} from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHtml'\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer:DomSanitizer){}\n\n transform(value: any, args?: any): any {\n return this.sanitizer.bypassSecurityTrustHtml(value);\n // return this.sanitizer.bypassSecurityTrustStyle(style);\n // return this.sanitizer.bypassSecurityTrustXxx(style); - see docs\n }\n\n}\n","import {Directive, ElementRef, HostListener, Input, ViewContainerRef} from '@angular/core';\nimport {NavOutletService} from './nav-outlet.service';\n\n@Directive({\n selector: '[navOutletLink]'\n})\nexport class NavOutletLinkDirective {\n\n constructor(\n private eleRef: ElementRef,\n public navOutletService: NavOutletService\n ) {}\n\n @Input() navOutletLink: string = \"\"\n\n @HostListener('click') onClick(){\n this.navOutletService.navigateByUrl(this.navOutletLink)\n }\n}\n","import {Component, OnChanges, OnInit, SimpleChanges, ViewChild} from '@angular/core';\nimport {NavOutletDirective, } from './nav-outlet.directive';\nimport {ComponentNavPage, Routes, NavOutletRoute} from '../../app.routing';\nimport {NavOutletService} from './nav-outlet.service';\n\n@Component({\n selector: 'app-nav-outlet',\n templateUrl: './nav-outlet.component.html',\n styleUrls: ['./nav-outlet.component.css']\n})\nexport class NavOutletComponent implements OnInit, OnChanges {\n //location to dynamically load the resource list\n @ViewChild(NavOutletDirective, {static: true}) navOutlet!: NavOutletDirective;\n\n constructor(private navOutletService: NavOutletService) { }\n\n ngOnInit(): void {\n console.log(\"NavOutletComponent ngOnInit\")\n this.loadComponent()\n\n this.navOutletService.componentNavigationSubject.subscribe((componentNavEvent) => {\n console.log(\"page navigation event detected in NavOutletComponent: \", componentNavEvent)\n this.loadComponent(componentNavEvent)\n })\n }\n ngOnChanges(changes: SimpleChanges) {\n this.loadComponent()\n }\n\n // WARNING: errors in this method will cause silent failures and limited error messages for some reason.\n // it will also cause the ngOnInit subscribe functions to be ignored (subscription will be broken for all future calls)\n loadComponent(pageRoute?: NavOutletRoute) {\n try{\n //clear the current outlet\n const viewContainerRef = this.navOutlet.viewContainerRef;\n viewContainerRef.clear();\n\n if(pageRoute == null){\n //find the default route\n for(let route of Routes){\n if(route.page == ComponentNavPage.Default){\n pageRoute = route\n break\n }\n }\n if(pageRoute == null){\n //throw if the default page not found\n throw new Error(\"default page not found\")\n }\n }\n\n const componentRef = viewContainerRef.createComponent(pageRoute.component);\n if(pageRoute.inputs != null){\n for(let [key, value] of pageRoute.inputs) {\n componentRef.instance[key] = value\n }\n }\n componentRef.instance.markForCheck()\n } catch (e) {\n console.error(\"NavOutletComponent loadComponent error\", e)\n }\n\n }\n}\n","\n","import {Directive, ViewContainerRef} from '@angular/core';\n\n@Directive({\n selector: '[navOutletDirective]'\n})\nexport class NavOutletDirective {\n\n constructor(public viewContainerRef: ViewContainerRef) { }\n\n}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\nimport {NavOutletRoute, Routes} from '../../app.routing';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavOutletService {\n // this subject is populated when the \"page\" is changed\n public componentNavigationSubject = new BehaviorSubject(null)\n\n constructor() {}\n\n\n reset(){\n this.componentNavigationSubject.next(null)\n }\n\n navigateByUrl(nextPage: string, payload?: Map) {\n //remove the \"/\" prefix if present\n nextPage = nextPage.trim()\n if(nextPage.startsWith(\"/\")){\n nextPage = nextPage.substring(1)\n }\n\n\n console.log('navigating to page: ', nextPage)\n\n //find the component Route by nextPage\n let foundRoute: NavOutletRoute = null;\n for(let route of Routes) {\n if(route.page == nextPage){\n route.inputs = new Map()\n //add the payload data to the route\n //TODO: should we do a deep clone before?\n if(payload != null && payload.size > 0){\n route.inputs = payload\n }\n foundRoute = route\n console.log(\"found route info: \", nextPage)\n break;\n }\n }\n if(foundRoute == null){\n console.error(\"unknown page, could not route to: \", nextPage)\n throw new Error(\"unknown page, could not route to: \" + nextPage)\n }\n\n //check if we can \"activate\" the new page\n if(foundRoute.canActivate != null){\n foundRoute.canActivate.canActivate(foundRoute)\n .then((cont) => {\n if(!cont){\n return\n }\n this.componentNavigationSubject.next(foundRoute)\n })\n .catch(console.error)\n } else {\n this.componentNavigationSubject.next(foundRoute)\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';\nimport {NavOutletService} from '../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../app.routing';\n\n// based on https://stackoverflow.com/questions/46017245/how-to-handle-unauthorized-requestsstatus-with-401-or-403-with-new-httpclient\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthInterceptorService implements HttpInterceptor {\n\n constructor(private authService: AuthService, private navOutletService: NavOutletService) { }\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.navOutletService.navigateByUrl(ComponentNavPage.VaultProfileSignin);\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 {VaultProfile} from '../models/fasten/vaultProfile';\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 {ConfigService} from './config.service';\n\nexport const FASTEN_AUTH_VAULT_COOKIE_NAME = 'fasten_connect_auth_vault'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n\n public IsAuthenticatedSubject = new BehaviorSubject(false)\n\n constructor(private _httpClient: HttpClient, private configService: ConfigService) {}\n\n\n\n\n public async VaultAuthBegin(email: string): Promise {\n let resp = await this._httpClient.post(`${environment.connect_api_endpoint_base}/bridge/vault_auth_begin`, {\n \"email\": email,\n }, { withCredentials: true, params: {\"public_id\": this.configService.systemConfig$.publicId} }).toPromise()\n return resp\n }\n\n public async VaultAuthFinish(email: string, code: string): Promise {\n let resp = await this._httpClient.post(`${environment.connect_api_endpoint_base}/bridge/vault_auth_finish`, {\n \"email\": email,\n \"code\": code\n }, { withCredentials: true, params: {\"public_id\": this.configService.systemConfig$.publicId} }).toPromise()\n return resp\n }\n\n public async Signout(): Promise {\n this.publishAuthenticationState(false)\n return this.deleteCookie(FASTEN_AUTH_VAULT_COOKIE_NAME)\n // // let remotePouchDb = new PouchDB(this.getRemoteUserDb(localStorage.getItem(\"current_user\")), {skip_setup: true});\n // if(this.pouchDb){\n // await this.pouchDb.logOut()\n // }\n // await this.Close()\n }\n\n\n public async GetJWTPayload(): Promise {\n let authToken = this.getCookie(FASTEN_AUTH_VAULT_COOKIE_NAME)\n if (!authToken) {\n return null\n }\n let jwks = jose.createRemoteJWKSet(new URL(environment.jwks_uri))\n let issuerHost = environment.connect_api_jwt_issuer_host\n\n try {\n //audience and issuer must be the same. This token is only valid on the fasten connect api\n const {payload, protectedHeader} = await jose.jwtVerify(authToken, jwks, {\n issuer: issuerHost,\n audience: issuerHost,\n })\n // @ts-ignore\n this.vaultConfigService.systemConfig = {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, '', -99999); // - 1 was not far back enough to actually remove the cookie, this sets the time before the epoch and will cause the cookie to be deleted.\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 {BehaviorSubject} from 'rxjs';\nimport {VaultSystemConfig, vaultConfigDefaults, VaultSearchConfig, VaultProfileConfig} from '../models/vault-config';\nimport {merge} from 'lodash';\nimport {ApiMode} from '../app.constants';\nimport {VaultProfile} from '../models/fasten/vaultProfile';\nimport {Organization} from '../models/fasten/organization';\nimport {VaultService} from './vault.service';\nimport {\n LighthouseBrandListDisplayItem, LighthouseEndpointListDisplayItem,\n LighthousePortalListDisplayItem\n} from '../models/lighthouse/lighthouse-source-search';\nimport {RecordLocatorFacility} from '../models/fasten/record-locator-facility';\nimport {NavOutletRoute} from '../app.routing';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService {\n //TODO: there should be 3 types of \"config\" settings:\n // 1. Service settings\n // - apiMode\n // - organization information\n // - org credential information\n // - reconnect id.\n // 2. User settings\n // - user token/cookie data\n // - vault profile\n // - current connected patient auth's\n // - (FUTURE) potential patient auths?\n // 3. Search settings\n // - search filters\n // - selected brand\n // -\n\n //public but should only be used in HTML directly. (via `| async`)\n public systemConfigSubject: BehaviorSubject;\n public vaultProfileConfigSubject: BehaviorSubject;\n public searchConfigSubject: BehaviorSubject;\n\n\n private _defaultSystemConfig: VaultSystemConfig;\n\n constructor() {\n this._defaultSystemConfig = vaultConfigDefaults\n this.systemConfigSubject = new BehaviorSubject(this._defaultSystemConfig);\n this.vaultProfileConfigSubject = new BehaviorSubject(Object.setPrototypeOf({}, VaultProfileConfig.prototype));\n this.searchConfigSubject = new BehaviorSubject({} as VaultSearchConfig);\n\n }\n\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Setter & getter for config\n */\n\n //Setter\n set systemConfig(value: Partial) {\n // get the current config, merge the new values, and then submit.\n const mergedSettings = merge({}, this.systemConfigSubject.getValue(), value);\n\n // Store the value\n if(JSON.stringify(mergedSettings) !== JSON.stringify(this.systemConfigSubject.getValue())){\n console.log('updating system settings:', mergedSettings)\n this.systemConfigSubject.next(mergedSettings);\n }\n }\n\n //Getter\n get systemConfig$(): VaultSystemConfig {\n console.log('getting cached system settings:', this.systemConfigSubject.getValue())\n return this.systemConfigSubject.getValue()\n }\n\n //Setter\n set vaultProfileConfig(value: Partial) {\n // get the current config, merge the new values, and then submit.\n const mergedSettings = merge({}, this.vaultProfileConfigSubject.getValue(), value);\n\n // Store the value\n if(JSON.stringify(mergedSettings) !== JSON.stringify(this.vaultProfileConfigSubject.getValue())){\n console.log('updating vault profile settings:', mergedSettings)\n this.vaultProfileConfigSubject.next(Object.setPrototypeOf(mergedSettings, VaultProfileConfig.prototype));\n }\n }\n //Getter\n get vaultProfileConfig$(): VaultProfileConfig {\n console.log('getting vault profile settings:', this.vaultProfileConfigSubject.getValue())\n return this.vaultProfileConfigSubject.getValue()\n }\n vaultProfileAddPendingAccount(brand: LighthouseBrandListDisplayItem, portal: LighthousePortalListDisplayItem, endpoint: LighthouseEndpointListDisplayItem){\n let updatedVaultProfile = this.vaultProfileConfig$\n updatedVaultProfile.addPendingAccount(brand, portal, endpoint)\n this.vaultProfileConfig = updatedVaultProfile\n }\n vaultProfileAddConnectedAccount(recordLocatorFacility: RecordLocatorFacility){\n let updatedVaultProfile = this.vaultProfileConfig$\n updatedVaultProfile.addConnectedAccount(recordLocatorFacility)\n this.vaultProfileConfig = updatedVaultProfile\n }\n\n //Setter\n set searchConfig(value: Partial) {\n // get the current config, merge the new values, and then submit.\n const mergedSettings = merge({}, this.searchConfigSubject.getValue(), value);\n\n // Store the value\n if(JSON.stringify(mergedSettings) !== JSON.stringify(this.searchConfigSubject.getValue())){\n console.log('updating search settings:', mergedSettings)\n this.searchConfigSubject.next(mergedSettings);\n }\n }\n //Getter\n get searchConfig$(): VaultSearchConfig {\n console.log('getting search settings:', this.searchConfigSubject.getValue())\n return this.searchConfigSubject.getValue()\n }\n}\n","import { Injectable } from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\nimport {OrganizationConnectionCallbackEvent} from '../models/organization-connection-callback-event';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageBusService {\n\n //this subject is populated when in popup mode, and a Portal/Endpoint has been selected.\n // A separate window will be opened, and credentials & metadata from that connection will be passed to this callback fn.\n // SEE: https://docs.connect.fastenhealth.com/stitch/webcomponent for example data structure.\n // {\n // \"org_connection_id\": \"1234-1234-1234-1234-1234\",\n // \"endpoint_id\": \"1234-1234-1234-1234-1234\"\n // }\n public orgConnectionCallbackSubject = new BehaviorSubject(null)\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 { ApiMode } from '../app.constants';\nimport { OrganizationCredential } from '../models/fasten/organization-credential';\nimport { VaultProfile } from \"../models/fasten/vaultProfile\";\nimport {catchError, concatMap, filter, first, fromEvent, map, Observable, of, throwError, timeout} from 'rxjs';\nimport { DeviceDetectorService } from 'ngx-device-detector';\nimport {SearchFilter} from '../models/search-filter';\nimport {LighthouseSourceSearch} from '../models/lighthouse/lighthouse-source-search';\nimport {FormHealthSystemRequest} from '../models/forms/form-health-system-request';\nimport {FormSupportRequest} from '../models/forms/form-support-request';\nimport {RecordLocatorFacility} from '../models/fasten/record-locator-facility';\nimport {OrganizationConnectionCallbackEvent} from '../models/organization-connection-callback-event';\nimport {ConfigService} from './config.service';\nimport {VaultSystemConfig} from '../models/vault-config';\n\nexport const ConnectWindowTimeout = 2*60*1000 //wait 2 minutes (in milliseconds)\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VaultService {\n\n constructor(\n private _httpClient: HttpClient,\n private deviceService: DeviceDetectorService,\n public configService: ConfigService,\n ) {\n\n //always watch for changes to the vault\n this.configService.systemConfigSubject.subscribe((systemConfig: VaultSystemConfig) => {\n console.log(\"System configuration changed:\", systemConfig, this.configService.systemConfig$)\n if(systemConfig.org_id && !systemConfig.org){\n console.log(\"attempt to download org information, and store in config\")\n this.getOrg(systemConfig.org_id).subscribe((org: Organization )=>{\n console.log(\"org:\", org)\n this.configService.systemConfig = {org: org}\n })\n }\n });\n }\n\n\n //This function must be \".subscribed()\" to work. If not, the handler will not be registered and messages will be ignored.\n private waitForOrgConnectionOrTimeout(openedWindow: Window): Observable {\n console.log(`waiting for postMessage notification from popup window`)\n\n //new code to listen to post message\n return fromEvent(window, 'message')\n .pipe(\n //throw an error if we wait more than 2 minutes (this will close the window)\n timeout(ConnectWindowTimeout) as any,\n //make sure we're only listening to events from the \"opened\" window.\n filter((event: MessageEvent) => event.source == openedWindow),\n //after filtering, we should only have one event to handle.\n first(),\n map((event: any) => {\n console.log(`received postMessage notification from popup window & sending acknowledgment`)\n // @ts-ignore\n event.source.postMessage(JSON.stringify({close:true}), event.origin);\n console.log(\"postmessage data\", event.data)\n return JSON.parse(event.data)\n }),\n catchError((err) => {\n console.warn(`timed out waiting for notification from popup (${ConnectWindowTimeout/1000}s), closing window`)\n openedWindow.self.close()\n return throwError(err)\n })\n )\n }\n\n public getRecordLocatorFacilities(): Observable {\n return this._httpClient.get(`${environment.connect_api_endpoint_base}/bridge/record_locator`,\n {params: {\"public_id\": this.configService.systemConfig$.publicId }})\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Record Locator Response\", response)\n return response.data as RecordLocatorFacility[];\n })\n );\n }\n\n public searchCatalogBrands(apiMode: ApiMode, filter: SearchFilter): Observable {\n if((typeof filter.searchAfter === 'string' || filter.searchAfter instanceof String) && (filter.searchAfter as string).length > 0){\n filter.searchAfter = (filter.searchAfter as string).split(',')\n } else {\n filter.searchAfter = []\n }\n const endpointUrl = new URL(`${environment.connect_api_endpoint_base}/bridge/catalog/search`);\n\n return this._httpClient.post(endpointUrl.toString(), filter, {params: {\n \"public_id\": this.configService.systemConfig$.publicId,\n 'api_mode': apiMode\n }})\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Metadata RESPONSE\", response)\n return response.data as LighthouseSourceSearch\n })\n );\n }\n\n public getOrg(orgId: String): Observable {\n return this._httpClient.get(`${environment.connect_api_endpoint_base}/org/${orgId}`,\n {params: {\n \"public_id\": this.configService.systemConfig$.publicId,\n }})\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization\", response)\n return response.data as Organization;\n })\n );\n }\n\n public getOrgByPublicId(publicId: String): Observable {\n let queryParams = {}\n queryParams['public_id'] = publicId\n\n return this._httpClient.get(\n `${environment.connect_api_endpoint_base}/bridge/org`, {params: queryParams})\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Organization\", response)\n return response.data as Organization;\n })\n );\n }\n\n\n requestHealthSystem(requestHealth: FormHealthSystemRequest): Observable {\n const endpointUrl = new URL(`${environment.connect_api_endpoint_base}/support/healthsystem`);\n\n return this._httpClient.post(endpointUrl.toString(), requestHealth)\n .pipe(\n map((response: ResponseWrapper) => {\n // @ts-ignore\n return {}\n })\n );\n }\n\n requestSupport(request: FormSupportRequest): Observable {\n const endpointUrl = new URL(`${environment.connect_api_endpoint_base}/support/request`);\n\n return this._httpClient.post(endpointUrl.toString(), request)\n .pipe(\n map((response: ResponseWrapper) => {\n // @ts-ignore\n return {}\n })\n );\n }\n\n\n // public verificationWithPopup(publicId: string, brandId: string, portalId: string, endpointId: string, reconnectOrgConnectionId?: string, connectMode?: ConnectMode, externalId?: string, externalState?: string): Observable {\n public verificationWithPopup(): Observable {\n //todo, this should use a bridge/connect or vault endpoint\n\n const redirectUrl = new URL(`${environment.connect_api_endpoint_base}/bridge/identity_verification/connect`);\n redirectUrl.searchParams.set(\"public_id\", this.configService.systemConfig$.publicId);\n\n const isDesktop = this.deviceService.isDesktop();\n let features = \"\"\n if(isDesktop){\n //add optons for window.open, popup only for desktop (mobile and table will open a new tab)\n features = \"popup=true,width=700,height=600\"\n }\n\n //open a external url in a new window\n let openedWindow = window.open(redirectUrl.toString(), \"_blank\", features);\n\n return this.waitForOrgConnectionOrTimeout(openedWindow!)\n }\n\n public accountConnectWithPopup(brandId: string, portalId: string, endpointId: string, reconnectOrgConnectionId?: string, externalId?: string, externalState?: string): Observable {\n const redirectUrlParts = new URL(`${environment.connect_api_endpoint_base}/bridge/connect`);\n const redirectParams = new URLSearchParams()\n redirectParams.set(\"public_id\", this.configService.systemConfig$.publicId)\n redirectParams.set(\"brand_id\", brandId)\n redirectParams.set(\"portal_id\", portalId)\n redirectParams.set(\"endpoint_id\", endpointId)\n redirectParams.set(\"connect_mode\", \"popup\")\n if (reconnectOrgConnectionId) {\n redirectParams.set(\"reconnect_org_connection_id\", reconnectOrgConnectionId)\n }\n if (externalId) {\n redirectParams.set(\"external_id\", externalId)\n }\n if (externalState) {\n redirectParams.set(\"external_state\", externalState)\n }\n\n redirectUrlParts.search = redirectParams.toString()\n console.log(redirectUrlParts.toString());\n\n\n const isDesktop = this.deviceService.isDesktop();\n let features = \"\"\n if(isDesktop){\n //add optons for window.open, popup only for desktop (mobile and table will open a new tab)\n features = \"popup=true,width=700,height=600\"\n }\n\n //We're always in popup mode, we can open a new window, rather than redirecting the current window (which is an app frame)\n //open a external url in a new window\n let openedWindow = window.open(redirectUrlParts.toString(), \"_blank\", features);\n return this.waitForOrgConnectionOrTimeout(openedWindow!)\n }\n\n\n //OLD code\n\n\n public updateUser(oldPass: string, oldEmail: string, newEmail: string, newPass: string = \"\"): Observable {\n const userUpdateJson = JSON.stringify({\n email: oldEmail,\n password: oldPass,\n newEmail: newEmail,\n newPassword: newPass\n });\n return this._httpClient.put(`${environment.connect_api_endpoint_base}/user`, userUpdateJson)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Updated User\", response)\n\n return response.data as VaultProfile;\n })\n );\n }\n\n /**\n * Create a new organization and associate it with the current User\n * @param newOrg\n * @param logoBlob\n * @constructor\n */\n public createOrg(newOrg: Organization, logoBlob: Blob): Observable {\n const formData = new FormData();\n\n //add the org data to the form data\n const orgJson = JSON.stringify(newOrg);\n const orgJsonBlob = new Blob([orgJson], {\n type: 'application/json'\n });\n formData.append(\"org\", orgJsonBlob);\n formData.append(\"logo\", logoBlob);\n\n let resp = this._httpClient.post(`${environment.connect_api_endpoint_base}/org`, formData)\n console.log(resp)\n return resp\n }\n\n\n public updateOrg(orgId: string, updateOrg: Organization, logoBlob?: Blob | null): Observable {\n const formData = new FormData();\n\n //add the org data to the form data\n const orgJson = JSON.stringify(updateOrg);\n const orgJsonBlob = new Blob([orgJson], {\n type: 'application/json'\n });\n formData.append(\"org\", orgJsonBlob);\n if (logoBlob) {\n formData.append(\"logo\", logoBlob);\n }\n return this._httpClient.put(`${environment.connect_api_endpoint_base}/org/${orgId}`, formData)\n .pipe(\n map((response: ResponseWrapper) => {\n console.log(\"Updated Organization\", response)\n return response.data as Organization;\n })\n );\n }\n\n public sendOrgInvite(orgId: string, recipientEmail: string): Observable {\n return this._httpClient.post(`${environment.connect_api_endpoint_base}/org/${orgId}/invite`, {\n recipient_email_address: recipientEmail,\n org_id: orgId\n })\n }\n\n // public createOrgCredentials(orgId: string, apiMode: ApiMode, redirectUrl: string, note: 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 // note: note\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\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\n\n\n\n\n\n\n}\n","import {Observable} from 'rxjs';\nimport {VaultService} from '../services/vault.service';\nimport {Router} from '@angular/router';\nimport {NavOutletService} from '../router/nav-outlet/nav-outlet.service';\nimport {ComponentNavPage} from '../app.routing';\n\nexport interface ConnectData {\n public_id: string;\n catalog_brand_id: string;\n catalog_portal_id: string;\n catalog_endpoint_id: string;\n\n\n //only populated when reconnect_org_connection is present\n org_connection_id?: string;\n external_id?: string\n external_state?: string\n}\n\nexport function ConnectHelper(vaultApi:VaultService, navOutletService: NavOutletService, connectData: ConnectData): void {\n vaultApi.accountConnectWithPopup(connectData.catalog_brand_id, connectData.catalog_portal_id, connectData.catalog_endpoint_id, connectData.org_connection_id, connectData.external_id, connectData.external_state).subscribe((orgConnectionCallbackData) => {\n console.log(orgConnectionCallbackData)\n\n if(!orgConnectionCallbackData){\n return //wait for redirect\n }\n\n //Note: this code will only run when this.connectMode == popup\n //when connectMode == 'redirect', the user is redirected in the same window, and this code is never executed.\n\n // messageBus.orgConnectionCallbackSubject.next(orgConnectionCallbackData)\n\n // //redirect the browser back to the search page (TODO: this should show the support request page if an error occurred)\n // messageBus.componentNavigationSubject.next({\n // page: ComponentNavPage.Search,\n // } as ComponentNavigationEvent)\n navOutletService.navigateByUrl(ComponentNavPage.Dashboard);\n })\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport 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 //use to specify the host that issued the JWT. This is used to verify the JWT.\n //This should always be the same as the connect_api_endpoint_base, however in local mode it will be different because of angular proxy\n // connect_api_jwt_issuer_host: 'http://localhost:8000',\n\n //JWKS for JWT verification\n // jwks_uri: 'https://cdn.fastenhealth.com/jwks/fasten-connect/local.json',\n\n\n //when using local proxy to api.connect-dev.fastenhealth.com, uncomment the following lines:\n jwks_uri: 'https://cdn.fastenhealth.com/jwks/fasten-connect/dev.json',\n connect_api_jwt_issuer_host: 'https://api.connect-dev.fastenhealth.com/v1',\n\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\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 == \"production\") {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"names":["ChangeDetectorRef","i0","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","connectedAccount_r2","display_name","ɵɵtextInterpolate","ɵɵnamespaceSVG","ɵɵnamespaceHTML","ɵɵpropertyInterpolate1","pendingAccount_r3","brand","id","ɵɵsanitizeUrl","ɵɵpropertyInterpolate","name","portal","endpoint","DashboardComponent","constructor","changeRef","vaultService","configService","ngOnInit","getRecordLocatorFacilities","subscribe","facilities","console","log","facility","vaultProfileAddConnectedAccount","markForCheck","ɵɵdirectiveInject","i1","VaultService","i2","ConfigService","selectors","decls","vars","consts","template","DashboardComponent_Template","rf","ctx","ɵɵtemplate","DashboardComponent_div_10_Template","DashboardComponent_div_12_Template","tmp_0_0","ɵɵpipeBind1","vaultProfileConfigSubject","connectedPatientAccounts","ɵɵpureFunction0","_c0","tmp_1_0","pendingPatientAccounts","VaultProfile","ComponentNavPage","ɵɵtextInterpolate1","ctx_r7","errorMsg","VaultProfileSigninComponent_p_47_span_1_Template","VaultProfileSigninComponent_p_47_span_2_Template","VaultProfileSigninComponent_p_47_span_3_Template","VaultProfileSigninComponent_p_47_span_4_Template","_r1","errors","ctx_r2","VaultProfileSigninComponent","authService","navOutletService","loading","showMessage","submitted","existingVaultProfile","message","urlParams","URLSearchParams","window","location","search","setMessage","get","signinSubmit","email","VaultAuthBegin","then","navigateByUrl","VaultProfileSigninCode","Map","catch","err","action","AuthService","i3","NavOutletService","VaultProfileSigninComponent_Template","ɵɵlistener","VaultProfileSigninComponent_Template_form_ngSubmit_41_listener","VaultProfileSigninComponent_Template_input_ngModelChange_45_listener","$event","VaultProfileSigninComponent_p_47_Template","VaultProfileSigninComponent_app_spinner_58_Template","systemConfigSubject","org","invalid","dirty","touched","privacy_policy_uri","_r0","form","valid","environment","BehaviorSubject","jose","FASTEN_AUTH_VAULT_COOKIE_NAME","_httpClient","IsAuthenticatedSubject","_this","_asyncToGenerator","resp","post","connect_api_endpoint_base","withCredentials","params","systemConfig$","publicId","toPromise","VaultAuthFinish","code","_this2","Signout","_this3","publishAuthenticationState","deleteCookie","GetJWTPayload","_this4","authToken","getCookie","jwks","createRemoteJWKSet","URL","jwks_uri","issuerHost","connect_api_jwt_issuer_host","payload","protectedHeader","jwtVerify","issuer","audience","vaultConfigService","systemConfig","user","e","error","IsAuthenticated","_this5","isAuthenticated","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","ɵɵinject","HttpClient","factory","ɵfac","providedIn"],"sourceRoot":"webpack:///","x_google_ignoreList":[]} \ No newline at end of file diff --git a/connect/dev-vault-development/styles.css b/connect/dev-vault-development/styles.css index 2200732a..5f86f49d 100644 --- a/connect/dev-vault-development/styles.css +++ b/connect/dev-vault-development/styles.css @@ -1015,12 +1015,10 @@ video { .delay-300 { transition-delay: 300ms; } -dialog::backdrop { - background: rgba(255, 0, 0, 0.25); -} -.backdrop\:bg-gray-50::backdrop { - --tw-bg-opacity: 1; - background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)); +.backdrop\:backdrop-blur::backdrop { + --tw-backdrop-blur: blur(8px); + -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); } .hover\:border-\[\#5B47FB\]:hover { --tw-border-opacity: 1; @@ -1173,4 +1171,5 @@ dialog::backdrop { } + /*# sourceMappingURL=styles.css.map*/ \ No newline at end of file diff --git a/connect/dev-vault-development/styles.css.map b/connect/dev-vault-development/styles.css.map index fb8f0247..5a64b1ec 100644 --- a/connect/dev-vault-development/styles.css.map +++ b/connect/dev-vault-development/styles.css.map @@ -1 +1 @@ -{"version":3,"file":"styles.css","mappings":"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","sources":["./src/styles.css"],"sourcesContent":["/* You can add global styles to this file, and also import other style files */\n@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\ndialog::backdrop {\n background: rgba(255, 0, 0, 0.25);\n}\n"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[]} \ No newline at end of file +{"version":3,"file":"styles.css","mappings":"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","sources":["./src/styles.css"],"sourcesContent":["/* You can add global styles to this file, and also import other style files */\n@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[]} \ No newline at end of file