\r\n\r\n\r\n","export const hardCodedContent = {\r\n \"Loading\": {\r\n \"en\": \"Loading, Please Wait...\",\r\n \"es419\": \"Cargando por favor espere...\"\r\n },\r\n \"Yes\": {\r\n \"en\": \"Yes\",\r\n \"es419\": \"Sí\"\r\n },\r\n \"No\": {\r\n \"en\": \"No\",\r\n \"es419\": \"No\"\r\n },\r\n \"PagerPageText\": {\r\n \"en\": \"Page\",\r\n \"es419\": \"Página\"\r\n },\r\n \"PagerPageOfText\": {\r\n \"en\": \"of\",\r\n \"es419\": \"de\"\r\n },\r\n \"GridNoRecord\": {\r\n \"en\": \"No records to display.\",\r\n \"es419\": \"No hay registros que mostrar.\"\r\n },\r\n \"FirstName\": {\r\n \"en\": \"First Name\",\r\n \"es419\": \"Nombre de pila\"\r\n },\r\n \"LastName\": {\r\n \"en\": \"Last Name\",\r\n \"es419\": \"Apellido\"\r\n },\r\n \"FormBuilderUploadFormElementFileTypesSupport\": {\r\n \"en\": \"Only image files are supported jpg, jpeg, and png\",\r\n \"es419\": \"Solo se admiten archivos de imagen jpg, jpeg y png\"\r\n },\r\n \"SignatureError\": {\r\n \"en\": \"Enter name as shown above.\",\r\n \"es419\": \"Ingrese el nombre como se muestra arriba.\"\r\n },\r\n \"EmailError\": {\r\n \"en\": \"The emails don’t match. Please enter the same email address in both fields.\",\r\n \"es419\": \"Los correos electrónicos no coinciden. Introduzca la misma dirección de correo electrónico en ambos campos.\"\r\n },\r\n \"PwFieldNotValid\": {\r\n \"en\": \"The Password field is invalid.\",\r\n \"es419\": \"El campo Contraseña no es válido.\"\r\n },\r\n \"PwFieldDoNotMatch\": {\r\n \"en\": \"Password Values Do Not Match\",\r\n \"es419\": \"Los valores de contraseña no coinciden\"\r\n }\r\n}","import $ from 'jquery';\r\nimport { CmsHttpSvc } from '@SharedHttpServices/cms.httpservice';\r\nimport { hardCodedContent } from './mlt.content';\r\n\r\n//need to pull in the other json once we figure this all out with the cms. We can't pull in a million json files because the size will be huge. Might need to load the file you need or something like that\r\n//or just make an ajax call with a list of key's to pull in\r\n\r\n//needed because we can't have early stage content for some scenarios\r\n\r\n\r\n//es-419 or en\r\nexport function ResolveStaticContent(contentId) {\r\n const transformedLanguage = CurrentLanguage() == \"en\" ? \"en\" : \"es419\";\r\n\r\n return hardCodedContent[contentId][transformedLanguage];\r\n}\r\n\r\nexport function CurrentLanguage() {\r\n return $('body').attr('data-user-selected-language');\r\n}\r\n\r\nclass Localization {\r\n\r\n constructor() {\r\n this.language = CurrentLanguage();\r\n this.init();\r\n }\r\n\r\n init() {\r\n //using init so we can mock this in jest.\r\n\r\n const sessionValidationMessages = JSON.parse(sessionStorage.getItem('VALIDATION_MESSAGES'));\r\n\r\n if (sessionValidationMessages == null || sessionValidationMessages.languageCode !== this.language) {\r\n\r\n CmsHttpSvc.CmsSharedValidationContentBlocks(false)\r\n .done(rawValidationMessages => {\r\n\r\n const validationMessages = {\r\n languageCode: this.language,\r\n content: rawValidationMessages\r\n };\r\n\r\n sessionStorage.setItem('VALIDATION_MESSAGES', JSON.stringify(validationMessages));\r\n this.lookup = validationMessages;\r\n });\r\n }\r\n else {\r\n this.lookup = sessionValidationMessages;\r\n }\r\n }\r\n\r\n resolveKeyword(key) {\r\n return this.lookup.content[key];\r\n }\r\n}\r\n\r\nexport const localizationSvc = new Localization();\r\n\r\n//usage\r\n//import { localizationSvc } from '../../@SharedServices/localization.service';\r\n\r\n//let translation = localizationSvc.resolveKeyword('Account Settings');\r\n\r\n\r\n","\r\n \r\n \r\n\r\n\r\n\r\n","\r\n
\r\n
\r\n \r\n
\r\n
{{tileHeader}}
\r\n
{{tilebod}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
{{tileHeader}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Are you sure ?\r\n
\r\n
\r\n
\r\n
\r\n \r\n You will lose your unsaved changes if you leave this page now.\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n","//import formattingDirective from '@SharedVueComponents/formatting/formattingdirective';\r\n//then in your template {{ myproperty.cretedDate | formatToLongDate }}\r\n\r\nimport Vue from 'vue';\r\nimport * as formatMethods from '@SharedServices/formatting.service';\r\n\r\nVue.filter('formatDateTimeToDate', formatMethods.formatDateTimeToDate);\r\nVue.filter('formatToLongDate', formatMethods.formatToLongDate);\r\nVue.filter('formatToLongDateWithNoDaySuffix', formatMethods.formatToLongDateWithNoDaySuffix);\r\nVue.filter('formatToMediumShortDate', formatMethods.formatToMediumShortDate);\r\nVue.filter('formatToMediumShortDateWithComma', formatMethods.formatToMediumShortDateWithComma);\r\nVue.filter('formatToShortDate', formatMethods.formatToShortDate);\r\nVue.filter('formatToLongDateWithYear', formatMethods.formatToLongDateWithYear);\r\nVue.filter('formatToLongDateLocalTimeWithNoYear', formatMethods.formatToLongDateLocalTimeWithNoYear);\r\nVue.filter('formatTime', formatMethods.formatTime);\r\nVue.filter('formatTimeAddEST', formatMethods.formatTimeAddEST);\r\nVue.filter('formatToShortDateWithComma', formatMethods.formatToShortDateWithComma);\r\nVue.filter('formatTimeWithOutAmPm', formatMethods.formatTimeWithOutAmPm);\r\nVue.filter('formatTimeWithJustAmPm', formatMethods.formatTimeWithJustAmPm);\r\nVue.filter('formatUsPhoneNumberWithAreaCode', formatMethods.formatUsPhoneNumberWithAreaCode);\r\nVue.filter('toYesNo', formatMethods.ToYesNo);\r\nVue.filter('toNumberWithCommas', formatMethods.formatNumberWithCommas);\r\nVue.filter('toNumberTo2Decimals', formatMethods.formatNumberTo2Decimals);\r\nVue.filter('formatToMonthAbbr', formatMethods.formatToMonthAbbr);\r\nVue.filter('formatToDayNumber', formatMethods.formatToDayNumber);\r\nVue.filter('formatToDayOfWeekAbbr', formatMethods.formatToDayOfWeekAbbr);\r\nVue.filter('formatToYearNumber', formatMethods.formatToYearNumber);\r\nVue.filter('formatNumberToUsMoney', formatMethods.formatNumberToUsMoney);\r\nVue.filter('formatDateTimeSecToDate', formatMethods.formatDateTimeSecToDate);\r\nVue.filter('formatDateTimeSecToDateAsIs', formatMethods.formatDateTimeSecToDateAsIs);\r\nVue.filter('formatBytes', formatMethods.formatBytes);\r\nVue.filter('bytesToSize', formatMethods.bytesToSize);\r\nVue.filter('currency', function (value) {\r\n if (isNaN(value)) {\r\n value = 0;\r\n }\r\n return '$' + parseFloat(value).toFixed(2);\r\n});","import Vue from 'vue';\r\n\r\n//displays the red and turns it back to blue on errors\r\nVue.directive('error-message', {\r\n bind: function (el, binding, vnode) {\r\n\r\n //bind the error model so we can watch for errors coming in or going out\r\n vnode.context.$watch(binding.value.errorModel, runValidation);\r\n\r\n function runValidation(newValue, oldValue) {\r\n\r\n if (newValue && newValue.length > 0) {\r\n\r\n //don't want to re-add the same class then we would have 2 is-invalid's on the same object\r\n if (el.className.indexOf('is-invalid') === -1) {\r\n el.className = el.className + ' is-invalid';\r\n }\r\n }\r\n else {\r\n clearError(el);\r\n }\r\n }\r\n\r\n function clearError(element) {\r\n\r\n //remove the error array from the model\r\n deleteErrorFromModel(vnode.context, binding.value.errorModel, vnode.context);\r\n\r\n element.className = element.className.replace('is-invalid', '');\r\n }\r\n\r\n function deleteErrorFromModel(data, errorModel, vNodeContext) {\r\n let split = errorModel.split('.');\r\n let tmpObject = data;\r\n\r\n for (i = 0; i < split.length - 1; i++) {\r\n tmpObject = tmpObject[split[i]];\r\n }\r\n \r\n vNodeContext.$delete(tmpObject, split[split.length - 1]);\r\n }\r\n\r\n //allow you to clear the error on a different v-model...so additional parameters\r\n //v-error-message=\"{ errorModel: 'errorModel.q' + model.questionId, clearErrorOnChangeModel: ['firstName'] }\"\r\n if (binding.value.clearErrorOnChangeModel) {\r\n\r\n for (var i = 0; i < binding.value.clearErrorOnChangeModel.length; i++) {\r\n vnode.context.$watch(binding.value.clearErrorOnChangeModel[i], function (newValue, oldValue) {\r\n clearError(el);\r\n });\r\n }\r\n }\r\n\r\n let model = vnode.data.directives.filter(x => x.name === 'model')[0];\r\n\r\n if (!model) {\r\n model = vnode.data.model;\r\n }\r\n\r\n if (model) {\r\n\r\n //watch the model so we can auto hide the error divs\r\n vnode.context.$watch(model.expression, function (newValue, oldValue) {\r\n\r\n //compare nulls is fine\r\n if (newValue != oldValue) {\r\n clearError(el);\r\n }\r\n });\r\n }\r\n },\r\n});\r\n\r\nVue.filter('firstError', function GetFirstValidationError(value) {\r\n if (!value) {\r\n return ''\r\n }\r\n \r\n if (typeof value === 'string') return value;\r\n\r\n return value[0];\r\n});\r\n\r\nVue.filter('capitalizeFirstLetter', function GetFirstValidationError(value) {\r\n if (!value) {\r\n return ''\r\n }\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n});","import $ from 'jquery';\r\n\r\n//add the antiforgery token to every request\r\n$.ajaxSetup({\r\n beforeSend: function (xhr) {\r\n var tabcookie = getCookie(window.proxyxrf);\r\n if (!tabcookie) {\r\n tabcookie = \"notfound\"\r\n }\r\n var tabxsrf = $('#tab-xsrf').val();\r\n if (!tabxsrf) {\r\n tabxsrf = \"notfound\"\r\n }\r\n //only validate when both cookie and tabxsrf are found or else let it go.\r\n if (tabxsrf !== tabcookie) {\r\n window.location = \"/RedirectBroker\"\r\n return false;\r\n }\r\n xhr.setRequestHeader(\"RequestVerificationToken\", $('#Token').val());\r\n }\r\n});\r\n\r\n//override the jquery post so we can adjust what we need for pure ajax calls. We don't plan on using www forms encoding right now.\r\n$.post = function (url, data, headersToSet) {\r\n return jQuery.ajax({\r\n type: 'POST',\r\n url: _root + url,\r\n headers: headersToSet,\r\n contentType: \"application/json\",\r\n dataType: 'json',\r\n data: JSON.stringify(data)\r\n });\r\n};\r\n\r\n$.get = function (url, headersToSet, asyncCall) {\r\n return jQuery.ajax({\r\n type: 'GET',\r\n cache: false,\r\n headers: headersToSet,\r\n url: _root + url,\r\n contentType: \"application/json\",\r\n dataType: 'json',\r\n async: asyncCall == null ? true : false\r\n });\r\n};\r\n\r\n//url = string\r\n//externalUrl = boolean. If this is an external web site pass in true. This means the url is an absolute url\r\n$.delete = function (url, externalUrl) {\r\n\r\n let urlToSend = null;\r\n\r\n if (externalUrl == null || !externalUrl) {\r\n urlToSend = _root + url;\r\n }\r\n else {\r\n urlToSend = url;\r\n }\r\n\r\n return jQuery.ajax({\r\n type: 'DELETE',\r\n url: urlToSend,\r\n contentType: \"application/json\",\r\n dataType: 'json'\r\n });\r\n};\r\n\r\n$.fileUpload = function (url, parametersToSet, headers, progressCallBack) {\r\n\r\n //this is if you go straight to upload service. I don't think this is secure enough. I want to filter through the controller method even though we take on more memory\r\n var parameters = {\r\n url: url,\r\n method: \"POST\",\r\n data: parametersToSet,\r\n processData: false,\r\n contentType: false,\r\n beforeSend: function (xhr) {\r\n\r\n if (headers) {\r\n for (var i = 0; i < headers.length; i++) {\r\n let item = headers[i];\r\n\r\n xhr.setRequestHeader(item.key, item.value);\r\n }\r\n }\r\n }\r\n };\r\n\r\n //var parameters = {\r\n // url: _root + 'api/Message/UploadTempFile?attachmentGroupId=' + attachmentGroupId,\r\n // method: \"POST\",\r\n // data: parametersToSet,\r\n // processData: false,\r\n // contentType: false,\r\n // error: function (err) {\r\n // errorHandler(err);\r\n // }\r\n //};\r\n\r\n if (progressCallBack != null) {\r\n parameters.xhr = function () {\r\n var myXhr = $.ajaxSettings.xhr();\r\n if (myXhr.upload) { // check if upload property exists\r\n\r\n myXhr.upload.addEventListener('progress', progressCallBack, false); // for handling the progress of the upload\r\n }\r\n return myXhr;\r\n };\r\n }\r\n\r\n return $.ajax(parameters);\r\n}\r\n\r\n$.getHtml = function (url) {\r\n return jQuery.ajax(\r\n {\r\n url: _root + url,\r\n dataType: \"html\"\r\n });\r\n}\r\n\r\nfunction getCookie(name) {\r\n // Split cookie string and get all individual name=value pairs in an array\r\n var cookieArr = document.cookie.split(\";\");\r\n\r\n // Loop through the array elements\r\n for (var i = 0; i < cookieArr.length; i++) {\r\n var cookiePair = cookieArr[i].split(\"=\");\r\n\r\n /* Removing whitespace at the beginning of the cookie name\r\n and compare it with the given string */\r\n if (name == cookiePair[0].trim()) {\r\n // Decode the cookie value and return\r\n return decodeURIComponent(cookiePair[1]);\r\n }\r\n }\r\n\r\n // Return null if not found\r\n return null;\r\n}","(function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.VueTheMask=t():e.VueTheMask=t()})(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\".\",t(t.s=10)}([function(e,t){e.exports={\"#\":{pattern:/\\d/},X:{pattern:/[0-9a-zA-Z]/},S:{pattern:/[a-zA-Z]/},A:{pattern:/[a-zA-Z]/,transform:function(e){return e.toLocaleUpperCase()}},a:{pattern:/[a-zA-Z]/,transform:function(e){return e.toLocaleLowerCase()}},\"!\":{escape:!0}}},function(e,t,n){\"use strict\";function r(e){var t=document.createEvent(\"Event\");return t.initEvent(e,!0,!0),t}var a=n(2),o=n(0),i=n.n(o);t.a=function(e,t){var o=t.value;if((Array.isArray(o)||\"string\"==typeof o)&&(o={mask:o,tokens:i.a}),\"INPUT\"!==e.tagName.toLocaleUpperCase()){var u=e.getElementsByTagName(\"input\");if(1!==u.length)throw new Error(\"v-mask directive requires 1 input, found \"+u.length);e=u[0]}e.oninput=function(t){if(t.isTrusted){var i=e.selectionEnd,u=e.value[i-1];for(e.value=n.i(a.a)(e.value,o.mask,!0,o.tokens);i2&&void 0!==arguments[2])||arguments[2],i=arguments[3];return Array.isArray(t)?n.i(a.a)(r.a,t,i)(e,t,o,i):n.i(r.a)(e,t,o,i)}},function(e,t,n){\"use strict\";function r(e){e.component(s.a.name,s.a),e.directive(\"mask\",i.a)}Object.defineProperty(t,\"__esModule\",{value:!0});var a=n(0),o=n.n(a),i=n(1),u=n(7),s=n.n(u);n.d(t,\"TheMask\",function(){return s.a}),n.d(t,\"mask\",function(){return i.a}),n.d(t,\"tokens\",function(){return o.a}),n.d(t,\"version\",function(){return c});var c=\"0.11.1\";t.default=r,\"undefined\"!=typeof window&&window.Vue&&window.Vue.use(r)},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(1),a=n(0),o=n.n(a),i=n(2);t.default={name:\"TheMask\",props:{value:[String,Number],mask:{type:[String,Array],required:!0},masked:{type:Boolean,default:!1},tokens:{type:Object,default:function(){return o.a}}},directives:{mask:r.a},data:function(){return{lastValue:null,display:this.value}},watch:{value:function(e){e!==this.lastValue&&(this.display=e)},masked:function(){this.refresh(this.display)}},computed:{config:function(){return{mask:this.mask,tokens:this.tokens,masked:this.masked}}},methods:{onInput:function(e){e.isTrusted||this.refresh(e.target.value)},refresh:function(e){this.display=e;var e=n.i(i.a)(e,this.mask,this.masked,this.tokens);e!==this.lastValue&&(this.lastValue=e,this.$emit(\"input\",e))}}}},function(e,t,n){\"use strict\";function r(e,t,n){return t=t.sort(function(e,t){return e.length-t.length}),function(r,a){for(var o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=0;iu.length))return e(r,u,o,n)}return\"\"}}t.a=r},function(e,t,n){\"use strict\";function r(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=arguments[3];e=e||\"\",t=t||\"\";for(var a=0,o=0,i=\"\";a ({...utils, useUtc})\r\n\r\nexport default {\r\n ...utils\r\n}\r\n// eslint-disable-next-line\r\n;\r\n","\r\n
\r\n\r\n\r\n","import { render, staticRenderFns } from \"./msk.modal.vue?vue&type=template&id=0a4c39d2&\"\nimport script from \"./msk.modal.vue?vue&type=script&lang=js&\"\nexport * from \"./msk.modal.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import Vue from 'vue'\r\nexport default new Vue()\r\n\r\n//import EventBus from './message.event.bus';\r\n\r\n//controller side\r\n//mounted: function () {\r\n// EventBus.$on('SubScreenDoneButtonPushed', () => {\r\n// this.mode = 'Entry';\r\n// });\r\n//},\r\n//destroyed: function () {\r\n// EventBus.$off('SubScreenDoneButtonPushed');\r\n//},\r\n\r\n//Caller side:\r\n\r\n//emit SubScreenDoneButtonPushed \r\n\r\n//EventBus.$emit('goToTemplate', 'templateIdToSelect');\r\n\r\n//calls:\r\n//('goToTemplate', 'templateId') - to set the message screen to a specific template\r\n//('SubScreenDoneButtonPushed') - when the sub screen (when you into appointment request mobile view - it takes over the screen)\r\n//('ClearError', 'propertyNameToClear') - component will call directory to the root to clear any errors for the given property\r\n//('IsUploading', 'isuploading (true / false') - upload component will directly call the bus to say if we are uploading or not\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col text-portal-soft-black\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.introductionBlock)}}),_c('a',{staticClass:\"ml-1\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.showLearnMore = !_vm.showLearnMore}}},[_vm._v(_vm._s(_vm.learnMoreBlock))])])]),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showLearnMore),expression:\"showLearnMore\"}],staticClass:\"mt-2 alert alert-dismissible fade show\",staticStyle:{\"background-color\":\"#e0e0e0\"},attrs:{\"role\":\"alert\"}},[_c('div',{staticClass:\"text-portal-soft-black\",domProps:{\"innerHTML\":_vm._s(_vm.showMoreBlock)}}),_vm._v(\" \"),_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"aria-label\":\"Close\"},on:{\"click\":function($event){_vm.showLearnMore = false}}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--2!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./additional.information.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--2!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./additional.information.vue?vue&type=script&lang=js&\"","\r\n
\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../../../../node_modules/babel-loader/lib/index.js??ref--2!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./radiology.exams.copy.template.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../node_modules/babel-loader/lib/index.js??ref--2!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./radiology.exams.copy.template.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./radiology.exams.copy.template.vue?vue&type=template&id=ee16225c&\"\nimport script from \"./radiology.exams.copy.template.vue?vue&type=script&lang=js&\"\nexport * from \"./radiology.exams.copy.template.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import '../../httpservices/core/ajax.httpservice.core';\r\n\r\nclass KbMessageHttpService {\r\n\r\n DashboardMessageInit() {\r\n return $.get('MskKb/Message/KbDashboardMessageInit');\r\n }\r\n\r\n KbMessageListReload() {\r\n return $.get('MskKb/Message/KbMessageListReload');\r\n }\r\n\r\n}\r\n\r\nexport const KbMessageHttpSvc = new KbMessageHttpService();","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row banner-component\",attrs:{\"role\":\"alert\",\"aria-live\":\"assertive\",\"aria-atomic\":\"true\"}},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"banner-text col\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.bannerText)}})])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('i',{staticClass:\"bannner-icon fa-fw fas fa-exclamation-triangle d-inline-block\",attrs:{\"aria-hidden\":\"true\"}})])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--2!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./msk.banner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--2!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./msk.banner.vue?vue&type=script&lang=js&\"","\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n ","import { render, staticRenderFns } from \"./msk.banner.vue?vue&type=template&id=178f1db6&\"\nimport script from \"./msk.banner.vue?vue&type=script&lang=js&\"\nexport * from \"./msk.banner.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import TimeOutService from '@SharedServices/time.out.service';\r\nimport Vue from 'vue';\r\n\r\nconst idleAutoLogOut = new Vue({\r\n el: '#auto-logout-confirmation',\r\n data: {\r\n isSavingData: false,\r\n timeOutService: new TimeOutService()\r\n },\r\n mounted: function () {\r\n if (this.$refs.idleIsOn.value == 'True') {\r\n this.timeOutService.Start();\r\n $(document.body).bind('keydown', this.ResetTimer);\r\n\r\n //this is a scroll issue. If you have compose message open and typing stuff.\r\n //let the idle timeout warning open\r\n //hit continue\r\n //the compose message comes back so you can continue on \r\n //however, the scroll is busted and you can't scroll\r\n $('#auto-logout-confirmation').on('hidden.bs.modal', e => {\r\n\r\n //if there are any open modals after the logout confirmation is closed...then add a modal-open class to the document body\r\n if ($('.modal:visible').length > 0) {\r\n $('body').addClass('modal-open');\r\n }\r\n });\r\n }\r\n },\r\n watch: {\r\n\r\n 'timeOutService.result': {\r\n handler: function (newValue) {\r\n\r\n if (newValue.status == 'UserIsActive') {\r\n $('#auto-logout-confirmation').modal('hide');\r\n }\r\n else if (newValue.status == 'UserIsIdle') {\r\n //always hide other dialogs that could be visible in portal (exclude the actual logout dialog)\r\n // $('.modal:visible').not('#auto-logout-confirmation').modal('hide');\r\n\r\n $('.modal:visible').not('#auto-logout-confirmation').children().addClass(\"timeout\");\r\n //go show the auto logout dialog\r\n $('#auto-logout-confirmation').modal('show');\r\n }\r\n else if (newValue.status == 'LogUserOut') {\r\n this.LogOut(this.$refs.logOutUrl.value);\r\n }\r\n },\r\n deep: true\r\n }\r\n },\r\n computed: {\r\n secondsLeftInAbsolute: function () {\r\n return Math.abs(this.timeOutService.result.secondsUntilLogOut);\r\n },\r\n\r\n configuredInactiveTime: function () {\r\n return Math.abs(this.timeOutService.config.showIdleWarningInSeconds / 60);\r\n },\r\n\r\n showRemainingTimeInDialog: function () {\r\n return this.timeOutService && this.timeOutService.status != 'UserIsActive' && this.timeOutService.result.secondsUntilLogOut > 0;\r\n }\r\n },\r\n methods: {\r\n iAmActive: function () {\r\n\r\n //closing it so they can't hit the submit button multiple times. So we just hide the dialog and fire and forget the call. (Instead of disabling the button)\r\n $('#auto-logout-confirmation').modal('hide');\r\n \r\n $('.modal:visible').not('#auto-logout-confirmation').children().removeClass(\"timeout\");\r\n\r\n this.timeOutService.ResetTimer();\r\n },\r\n LogOut: function (logOutUrl) {\r\n window.location.href = logOutUrl;\r\n },\r\n ResetTimer: function () {\r\n if (this.timeOutService.result.status == 'UserIsActive') {\r\n this.timeOutService.ResetTimer(false);\r\n }\r\n }\r\n }\r\n});\r\n\r\nexport const IdleTimeOut = idleAutoLogOut;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row text-portal-soft-black\"},[_c('div',{staticClass:\"col\",class:_vm.messageTextHeaderStyle},[_vm._v(\"\\n \"+_vm._s(_vm.cmsContentBlocks['messageBodyComponent.MessageTextHeader'])+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"col-auto text-right\",class:{ 'text-danger': _vm.charactersLeft < 0 }},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"toNumberWithCommas\")(_vm.charactersLeft))+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col warning-time-out\"},[_vm._m(0)])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[(_vm.nonEnglish)?_c('banner-component',{attrs:{\"bannerText\":_vm.cmsContentBlocks.messageMustBeInEnglish}}):_vm._e()],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row form-group mt-2\"},[_c('div',{staticClass:\"col\"},[_c('textarea',{directives:[{name:\"error-message\",rawName:\"v-error-message\",value:({ errorModel: 'errorModel.messageBody' }),expression:\"{ errorModel: 'errorModel.messageBody' }\"}],ref:\"messageBodyRef\",staticClass:\"form-control compose-message-body\",staticStyle:{\"background-image\":\"none !important\"},style:(_vm.textAreaStyleObject),attrs:{\"maxlength\":_vm.maxLengthOfTextArea,\"rows\":\"5\",\"placeholder\":_vm.cmsContentBlocks['messageBodyComponent.TextAreaPlaceHolder'],\"aria-label\":\"Message to send\"},on:{\"input\":function($event){return _vm.updateModel()}}}),_vm._v(\" \"),_c('span',{staticClass:\"invalid-feedback is-invalid\"},[_vm._v(_vm._s(_vm._f(\"firstError\")(_vm.errorModel.messageBody)))])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('i',[_vm._v(_vm._s(_vm.cmsContentBlocks['messageBodyComponent.InActivityWarningText']))])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--2!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./message.body.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--2!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./message.body.vue?vue&type=script&lang=js&\"","\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./file.multiple.uploader.vue?vue&type=template&id=f9e83964&\"\nimport script from \"./file.multiple.uploader.vue?vue&type=script&lang=js&\"\nexport * from \"./file.multiple.uploader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./file.multiple.uploader.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[(_vm.pagedAndFilteredData.length > 0)?_c('div',{staticClass:\"row align-items-center my-2 d-print-none\"},[_c('div',{staticClass:\"col-12 mx-auto d-sm-block d-md-none form-group\"},[_c('select2-component',{staticClass:\"form-control-lg\",attrs:{\"allowclear\":false,\"addblankentry\":false,\"options\":_vm.sortByDropDownOptions,\"width\":\"100%\"},model:{value:(_vm.pagingData.sortInformation),callback:function ($$v) {_vm.$set(_vm.pagingData, \"sortInformation\", $$v)},expression:\"pagingData.sortInformation\"}})],1)]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"row align-items-center my-2 d-print-none\"},[_c('div',{staticClass:\"col-12 col mx-my-auto\"},[_c('grid-pager-component',{class:_vm.pagerCssClass,attrs:{\"id\":_vm.topPagerName,\"current-page\":_vm.pagingData.currentPageIndex,\"records-per-page\":_vm.pagingData.howManyRecordsPerPage,\"full-data-set\":_vm.data,\"sort-column\":_vm.pagingData.sortColumn,\"sort-direction\":_vm.pagingData.sortDirection,\"pager-column-css\":_vm.pagerColumnCssClass},on:{\"change\":_vm.onPageChangeFromPager,\"pagerIsVisible\":_vm.pagerIsVisible,\"total-number-of-pages-change\":_vm.totalNumberOfPagesChange},scopedSlots:_vm._u([{key:\"pager-column-before\",fn:function(props){return [_vm._t(\"grid-pager-column-before-top\")]}},{key:\"pager-column-after\",fn:function(props){return [_vm._t(\"grid-pager-column-after-top\")]}}],null,true)})],1)]),_vm._v(\" \"),_vm._t(\"grid-pre-body\"),_vm._v(\" \"),(_vm.pagedAndFilteredData.length > 0)?_c('div',{staticClass:\"row no-gutters w-100 table-header\"},_vm._l((_vm.columns),function(columnConfig){return _c('div',{key:columnConfig.columnId,staticClass:\"col-md\",class:columnConfig.cssClass,attrs:{\"data-ui\":\"grid-header\",\"data-ui-id\":columnConfig.columnId},on:{\"click\":function($event){$event.preventDefault();return _vm.onHeaderSortClick(columnConfig)}}},[(columnConfig.disableSort)?_c('div',{staticClass:\"h6 font-weight-bold d-none d-md-block d-lg-block mskgrid-custom-columnstyle\"},[_vm._v(\"\\n \"+_vm._s(columnConfig.columnText)+\"\\n \")]):_c('a',{attrs:{\"href\":\"#\"}},[_c('div',{staticClass:\"h6 font-weight-bold text-uppercase d-none d-md-block d-lg-block mskgrid-custom-columnstyle\"},[_vm._v(\"\\n \"+_vm._s(columnConfig.columnText)+\"\\n \"),_c('i',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.sortColumn == columnConfig.columnId && _vm.sortDirection =='desc'),expression:\"sortColumn == columnConfig.columnId && sortDirection =='desc'\"}],staticClass:\"fa fa-chevron-down text-portal-primary-blue text-primary c-pointer\",attrs:{\"aria-label\":'Data is sorted by ' + columnConfig.columnText + ' descending',\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('i',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.sortColumn == columnConfig.columnId && _vm.sortDirection =='asc'),expression:\"sortColumn == columnConfig.columnId && sortDirection =='asc'\"}],staticClass:\"fa fa-chevron-up text-portal-primary-blue text-primary c-pointer\",attrs:{\"aria-label\":'Data is sorted by ' + columnConfig.columnText + ' ascending',\"aria-hidden\":\"true\"}})])])])}),0):_vm._e(),_vm._v(\" \"),_c('hr',{staticClass:\"table-header-body-separator\"}),_vm._v(\" \"),_c('div',{staticClass:\"table-body-container rounded\"},[(_vm.pagedAndFilteredData.length == 0)?_c('div',{staticClass:\"row no-gutters w-100 align-items-center\"},[_c('div',{staticClass:\"col-12 col-md-12 text-center\"},[_c('span',{staticClass:\"text-capitalize font-weight-bold\"},[_vm._v(_vm._s(_vm.noRecords))])])]):_vm._l((_vm.pagedAndFilteredData),function(record){return _c('div',[_vm._t(\"grid-body\",null,{\"gridRecord\":record})],2)})],2),_vm._v(\" \"),_c('div',{staticClass:\"row align-items-center my-4 d-print-none\"},[_c('div',{staticClass:\"col mx-my-auto\"},[_c('grid-pager-component',{class:_vm.pagerCssClass,attrs:{\"id\":_vm.bottomPagerName,\"current-page\":_vm.pagingData.currentPageIndex,\"records-per-page\":_vm.pagingData.howManyRecordsPerPage,\"full-data-set\":_vm.data,\"sort-column\":_vm.pagingData.sortColumn,\"sort-direction\":_vm.pagingData.sortDirection,\"pager-column-css\":_vm.pagerColumnCssClass},on:{\"change\":_vm.onPageChangeFromPager},scopedSlots:_vm._u([{key:\"pager-column-before\",fn:function(props){return [_vm._t(\"grid-pager-column-before-bottom\")]}},{key:\"pager-column-after\",fn:function(props){return [_vm._t(\"grid-pager-column-after-bottom\")]}}],null,true)})],1)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--2!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./msk.data.grid.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--2!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./msk.data.grid.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./msk.data.grid.vue?vue&type=template&id=cc3161ba&\"\nimport script from \"./msk.data.grid.vue?vue&type=script&lang=js&\"\nexport * from \"./msk.data.grid.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import moment from 'moment';\r\nimport '../httpservices/core/ajax.httpservice.core';\r\n\r\n//see layout.entry.js to see it used\r\n//ie: new TimeOutService().Start();\r\n//then watch the result property in a watcher so the timer will update\r\n\r\nexport default class TimeOutService {\r\n\r\n constructor() {\r\n this.config = {\r\n\r\n //how many minutes until you show the idle dialog?\r\n showIdleWarningInSeconds: $('#IdleTimeoutWarningInSeconds').val(),\r\n\r\n //how many minutes until you log a user out\r\n logUserOutInSeconds: $('#IdleTimeoutLogoutInSeconds').val()\r\n };\r\n\r\n //holds the timer object (set interval id)\r\n this.timerObject = null;\r\n\r\n //holds the current last action date time. (ie: last time the user made an action)\r\n this._lastActionDateTime = null;\r\n this.dateUserWillBeForcedOut = null;\r\n\r\n //holds the status and result\r\n this.result = {\r\n status: 'UserIsActive', //|| UserIsIdle (show dialog or something) || LogUserOut\r\n secondsUntilLogOut: null\r\n };\r\n }\r\n\r\n get lastActionDateTime() {\r\n return this._lastActionDateTime;\r\n }\r\n\r\n set lastActionDateTime(value) {\r\n this._lastActionDateTime = value;\r\n this.dateUserWillBeForcedOut = moment(value).add(this.config.logUserOutInSeconds, 's').toDate();\r\n }\r\n\r\n Start() {\r\n\r\n //set the last activity date\r\n this.lastActionDateTime = new Date();\r\n\r\n //using ajax send so we can register multiple event handlers. Ajax Setup is 1 handler globally\r\n $(document).ajaxSend((ev, jqhr, settings) => this.ResetTimer(false));\r\n\r\n //go run the timer object to check every second\r\n this.timerObject = setInterval(() => this.checkStatus.bind(this)(), 1000);\r\n\r\n //return the instance so we can use this call in 1 line\r\n return this;\r\n }\r\n\r\n ResetTimer(extendSessionTimeoutAjaxCall) {\r\n\r\n this.lastActionDateTime = new Date();\r\n\r\n if (extendSessionTimeoutAjaxCall == null || extendSessionTimeoutAjaxCall) {\r\n\r\n //go make an ajax call so we set the session timeout to x amount of minutes later\r\n $.get('RedirectBroker/RefreshSession');\r\n }\r\n }\r\n\r\n checkStatus() {\r\n\r\n let now = new Date().getTime();\r\n\r\n let differenceInSeconds = ((now - this.lastActionDateTime.getTime()) / 1000);\r\n\r\n if (differenceInSeconds < this.config.showIdleWarningInSeconds) {\r\n this.result.status = 'UserIsActive';\r\n } else if (differenceInSeconds >= this.config.logUserOutInSeconds) {\r\n\r\n //stop the timer now. If they are on a low bandwidth and we still have the timer going as we boot them off then it will end up in a loop with requests being queued and cancelled repeatedly until it can't take anymore\r\n clearInterval(this.timerObject);\r\n\r\n this.result.status = 'LogUserOut';\r\n }\r\n else if (differenceInSeconds >= this.config.showIdleWarningInSeconds) {\r\n this.result.status = 'UserIsIdle';\r\n }\r\n\r\n //set how many seconds until log out\r\n this.result.secondsUntilLogOut = Math.round(((this.dateUserWillBeForcedOut.getTime() - now) / 1000));\r\n\r\n //for debugging\r\n //console.log('Seconds Until Last Action: ' + differenceInSeconds);\r\n //console.log('Seconds Until Log Out: ' + this.result.secondsUntilLogOut);\r\n //console.log('Status: ' + this.result.status);\r\n }\r\n\r\n}\r\n","import '../httpservices/core/ajax.httpservice.core';\r\n\r\nexport class AjaxFileUploader {\r\n\r\n //is this a temporary upload ie: financial forms - upload then render to pdf and will never be sent in a psm\r\n UploadFile(fileElementChangeObject, attachmentGroupId, isTempUpload) {\r\n\r\n //create a promise which we will return after the ajax upload\r\n var d = $.Deferred();\r\n \r\n //go grab the psm upload information\r\n $.post('api/Message/UploadToPsmConfiguration')\r\n .done(response => {\r\n\r\n var progressCallBack = (e) => {\r\n //go send progress to the promise so we can report and update the progress bar\r\n d.notify(this.ProgressCalculation(e));\r\n };\r\n\r\n //set the headers\r\n var headers = [{\r\n key: 'CurrentPatId',\r\n value: response.currentPatId\r\n },\r\n {\r\n key: 'Authorization',\r\n value: 'Bearer ' + response.ssoToken\r\n }];\r\n \r\n //go run the file upload\r\n $.fileUpload(`${response.psmUploadUrl}${attachmentGroupId}?isTemp=${isTempUpload}`, this.BuildDataStringForUpload(fileElementChangeObject), headers, progressCallBack)\r\n .done(response => {\r\n\r\n //all done...resolve the promise\r\n d.resolve(response);\r\n }).fail(errResponse => {\r\n\r\n $.post('Patient/General/LogUploadError', JSON.stringify(errResponse));\r\n //failed so we reject it\r\n d.reject(errResponse);\r\n });\r\n });\r\n\r\n return d.promise();\r\n }\r\n\r\n UploadFileToWebUiApi(fileElementChangeObject, attachmentGroupId) {\r\n\r\n //create a promise which we will return after the ajax upload\r\n var d = $.Deferred();\r\n\r\n var progressCallBack = (e) => {\r\n //go send progress to the promise so we can report and update the progress bar\r\n d.notify(this.ProgressCalculation(e));\r\n }\r\n\r\n //go run the file upload\r\n $.fileUpload(_root + 'api/Message/UploadTempFile?attachmentGroupId=' + attachmentGroupId, this.BuildDataStringForUpload(fileElementChangeObject), null, progressCallBack)\r\n .done(response => {\r\n //all done...resolve the promise\r\n d.resolve(response);\r\n }).fail(errResponse => {\r\n\r\n //failed so we reject it\r\n d.reject(errResponse);\r\n });\r\n\r\n return d.promise();\r\n }\r\n\r\n BuildDataStringForUpload(fileElementChangeObject) {\r\n var dataString = new FormData();\r\n\r\n dataString.append(\"uploadedFile\", fileElementChangeObject);\r\n\r\n return dataString;\r\n }\r\n\r\n ProgressCalculation(e) {\r\n if (e.lengthComputable) {\r\n //go send progress to the promise so we can report and update the progress bar\r\n return Math.round((e.loaded * 100) / e.total);\r\n }\r\n }\r\n\r\n}","import '../httpservices/core/ajax.httpservice.core';\r\n\r\nclass UnityHttpService {\r\n\r\n IsAvailable() {\r\n return $.get('api/Unity/IsAvailable?enableOutageResponse=true');\r\n }\r\n}\r\n\r\nexport const UnityHttpSvc = new UnityHttpService();","import '../../httpservices/core/ajax.httpservice.core';\r\n\r\nclass EthicsConsultationHttpService {\r\n\r\n GetEthicsConsultationData() {\r\n return $.get('Patient/EthicsConsultation/GetEthicsConsultationData');\r\n }\r\n\r\n GetPatientandProxyContactData() {\r\n return $.get('Patient/EthicsConsultation/GetPatientandProxyContactData');\r\n }\r\n\r\n SendEthicsConsultationPsm(ethicsConsultationData) {\r\n return $.post('Patient/EthicsConsultation/SendEthicsConsultationPsm', ethicsConsultationData);\r\n }\r\n\r\n ComposeMessagePageInit() {\r\n return $.get('Patient/EthicsConsultation/EthicsConsultationFormInit');\r\n }\r\n\r\n}\r\n\r\nexport const EthicsConsultationHttpSvc = new EthicsConsultationHttpService();","import '../../httpservices/core/ajax.httpservice.core';\r\n\r\nclass VisitPayHttpService {\r\n\r\n EnteringVisitPayModalInit() {\r\n return $.get('Patient/VisitPay/EnteringVisitPayModalInit');\r\n }\r\n\r\n}\r\n\r\nexport const VisitPayHttpSvc = new VisitPayHttpService();","import chartjs from 'chart.js';\r\nimport chartjsannotation from 'chartjs-plugin-annotation';\r\n\r\nexport function registerTextAnnotationPaint() {\r\n //we only want to register this once.\r\n Chart.pluginService.register({\r\n beforeDraw: function (chart) {\r\n var ctx = chart.chart.ctx;\r\n\r\n ctx.restore();\r\n //this outputs the \"Normal Range Text\"\r\n\r\n ctx.font = Chart.helpers.fontString(14, 'bold', Chart.defaults.global.defaultFontFamily);\r\n ctx.textAlign = \"center\";\r\n ctx.textBaseline = \"bottom\";\r\n let line = chart.chart.annotation.elements.hline1;\r\n\r\n //ctx.fillStyle = '#444444';\r\n ctx.fillText(\"Reference Range\", line._model.x1 + 60, line._model.y1 + 20);\r\n\r\n ctx.save();\r\n }\r\n });\r\n}","import '../httpservices/core/ajax.httpservice.core';\r\n\r\nclass PatientContactInfoHttpService {\r\n\r\n GetInviteProxyPageInitData() {\r\n return $.get('Patient/ContactInformation/GetInviteProxyPageInitData');\r\n }\r\n\r\n GetPatientContactInformation() {\r\n return $.get('api/ContactInfo/GetPatientContactInformation');\r\n }\r\n\r\n GetPolicyHolderRelationship() {\r\n return $.get('api/ContactInfo/PolicyHolderRelationship');\r\n }\r\n\r\n GetPolicyHolderRelationshipDropDown() {\r\n return $.get('api/ContactInfo/PolicyHolderRelationshipDropDown');\r\n }\r\n\r\n //model = ContactInformationModel.cs\r\n ValidateAndGetChanges(model) {\r\n return $.post('api/ContactInfo/ValidateAndGetChanges', model);\r\n }\r\n\r\n //model = ContactInformationModel.cs\r\n SaveForm(model) {\r\n return $.post('api/ContactInfo/SavePatientContactInformation', model);\r\n }\r\n\r\n ValidateAndSaveForm(model) {\r\n return $.post('api/SaveContactInfo', model);\r\n }\r\n\r\n GetContentBlocks() {\r\n return $.get('Patient/ContactInformation/GetContentBlocks');\r\n }\r\n\r\n GetLanguageAndGender() {\r\n return $.get('api/ContactInfo/GetLanguageAndGender', { NoBannerOnException: true });\r\n }\r\n\r\n SaveGender(gender) {\r\n return $.post('api/ContactInfo/SaveGender', gender);\r\n }\r\n\r\n SaveLanguage(language){\r\n return $.post('api/ContactInfo/SaveLanguage', language);\r\n }\r\n}\r\n\r\nexport const PatientContactHttpSvc = new PatientContactInfoHttpService();","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal fade\",class:{ 'remove-right-padding': _vm.isFullWidthMobile },attrs:{\"tabindex\":\"-1\",\"role\":\"dialog\",\"aria-hidden\":\"true\",\"data-keyboard\":\"false\",\"data-backdrop\":\"static\"}},[_c('div',{staticClass:\"message-detail-dialog-print modal-dialog modal-dialog-scrollable\",class:_vm.dialogWidthCss,attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-success modal-content text-center\"},[_c('div',{staticClass:\"modal-body pt-2 px-5\"},[_vm._m(0),_vm._v(\" \"),_vm._t(\"headerTextSlot\",[_c('p',{staticClass:\"lead mt-4\"}),_c('div',{staticClass:\"h5\"},[_vm._v(_vm._s(_vm.headerText))]),_vm._v(\" \"),_c('p')],{\"headerText\":_vm.headerText}),_vm._v(\" \"),_vm._t(\"subHeaderTextSlot\",[_c('p',{staticClass:\"mt-4 h6 fw-400 subheader-text\",domProps:{\"innerHTML\":_vm._s(_vm.subHeaderText)}}),_vm._v(\" \"),(_vm.showRedirectLink)?_c('div',[_c('h6',[_vm._v(_vm._s(_vm.redirectLinkLongText)+\" \"),_c('a',{attrs:{\"target\":\"_self\",\"href\":_vm.redirectLinkUrl}},[_vm._v(_vm._s(_vm.redirectLinkText))])])]):_vm._e()],{\"subHeaderText\":_vm.subHeaderText})],2),_vm._v(\" \"),_c('div',{staticClass:\"modal-footer1 px-5 pt-2 pb-3 d-print-none justify-content-center\"},[_vm._t(\"footer\",[_c('div',{staticClass:\"container-fluid pl-0 pl-lg-2 pr-0 pr-lg-2\"},[_c('div',{staticClass:\"row my-3 text-center\"},[((_vm.mode == 'RecordSavedAdd'))?_c('div',{staticClass:\"col d-flex flex-column\"},[_c('button',{staticClass:\"btn btn-primary py-2\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('onModalClose', 'RecordSavedAdd')}}},[_vm._v(_vm._s(_vm.buttonText))])]):_vm._e(),_vm._v(\" \"),((_vm.mode == 'SuccessMessage'))?_c('div',{staticClass:\"col d-flex flex-column\"},[_c('button',{staticClass:\"btn btn-primary\",staticStyle:{\"width\":\"60%\"},attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('onModalClose', 'RecordSavedAdd')}}},[_vm._v(_vm._s(_vm.buttonText))])]):(_vm.mode != 'RecordSavedAdd' && _vm.mode != 'SuccessMessage')?_c('div',{staticClass:\"col d-flex flex-column\"},[_c('button',{staticClass:\"btn btn-primary mx-auto\",staticStyle:{\"width\":\"60%\"},attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('onModalClose', 'RecordSaved')}}},[_vm._v(_vm._s(_vm.buttonText))])]):_vm._e()])])],{\"buttonText\":_vm.buttonText})],2)])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mb-0 bg-white text-center text-portal-soft-black\"},[_c('h1',{staticClass:\"display-4 mt-3\"},[_c('i',{staticClass:\"fas fa-check-circle message-sent-icon\",staticStyle:{\"color\":\"#A6CE42\"},attrs:{\"aria-label\":\"Message Sent\"}})])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--2!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modal.success.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--2!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modal.success.vue?vue&type=script&lang=js&\"","\r\n
\r\n We're making some updates to our system, and your prescription information is not available at this time. We apologize for the inconvenience. \r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./generic.pager.vue?vue&type=template&id=6b4d2d42&\"\nimport script from \"./generic.pager.vue?vue&type=script&lang=js&\"\nexport * from \"./generic.pager.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import '../../httpservices/core/ajax.httpservice.core';\r\n\r\nclass MskEngageHttpService {\r\n\r\n PageInitData() {\r\n return $.get('Patient/MskEngage/PageInitData');\r\n }\r\n GetCompletedTabData() {\r\n return $.get('Patient/MskEngage/GetCompletedTabData');\r\n } \r\n GetOnDemandTabData() {\r\n return $.get('Patient/MskEngage/GetOnDemandTabData');\r\n }\r\n GetOnDemandAssessmentId(surveyId) {\r\n return $.get('Patient/MskEngage/GetOnDemandAssessmentId?surveyId=' + surveyId);\r\n }\r\n GetPatientProgress() {\r\n return $.get('Patient/MskEngage/GetPatientProgress')\r\n }\r\n GetToken() {\r\n return $.get('api/MskEngage/GetToken')\r\n }\r\n GetPPPToken() {\r\n return $.get('/api/MskEngage/GetToken')\r\n }\r\n GetPatientOutput(assessmentid) {\r\n return $.get('Patient/MskEngage/GetPatientOutput?assessmentid=' + assessmentid)\r\n }\r\n\r\n}\r\n\r\nexport const MskEngageHttpSvc = new MskEngageHttpService();","import { localizationSvc } from '@SharedServices/localization.service';\r\n\r\nexport function IsModelStateError(xhr) {\r\n return xhr.status == 400;\r\n}\r\n\r\n//notes for validation\r\n//errorPropertyName - {0} will output whatever error text is found. You can do 'Test 123 {0}' and it will output => Test 123 Field Is Required.\r\n//if errorText contains [[MyLocalizerKeyword]] then the localizer will resolve it. Otherwise it will be treated as a string.\r\n//can do 'Test 123 {0}, [[Validation_Required]]' => Will output 'Test 123 Field Is Required'\r\n//or you can do 'Test {0}, 'You have an error' => Will output 'Test You have an error'\r\n\r\nexport class ClientSideValidationFactory {\r\n\r\n //func to the model state array\r\n constructor() {\r\n this.ErrorConfiguration = [];\r\n }\r\n\r\n //propertyNameSelector = func selector\r\n //errorPropertyName = string --> points to the errorModel.PropertyName\r\n //errorText = uses the default text if not specified [[KeywordFromLocalizer]]\r\n addRequiredField(propertyNameSelector, errorModelSelector, errorText) {\r\n this.ErrorConfiguration.push({\r\n errorModelSelector: errorModelSelector,\r\n selector: propertyNameSelector,\r\n errorText: errorText || '[[Validation_Required]]',\r\n isInvalid: (config, fieldValue) => (fieldValue == null || fieldValue.toString() == '')\r\n });\r\n\r\n return this;\r\n }\r\n\r\n addMinLengthOnArray(propertyNameSelector, minLengthOfArray, errorModelSelector, errorText) {\r\n this.ErrorConfiguration.push({\r\n errorModelSelector: errorModelSelector,\r\n selector: propertyNameSelector,\r\n minLengthOnArray: minLengthOfArray,\r\n errorText: errorText || '[[Validation_OneItemMustBeSelected]]',\r\n isInvalid: (config, fieldValue) => (fieldValue == null || fieldValue.length < config.minLengthOnArray)\r\n }); \r\n\r\n return this;\r\n }\r\n\r\n restrictMaxLengthOnArray(propertyNameSelector, minLengthOfArray, errorModelSelector, errorText) {\r\n this.ErrorConfiguration.push({\r\n errorModelSelector: errorModelSelector,\r\n selector: propertyNameSelector,\r\n minLengthOnArray: minLengthOfArray,\r\n errorText: errorText || '[[Validation_OneItemMustBeSelected]]',\r\n isInvalid: (config, fieldValue) => (fieldValue == null || fieldValue.length > config.minLengthOnArray)\r\n });\r\n\r\n return this;\r\n }\r\n\r\n //_this = Vue instance of this\r\n //errorModel = object which contains all the errors\r\n validateForm(_this, errorModel) {\r\n let passesValidation = true;\r\n\r\n //add prototype items\r\n //localizationSvc.getRequiredText = localizationSvc.resolveKeyword('Validation_Required');\r\n\r\n //loop through all the configuration rules\r\n for (var i = 0; i < this.ErrorConfiguration.length; i++) {\r\n let configToValidate = this.ErrorConfiguration[i];\r\n \r\n //is it a valid value?\r\n if (configToValidate.isInvalid(configToValidate, configToValidate.selector(_this))) {\r\n\r\n //object to see what property is set\r\n let tempObject = {};\r\n\r\n //go set the error property\r\n configToValidate.errorModelSelector(tempObject);\r\n\r\n //go set the property to make it reactive\r\n Object.keys(tempObject).forEach(x => {\r\n \r\n //grab the error text to be displayed\r\n let errorText = tempObject[x].replace('{0}', this.getErrorTextFromConfig(configToValidate));\r\n\r\n //get the current error for this property. this way we just adjust what we need\r\n let currentErrors = errorModel[x] || [];\r\n \r\n //make the property reactive\r\n _this.$set(errorModel, x, [errorText].concat(currentErrors.filter(x => x != errorText)));\r\n });\r\n\r\n passesValidation = false;\r\n }\r\n }\r\n\r\n //return the result\r\n return passesValidation;\r\n }\r\n\r\n getErrorTextFromConfig(ruleConfig) {\r\n //should this be localized?\r\n if (ruleConfig.errorText.startsWith('[[')) {\r\n return localizationSvc.resolveKeyword(ruleConfig.errorText.replace('[[', '').replace(']]', ''));\r\n }\r\n\r\n //this should be treated as a raw string\r\n return ruleConfig.errorText;\r\n }\r\n\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.capsLockIsOn)?_c('div',[_vm._t(\"default\")],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\r\n\r\nCapsLock.js\r\n\r\nAn object allowing the status of the caps lock key to be determined\r\n\r\nCreated by Stephen Morley - http://code.stephenmorley.org/ - and released under\r\nthe terms of the CC0 1.0 Universal legal code:\r\n\r\nhttp://creativecommons.org/publicdomain/zero/1.0/legalcode\r\n\r\n*/\r\n\r\n//**** i changed this a little bit to make it easier to load in webpack ****\r\n\r\n// create the CapsLock object\r\nexport default function() {\r\n\r\n // initialise the status of the caps lock key\r\n var capsLock = false;\r\n\r\n // initialise the list of listeners\r\n var listeners = [];\r\n\r\n // store whether we are running on a Mac\r\n var isMac = /Mac/.test(navigator.platform);\r\n\r\n // Returns whether caps lock currently appears to be on.\r\n function isOn() {\r\n return capsLock;\r\n }\r\n\r\n /* Adds a listener. When a change is detected in the status of the caps lock\r\n * key the listener will be called, with a parameter of true if caps lock is\r\n * now on and false if caps lock is now off. The parameter is:\r\n *\r\n * listener - the listener\r\n */\r\n function addListener(listener) {\r\n\r\n // add the listener to the list\r\n listeners.push(listener);\r\n\r\n }\r\n\r\n /* Handles a key press event. The parameter is:\r\n *\r\n * e - the event\r\n */\r\n function handleKeyPress(e) {\r\n\r\n // ensure the event object is defined\r\n if (!e) e = window.event;\r\n\r\n // store the prior status of the caps lock key\r\n var priorCapsLock = capsLock;\r\n\r\n // determine the character code\r\n var charCode = (e.charCode ? e.charCode : e.keyCode);\r\n\r\n // store whether the caps lock key is down\r\n if (charCode >= 97 && charCode <= 122) {\r\n capsLock = e.shiftKey;\r\n } else if (charCode >= 65 && charCode <= 90 && !(e.shiftKey && isMac)) {\r\n capsLock = !e.shiftKey;\r\n }\r\n\r\n // call the listeners if the caps lock key status has changed\r\n if (capsLock != priorCapsLock) {\r\n for (var index = 0; index < listeners.length; index++) {\r\n listeners[index](capsLock);\r\n }\r\n }\r\n\r\n }\r\n\r\n // listen for key press events\r\n if (window.addEventListener) {\r\n window.addEventListener('keypress', handleKeyPress, false);\r\n } else {\r\n document.documentElement.attachEvent('onkeypress', handleKeyPress);\r\n }\r\n\r\n // return the public API\r\n return {\r\n isOn: isOn,\r\n addListener: addListener\r\n };\r\n\r\n};\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CapsLockWarning.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CapsLockWarning.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./CapsLockWarning.vue?vue&type=template&id=497703ca&\"\nimport script from \"./CapsLockWarning.vue?vue&type=script&lang=js&\"\nexport * from \"./CapsLockWarning.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_vm._v(_vm._s(_vm.errrorToShow))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FieldMatchWarning.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FieldMatchWarning.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n\r\n\r\n {{errrorToShow}}\r\n\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./FieldMatchWarning.vue?vue&type=template&id=568ad81e&\"\nimport script from \"./FieldMatchWarning.vue?vue&type=script&lang=js&\"\nexport * from \"./FieldMatchWarning.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","Array.prototype.move = function (fromIndex, toIndex) {\r\n this.splice(toIndex, 0, this.splice(fromIndex, 1)[0]);\r\n};\r\n\r\nArray.prototype.findRecordByIndex = function (funcSelector) {\r\n for (var i = 0; i < this.length; i++) {\r\n if (funcSelector(this[i])) {\r\n return i;\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n\r\nArray.prototype.contains = function (itemToFind) {\r\n for (var i = 0; i < this.length; i++) {\r\n if (this[i] == itemToFind) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n}","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--2!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scheduling.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--2!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scheduling.vue?vue&type=script&lang=js&\"","\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
Appointments
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Request an appointment\r\n
\r\n
\r\n
\r\n
\r\n If you or someone you know has been diagnosed with cancer, request an appointment to consult with our experts.\r\n
\r\n When you’re diagnosed with a tumor, seeking a second opinion is an important step. It can help ensure that you have the most accurate diagnosis and the best care plan for your condition. If you need a second opinion about your brain or skull base tumor, a spine tumor or neurological condition that requires surgery, our Department of Neurosurgery can help.\r\n
\r\n
\r\n
\r\n
\r\n Our expert neurosurgeons can review medical records without you having to travel to an MSK facility to meet in person. All you need to do is send us your medical records, and someone from our neurosurgery team will contact you to discuss your information and ask a few questions. Within 48 hours, an MSK neurosurgeon will send you and your local healthcare provider a written remote opinion about the right surgery plan for you. It’s as simple as that.\r\n