{"version":3,"sources":["webpack:///./src/server/scheduleEvents.js","webpack:///./src/server/paymentMethod.js","webpack:///./src/components/documents/DocumentFileUploadModal.vue?7d21","webpack:///./src/views/FormButton.vue","webpack:///src/views/FormButton.vue","webpack:///./src/views/FormButton.vue?732f","webpack:///./src/views/FormButton.vue?8747","webpack:///./src/components/home/Home.vue","webpack:///./src/components/home/HomeAppointments.vue","webpack:///src/components/home/HomeAppointments.vue","webpack:///./src/components/home/HomeAppointments.vue?8e0c","webpack:///./src/components/home/HomeAppointments.vue?c38f","webpack:///./src/components/home/HomePendingDocuments.vue","webpack:///src/components/home/HomePendingDocuments.vue","webpack:///./src/components/home/HomePendingDocuments.vue?b24e","webpack:///./src/components/home/HomePendingDocuments.vue?989b","webpack:///src/components/home/Home.vue","webpack:///./src/components/home/Home.vue?ff88","webpack:///./src/components/home/Home.vue?5d6c","webpack:///./src/components/documents/DocumentFileUploadModal.vue","webpack:///src/components/documents/DocumentFileUploadModal.vue","webpack:///./src/components/documents/DocumentFileUploadModal.vue?d590","webpack:///./src/components/documents/DocumentFileUploadModal.vue?e6c3","webpack:///./src/server/documentGroup.js","webpack:///./src/components/home/HomeAppointments.vue?a29e"],"names":["filter","result","http","post","data","id","patch","scheduleEventId","get","eocId","basePath","delete","api","query","patientId","create","put","render","_vm","this","_c","_self","staticClass","staticStyle","on","$event","$emit","_v","_s","option","staticRenderFns","name","props","status","type","required","readOnly","computed","icon","variant","component","accessValue","user","$t","userName","_e","isPracticeSuiteEnable","isPayaEnable","attrs","practiceSuitePaymentLink","goToPayment","nextAppointment","appointmentDate","loading","class","checkedIn","checkNextAppointment","_f","hasTelehealthLink","joinTelehealthSession","lastAppointment","methods","confirm","title","view","options","value","label","then","params","fromPaywall","catch","openTeleHealthSession","url","window","_l","documentsList","item","key","undefined","form","translate","showInOmt","sentAt","sentBy","fullName","requestUpload","document","handleOpenDocument","openFileUploadModal","formGroup","handleOpenDocumentGroup","documentsLoaded","length","fileUploadModal","selectedSharedDocumentId","isFormGroup","closeFileUploadModal","model","callback","$$v","expression","components","FormButton","DocumentFileUploadModal","Layout","HomeAppointments","HomePendingDocuments","state","submitForm","calculateWidth","scopedSlots","_u","fn","cancel","uploadFileStep","file","editorShown","ref","previewPictureFile","modalWidth","isMobile","takePicture","showPictureTaker","fileUrl","savePicture","fileErrors","navigator","getUserMedia","video","width","min","ideal","max","height","getContext","drawImage","self","reader","myImage","myContext","fileSizeIsOk","set","formId","clientId","documentGroupId","viewUrl","defaults","baseURL","SessionService","session","token","upload","sharedDocumentId","formData","FormData","append","config","headers"],"mappings":"kHAAA,gBAEe,QACb,YAAYA,GACV,MAAMC,QAAeC,OAAKC,KAAM,4BAA4BH,GAC5D,OAAOC,EAAOG,MAEhB,mBAAmBC,EAAID,GACrB,MAAMH,QAAeC,OAAKI,MACvB,0CAAyCD,EAC1CD,GAEF,OAAOH,EAAOG,MAEhB,wBAAwBC,EAAIE,GAC1B,MAAMN,QAAeC,OAAKI,MACvB,+CAA8CD,KAAME,KAEvD,OAAON,EAAOG,MAEhB,kCAAkCC,GAChC,MAAMJ,QAAeC,OAAKM,IACvB,yDAAwDH,GAE3D,OAAOJ,EAAOG,MAEhB,qBAAqBK,GACnB,aAAaP,OAAKM,IAAK,4CAA2CC,M,oCC3BtE,gBAEA,MAAMC,EAAW,kCAEF,QACbC,OAAON,GACL,OAAOO,OAAID,OAAQ,GAAED,KAAYL,MAEnCQ,MAAMC,GACJ,OAAOF,OAAIT,KAAM,GAAEO,KAAYI,MAEjCC,OAAOX,GACL,OAAOQ,OAAII,IAAK,GAAEN,EAAYN,M,oCCZlC,W,6DCAA,IAAIa,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,+DAA+DC,YAAY,CAAC,OAAS,YAAY,CAACH,EAAG,MAAM,CAACE,YAAY,kDAAkDC,YAAY,CAAC,cAAc,QAAQC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOP,EAAIQ,MAAM,mBAAmB,CAACN,EAAG,IAAI,CAACE,YAAY,gBAAgB,CAACJ,EAAIS,GAAG,WAAWT,EAAIU,GAAGV,EAAIW,QAAQ,iBAE9aC,EAAkB,GCkBP,GACfC,kBACAC,OACAC,QACAC,YACAC,aAEAC,UACAF,aACAC,cAGAE,UAIAR,SAGA,sBACA,+BADA,OACA,SAEAS,OACA,oDACA,+BADA,WACA,oBAEAC,UACA,4DACA,sDChDoV,I,YCOhVC,EAAY,eACd,EACAvB,EACAa,GACA,EACA,KACA,KACA,MAIa,OAAAU,E,yEClBf,IAAIvB,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,SAAS,CAACA,EAAG,MAAM,CAACE,YAAY,yEAAyE,CAACF,EAAG,MAAM,CAAEF,EAAIuB,aAAevB,EAAIwB,KAAMtB,EAAG,KAAK,CAACG,YAAY,CAAC,cAAc,SAAS,CAACL,EAAIS,GAAG,aAAaT,EAAIU,GAAGV,EAAIyB,GAAG,oBAAqB,CACjTZ,KAAMb,EAAI0B,YACR,cAAc1B,EAAI2B,KAAK3B,EAAIS,GAAG,KAAKP,EAAG,KAAK,CAACF,EAAIS,GAAGT,EAAIU,GAAGV,EAAIyB,GAAG,8BAA8BzB,EAAIS,GAAG,KAAKP,EAAG,MAAM,CAAEF,EAAI4B,uBAAyB5B,EAAI6B,aAAc3B,EAAG,WAAW,CAACG,YAAY,CAAC,YAAY,OAAO,QAAU,aAAayB,MAAM,CAAC,GAAK,kBAAkB,QAAU,YAAY,CAAC9B,EAAIS,GAAG,0CAA0CT,EAAI2B,KAAK3B,EAAIS,GAAG,KAAMT,EAAI+B,yBAA0B7B,EAAG,WAAW,CAACG,YAAY,CAAC,YAAY,OAAO,QAAU,aAAayB,MAAM,CAAC,QAAU,WAAWxB,GAAG,CAAC,MAAQN,EAAIgC,cAAc,CAAChC,EAAIS,GAAG,sCAAsCT,EAAI2B,MAAM,KAAK3B,EAAIS,GAAG,KAAKP,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,MAAM,CAACE,YAAY,OAAO,CAACF,EAAG,0BAA0BF,EAAIS,GAAG,KAAKP,EAAG,sBAAsB,QAEjuBU,EAAkB,G,wBCJlBb,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,SAAS,CAACE,YAAY,QAAQ,CAAEJ,EAAIiC,gBAAgBC,gBAAiBhC,EAAG,cAAc,CAACE,YAAY,8DAA8D,CAACF,EAAG,KAAK,CAACE,YAAY,oBAAoB,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIyB,GAAG,gCAAgCzB,EAAIS,GAAG,KAAOT,EAAImC,QAG3KnC,EAAI2B,KAHgLzB,EAAG,SAAS,CAACE,YAAY,oBAAoBgC,MAAM,CAC9a,cAAepC,EAAIiC,gBAAgBI,UACnC,uBAAwBrC,EAAIiC,gBAAgBI,WAC5CP,MAAM,CAAC,KAAO,UAAUxB,GAAG,CAAC,MAAQN,EAAIsC,uBAAuB,CAACpC,EAAG,IAAI,CAACE,YAAY,sBAAsBJ,EAAIS,GAAG,mBAAmBT,EAAIU,GAAGV,EAAIiC,gBAAgBI,UAAY,MAAQ,MAAM,cAAuBrC,EAAIS,GAAG,KAAMT,EAAImC,QAASjC,EAAG,YAAY,CAAC4B,MAAM,CAAC,QAAU,UAAU,MAAQ,cAAc9B,EAAI2B,MAAM,GAAG3B,EAAI2B,KAAK3B,EAAIS,GAAG,KAA6C,IAAvCT,EAAIiC,gBAAgBC,gBAAuBhC,EAAG,cAAc,CAACA,EAAG,KAAK,CAACF,EAAIS,GAAG,mBAAmBP,EAAG,cAAc,CAACA,EAAG,MAAM,CAACE,YAAY,8DAA8D,CAACF,EAAG,KAAK,CAACF,EAAIS,GAAG,eAAeT,EAAIU,GAAGV,EAAIuC,GAAG,iBAAPvC,CAAyBA,EAAIiC,gBAAgBC,kBAAkB,gBAAgBlC,EAAIS,GAAG,KAAKP,EAAG,SAAS,CAACE,YAAY,eAAe0B,MAAM,CAAC,KAAO,aAAa,QAAU,aAAa9B,EAAIS,GAAG,KAAKP,EAAG,KAAK,CAACF,EAAIS,GAAG,eAAeT,EAAIU,GAAGV,EAAIuC,GAAG,iBAAPvC,CAAyBA,EAAIiC,gBAAgBC,kBAAkB,iBAAiB,GAAGlC,EAAIS,GAAG,KAAKP,EAAG,MAAM,CAACE,YAAY,6DAA6D,CAAEJ,EAAIwC,oBAAsBxC,EAAImC,QAASjC,EAAG,SAAS,CAACE,YAAY,eAAe0B,MAAM,CAAC,KAAO,UAAUxB,GAAG,CAAC,MAAQN,EAAIyC,wBAAwB,CAACvC,EAAG,IAAI,CAACE,YAAY,aAAaJ,EAAIS,GAAG,wCAAwCT,EAAI2B,UAAU,GAAG3B,EAAIS,GAAG,KAAKP,EAAG,SAAS,CAACA,EAAG,cAAc,CAACE,YAAY,8DAA8D,CAACF,EAAG,KAAK,CAACE,YAAY,oBAAoB,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIyB,GAAG,gCAAgCzB,EAAIS,GAAG,KAAKP,EAAG,IAAI,CAACE,YAAY,oBAAoBgC,MAAM,CACt9C,iBAAkBpC,EAAI0C,gBAAgBL,UACtC,sBAAuBrC,EAAI0C,gBAAgBL,eACvCrC,EAAIS,GAAG,KAA6C,IAAvCT,EAAI0C,gBAAgBR,gBAAuBhC,EAAG,cAAc,CAACA,EAAG,KAAK,CAACF,EAAIS,GAAG,uBAAuBP,EAAG,cAAc,CAACA,EAAG,MAAM,CAACE,YAAY,8DAA8D,CAACF,EAAG,KAAK,CAACF,EAAIS,GAAG,eAAeT,EAAIU,GAAGV,EAAIuC,GAAG,iBAAPvC,CAAyBA,EAAI0C,gBAAgBR,kBAAkB,gBAAgBlC,EAAIS,GAAG,KAAKP,EAAG,SAAS,CAACE,YAAY,eAAe0B,MAAM,CAAC,KAAO,aAAa,QAAU,aAAa9B,EAAIS,GAAG,KAAKP,EAAG,KAAK,CAACF,EAAIS,GAAG,eAAeT,EAAIU,GAAGV,EAAIuC,GAAG,iBAAPvC,CAAyBA,EAAI0C,gBAAgBR,kBAAkB,iBAAiB,MAAM,IAAI,IAEzkBtB,EAAkB,G,wBC2FP,GACfC,wBACA3B,OACA,OACAiD,aAGA,sBACA,iCACA,yBAEAQ,YACA,qDACA,oDAEA,6BACA,gBACA,+CACA,gBAEA,GACA,2BACA,qEACA,WAEA,iBAEA,mBAGA,8BACA,gBACA,iDACA,gBAEA,GACA,2BACA,gEAEA,iBAEA,8BAGA,iCACA,aACAC,QACA,CACAC,SAEA,CACAC,+BACAC,UAAAC,SAAAC,gBAGAC,eACA,kBACA,mBACArC,eACAsC,QACAC,kBAIA,cACA,kBAEA,+BAIAC,uBAEAC,wBACA,WAEA,0CACA,6CACA,4CAEAC,6CAGA,yCACA,4CACA,2CAEAA,4CAGA,+CACA,kDACA,iDAEAA,6CAEAC,wBACA,iBAEA,mBACA,gCACA,qCACA,CACAnB,4CAGA,2CACA,kBAGAlB,aACA,+BACA,eACA,kBACA,uBAEA,0BACAvB,gCAEA4C,oBACA,QACA,wCACA,uCACA,6CC9NyW,I,wBCQrWlB,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,QCnBXvB,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,iBAAiB,CAACF,EAAG,SAAS,CAACA,EAAG,cAAc,CAACA,EAAG,KAAK,CAACE,YAAY,oBAAoB,CAACJ,EAAIS,GAAG,aAAaT,EAAIU,GAAGV,EAAIyB,GAAG,+BAA+B,gBAAgBzB,EAAIS,GAAG,KAAKP,EAAG,QAAQ,CAACE,YAAY,wCAAwC,CAACF,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACF,EAAIS,GAAGT,EAAIU,GAAGV,EAAIyB,GAAG,4BAA4BzB,EAAIS,GAAG,KAAKP,EAAG,KAAK,CAACF,EAAIS,GAAGT,EAAIU,GAAGV,EAAIyB,GAAG,8BAA8BzB,EAAIS,GAAG,KAAKP,EAAG,KAAK,CAACF,EAAIS,GAAGT,EAAIU,GAAGV,EAAIyB,GAAG,8BAA8BzB,EAAIS,GAAG,KAAKP,EAAG,UAAUF,EAAIS,GAAG,KAAKP,EAAG,QAAQ,CAACF,EAAIyD,GAAIzD,EAAI0D,eAAe,SAASC,GAAM,OAAOzD,EAAG,KAAK,CAAC0D,IAAI,MAAQD,EAAKxE,GAAGiB,YAAY,oBAAoB,MAAgByD,IAAdF,EAAKG,KAAoB,CAAC5D,EAAG,KAAK,CAAC4B,MAAM,CAAC,aAAa9B,EAAI+D,UAAUlD,OAAO,CAACb,EAAIS,GAAG,mBAAmBT,EAAIU,GAAGiD,EAAKG,KAAKE,UAAY,aAAeL,EAAKG,KAAKjD,MAAM,oBAAoBb,EAAIS,GAAG,KAAKP,EAAG,KAAK,CAAC4B,MAAM,CAAC,aAAa9B,EAAI+D,UAAUE,SAAS,CAACjE,EAAIS,GAAG,mBAAmBT,EAAIU,GAAGV,EAAIuC,GAAG,aAAPvC,CAAqB2D,EAAKM,SAAS,oBAAoBjE,EAAIS,GAAG,KAAKP,EAAG,KAAK,CAAC4B,MAAM,CAAC,aAAa9B,EAAI+D,UAAUG,SAAS,CAAClE,EAAIS,GAAG,mBAAmBT,EAAIU,GAAGiD,EAAKO,OAASP,EAAKO,OAAOC,SAAW,IAAI,oBAAoBnE,EAAIS,GAAG,KAAKP,EAAG,KAAK,CAAC4B,MAAM,CAAC,MAAQ,UAAU,CAAE6B,EAAKzC,WAAayC,EAAKS,cAAelE,EAAG,cAAc,CAAC4B,MAAM,CAAC,OAAS6B,EAAKU,SAAWV,EAAKU,SAAStD,OAAS,UAAU,SAAW4C,EAAKzC,UAAUZ,GAAG,CAAC,aAAe,SAASC,GAAQ,OAAOP,EAAIsE,mBAAmBX,EAAKxE,QAAQe,EAAG,cAAc,CAAC4B,MAAM,CAAC,OAAS6B,EAAKU,SAAWV,EAAKU,SAAStD,OAAS,UAAU,SAAW4C,EAAKzC,UAAUZ,GAAG,CAAC,aAAe,SAASC,GAAQ,OAAOP,EAAIuE,oBAAoBZ,EAAKxE,SAAS,SAAwB0E,IAAnBF,EAAKa,UAAyB,CAACtE,EAAG,KAAK,CAAC4B,MAAM,CAAC,aAAa9B,EAAI+D,UAAUlD,OAAO,CAACb,EAAIS,GAAGT,EAAIU,GAAGiD,EAAKa,UAAU3D,SAASb,EAAIS,GAAG,KAAKP,EAAG,KAAK,CAAC4B,MAAM,CAAC,aAAa9B,EAAI+D,UAAUE,SAAS,CAACjE,EAAIS,GAAG,mBAAmBT,EAAIU,GAAGV,EAAIuC,GAAG,aAAPvC,CAAqB2D,EAAKM,SAAS,oBAAoBjE,EAAIS,GAAG,KAAKP,EAAG,KAAK,CAAC4B,MAAM,CAAC,aAAa9B,EAAI+D,UAAUG,SAAS,CAAClE,EAAIS,GAAGT,EAAIU,GAAGiD,EAAKO,OAAOC,aAAanE,EAAIS,GAAG,KAAKP,EAAG,KAAK,CAAEyD,EAAKzC,WAAayC,EAAKS,cAAelE,EAAG,cAAc,CAAC4B,MAAM,CAAC,OAAS6B,EAAKU,SAAWV,EAAKU,SAAStD,OAAS,UAAU,SAAW4C,EAAKzC,UAAUZ,GAAG,CAAC,aAAe,SAASC,GAAQ,OAAOP,EAAIyE,wBAAwBd,EAAKxE,QAAQe,EAAG,cAAc,CAAC4B,MAAM,CAAC,OAAS6B,EAAKU,SAAWV,EAAKU,SAAStD,OAAS,UAAU,SAAW4C,EAAKzC,UAAUZ,GAAG,CAAC,aAAe,SAASC,GAAQ,OAAOP,EAAIuE,oBAAoBZ,EAAKxE,IAAI,QAAW,IAAIa,EAAI2B,MAAM,MAAK3B,EAAIS,GAAG,KAAOT,EAAI0E,gBAA6Q1E,EAAI2B,KAAhQzB,EAAG,KAAK,CAACA,EAAG,KAAK,CAAC4B,MAAM,CAAC,QAAU,IAAI,MAAQ,WAAW,CAAC5B,EAAG,MAAM,CAACE,YAAY,oDAAoD,CAACF,EAAG,YAAY,CAACG,YAAY,CAAC,MAAQ,OAAO,OAAS,QAAQyB,MAAM,CAAC,QAAU,UAAU,MAAQ,eAAe,OAAgB9B,EAAIS,GAAG,KAAMT,EAAI0E,iBAAgD,IAA7B1E,EAAI0D,cAAciB,OAAczE,EAAG,KAAK,CAACA,EAAG,KAAK,CAAC4B,MAAM,CAAC,QAAU,IAAI,MAAQ,WAAW,CAAC9B,EAAIS,GAAG,oBAAoBT,EAAI2B,MAAM,KAAK3B,EAAIS,GAAG,KAAMT,EAAI4E,gBAAiB1E,EAAG,6BAA6B,CAAC4B,MAAM,CAAC,iBAAmB9B,EAAI6E,yBAAyB,YAAc7E,EAAI8E,aAAaxE,GAAG,CAAC,SAAWN,EAAI+E,sBAAsBC,MAAM,CAAChC,MAAOhD,EAAI4E,gBAAiBK,SAAS,SAAUC,GAAMlF,EAAI4E,gBAAgBM,GAAKC,WAAW,qBAAqBnF,EAAI2B,MAAM,IAAI,IAErvGf,EAAkB,G,oCC0GP,GACfC,4BACAuE,YACAC,kBACAC,gCAEApG,OACA,OACA0F,mBACAC,8BACAC,iBAGAnC,YACA,4CACA2B,sBACA,wCACA,wCACA,sCACAd,6BAEA,mCAGAiB,2BACA,yCAEAF,4BACA,gCACA,mBACA,yBAEAQ,uBACA,wBACA,mCACA,uBAGA5D,aACA,0DACAuC,gBACA,uBACA,oBACA,cACA,YACA,iDAGAK,YACA,OACAlD,qCACAoD,yCACAC,6CChK6W,ICOzW,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,gCCmCA,GACfrD,YACAuE,YACAG,cACAC,mBACAC,wBAEAvG,OACA,OACAqC,mBAGA,gBACA,uDAEAoB,SACAX,cACAwB,qDAEA,6BACA,iDACA,gBAGArC,aACA,sCACA,0BACAY,4BACA2D,0CACA9D,8DACAC,8CAEAH,WAAA,QAGA,EAFA,gHACA,eAEA,iEACA,uCACA,IACA,4BAEA,sEC9F6V,ICOzV,EAAY,eACd,EACA3B,EACAa,GACA,EACA,KACA,WACA,MAIa,e,2CClBf,IAAIb,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAAC4B,MAAM,CAAC,aAAa,kDAAkDxB,GAAG,CAAC,GAAKN,EAAI2F,WAAW,MAAQ3F,EAAI4F,gBAAgBC,YAAY7F,EAAI8F,GAAG,CAAC,CAAClC,IAAI,eAAemC,GAAG,UAAS,OAAEC,IAAU,MAAO,CAAC9F,EAAG,MAAM,CAACE,YAAY,2DAA2D,CAACF,EAAG,MAAM,CAACE,YAAY,wBAAwBJ,EAAIS,GAAG,KAAKP,EAAG,MAAM,CAACE,YAAY,wBAAwB,CAACF,EAAG,WAAW,CAAC4B,MAAM,CAAC,QAAU,YAAY,SAAW9B,EAAImC,SAAS7B,GAAG,CAAC,MAAQ0F,IAAS,CAAChG,EAAIS,GAAG,YAAYT,EAAIS,GAAG,KAAMT,EAAIiG,eAAiB,EAAG/F,EAAG,WAAW,CAACE,YAAY,OAAO0B,MAAM,CAAC,QAAU,UAAU,UAAY9B,EAAIkG,MAAQlG,EAAImC,SAAS7B,GAAG,CAAC,MAAQN,EAAI2F,aAAa,CAAE3F,EAAImC,QAASjC,EAAG,YAAY,CAACG,YAAY,CAAC,MAAQ,OAAO,OAAS,OAAO,MAAQ,WAAWyB,MAAM,CAAC,MAAQ,cAAc5B,EAAG,OAAO,CAACF,EAAIS,GAAG,WAAW,GAAGT,EAAI2B,MAAM,UAAUqD,MAAM,CAAChC,MAAOhD,EAAImG,YAAalB,SAAS,SAAUC,GAAMlF,EAAImG,YAAYjB,GAAKC,WAAW,gBAAgB,CAACnF,EAAIS,GAAG,KAAKP,EAAG,QAAQ,CAACkG,IAAI,cAAc/F,YAAY,CAAC,QAAU,QAAQyB,MAAM,CAAC,KAAO,OAAO,OAAS,UAAU,QAAU,UAAUxB,GAAG,CAAC,OAASN,EAAIqG,sBAAsBrG,EAAIS,GAAG,KAAKP,EAAG,SAAS,CAACkG,IAAI,SAAStE,MAAM,CAAC,GAAK,SAAS,MAAQ9B,EAAIsG,WAAW,OAAStG,EAAIsG,cAActG,EAAIS,GAAG,KAA4B,GAAtBT,EAAIiG,eAAqB/F,EAAG,MAAM,CAACA,EAAG,MAAM,CAACE,YAAY,sCAAsC,CAAEJ,EAAIuG,SAAUrG,EAAG,WAAW,CAACE,YAAY,gBAAgB0B,MAAM,CAAC,QAAU,WAAWxB,GAAG,CAAC,MAAQN,EAAIwG,cAAc,CAACxG,EAAIS,GAAG,kBAAkBP,EAAG,WAAW,CAACE,YAAY,gBAAgB0B,MAAM,CAAC,QAAU,WAAWxB,GAAG,CAAC,MAAQN,EAAIyG,mBAAmB,CAACzG,EAAIS,GAAG,qCAAqC,GAAGT,EAAIS,GAAG,KAAKP,EAAG,MAAM,CAACE,YAAY,gDAAgDJ,EAAIS,GAAG,KAAKP,EAAG,MAAM,CAACE,YAAY,sCAAsC,CAACF,EAAG,OAAO,CAACE,YAAY,iBAAiB,CAACJ,EAAIS,GAAG,UAAUT,EAAIS,GAAG,KAAKP,EAAG,MAAM,CAACE,YAAY,iCAAiC,CAACF,EAAG,WAAW,CAACE,YAAY,gBAAgB0B,MAAM,CAAC,QAAU,WAAWxB,GAAG,CAAC,MAAQ,SAASC,GAAQP,EAAIiG,eAAiB,KAAK,CAACjG,EAAIS,GAAG,oCAAoC,KAAKT,EAAI2B,KAAK3B,EAAIS,GAAG,KAA4B,GAAtBT,EAAIiG,eAAqB/F,EAAG,MAAM,CAACA,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAAEJ,EAAIkG,KAAMhG,EAAG,MAAM,CAACkG,IAAI,UAAUtE,MAAM,CAAC,OAAS9B,EAAIuG,SAAW,KAAOvG,EAAIsG,WAAW,MAAQtG,EAAIsG,WAAW,IAAMtG,EAAI0G,WAAWxG,EAAG,QAAQ,CAACkG,IAAI,QAAQtE,MAAM,CAAC,GAAK,QAAQ,MAAQ9B,EAAIsG,WAAW,OAAStG,EAAIsG,WAAW,SAAW,QAAQtG,EAAIS,GAAG,KAAKP,EAAG,MAAM,CAACE,YAAY,iCAAiC,CAAGJ,EAAIkG,KAAmRhG,EAAG,IAAI,CAACE,YAAY,OAAOC,YAAY,CAAC,YAAY,QAAQyB,MAAM,CAAC,QAAU,WAAWxB,GAAG,CAAC,MAAQ,IAAON,EAAIuG,SAAWvG,EAAIwG,cAAgBxG,EAAIyG,qBAAsB,CAACzG,EAAIS,GAAG,8BAA7bP,EAAG,WAAW,CAACE,YAAY,+BAA+BC,YAAY,CAAC,MAAQ,OAAO,OAAS,OAAO,QAAU,eAAeyB,MAAM,CAAC,QAAU,qBAAqBxB,GAAG,CAAC,MAAQN,EAAI2G,cAAc,CAACzG,EAAG,IAAI,CAACE,YAAY,gBAAgBC,YAAY,CAAC,YAAY,aAA2N,KAAKL,EAAI2B,KAAK3B,EAAIS,GAAG,KAA4B,GAAtBT,EAAIiG,eAAqB/F,EAAG,MAAM,CAACA,EAAG,cAAc,CAACkG,IAAI,aAAatE,MAAM,CAAC,SAAW9B,EAAImC,SAAS6C,MAAM,CAAChC,MAAOhD,EAAIkG,KAAMjB,SAAS,SAAUC,GAAMlF,EAAIkG,KAAKhB,GAAKC,WAAW,UAAUnF,EAAIS,GAAG,KAAMT,EAAI4G,WAAWjC,OAAS,EAAGzE,EAAG,UAAU,CAACE,YAAY,OAAO0B,MAAM,CAAC,KAAO,GAAG,QAAU,WAAW,CAAC9B,EAAIS,GAAGT,EAAIU,GAAGV,EAAI4G,WAAW,OAAO5G,EAAI2B,MAAM,GAAG3B,EAAI2B,QAEp2Gf,EAAkB,G,gDCuIP,GACfC,+BACAC,yCACA5B,OACA,OACAgH,UACAQ,aACAT,iBACAK,aACAC,0BACAK,cACAzE,aAGA,gBACA,eACA,uBAEAQ,SACA,mBAEA,GADA,gBACA,qBACA,oBACA,UACA,qCACAuD,iBAEA,gBACA,SACA,qBAGA,UACA,qCACAA,iBAEA,gBACA,SACA,gBAGA,yBAGAO,mBACA,eACA,sBACA,6DACAI,uBACAC,cACAC,OACAC,OACAC,oBACAC,sBACAC,qBAEAC,QACAH,oBACAC,sBACAC,wBAIAjE,SACA,6BACA,2BAIA,oBACA,6CACA,kBACAmE,iBACAC,gEACA,+CACA,qBACA,SACApE,kBACAA,SACA,oCAAAlC,sBAGA4E,iBACA,4CACA,mBACA,mBAEAY,cACA,gCAEA,4BACA,8BACA,WACA,MACAe,YACAA,mBACA,qBACAC,mBACAA,wBACA,gBACAC,sBACAA,oBACA,sCACAF,6BACAA,+BACAG,mBACA,4CACAH,YACAA,yCACAA,iCAAAvG,0BAMA2G,eACA,mBACA,8CACA,iBACA,8CACA,KAKAxG,UACAgF,aACA7G,MACA,2BAEAsI,OACA,0BC5QgX,I,wBCQ5WtG,EAAY,eACd,EACAvB,EACAa,GACA,EACA,KACA,WACA,MAIa,OAAAU,E,2CCnBf,4BAGA,MAAM9B,EAAW,4BAEF,QACb,UAAUL,GACR,MAAM,KAAED,SAAeQ,OAAIJ,IAAK,GAAEE,KAAYL,KAC9C,OAAOD,GAET,aAAaC,EAAID,GACf,MAAQA,KAAMH,SAAiBW,OAAIN,MAAO,GAAEI,KAAYL,IAAMD,GAC9D,OAAOH,GAETU,OAAON,GACL,OAAOO,OAAID,OAAQ,GAAED,KAAYL,MAEnCQ,MAAMkI,EAAQC,EAAUvI,GACtB,OAAOG,OAAIT,KAAM,GAAEO,WAAkBqI,KAAUtI,MAEjD,aAAaL,GACX,MAAQA,KAAMH,SAAiBW,OAAII,IAAK,GAAEN,EAAYN,GACtD,OAAOH,GAETgB,OAAOgI,GACL,OAAOrI,OAAIJ,IAAK,GAAEE,yBAAgCuI,MAEpDC,QAAQ7I,GACN,MAAQ,GAAEO,OAAIuI,SAASC,UAAU1I,cAC/B2I,OAAeC,UAAUC,SACvBlJ,KAENmJ,OAAOC,EAAkBrJ,GACvB,MAAM,KAAEgH,GAAShH,EACXsJ,EAAW,IAAIC,SACjBvC,GAAMsC,EAASE,OAAO,OAAQxC,GAClC,MAAMyC,EAAS,CACbC,QAAS,CACP,eAAgB,wBAGpB,OAAOlJ,OAAII,IAAK,GAAEN,YAAmB+I,IAAoBC,EAAUG,M,kCCzCvE","file":"chunk-4f769a2d.27451e80.js","sourcesContent":["import http from \"./core\";\n\nexport default {\n  async query(filter) {\n    const result = await http.post(`api/portal/ScheduleEvents`, filter);\n    return result.data;\n  },\n  async setCheckedIn(id, data) {\n    const result = await http.patch(\n      `api/portal/ScheduleEvents/SetCheckedIn/${id}`,\n      data\n    );\n    return result.data;\n  },\n  async cancelAppointment(id, scheduleEventId) {\n    const result = await http.patch(\n      `api/portal/ScheduleEvents/CancelAppointment/${id}/${scheduleEventId}`\n    );\n    return result.data;\n  },\n  async isPatientOutstandingBalance(id) {\n    const result = await http.get(\n      `api/portal/ScheduleEvents/IsPatientOutstandingBalance/${id}`\n    );\n    return result.data;\n  },\n  async getEventsByEoc(eocId) {\n    return await http.get(`api/portal/ScheduleEvents/GetEventsByEoc/${eocId}`);\n  }\n};\n","import api from \"./core\";\n\nconst basePath = \"api/portal/PatientPaymentMethod\";\n\nexport default {\n  delete(id) {\n    return api.delete(`${basePath}/${id}`);\n  },\n  query(patientId) {\n    return api.post(`${basePath}/${patientId}`);\n  },\n  create(data) {\n    return api.put(`${basePath}`, data);\n  }\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentFileUploadModal.vue?vue&type=style&index=0&id=67a257cb&prod&scoped=true&lang=css&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d-flex flex-row align-items-center justify-content-end w-100\",staticStyle:{\"cursor\":\"pointer\"}},[_c('div',{staticClass:\"d-flex flex-row align-items-center text-primary\",staticStyle:{\"font-weight\":\"bold\"},on:{\"click\":function($event){return _vm.$emit('editDocument')}}},[_c('p',{staticClass:\"m-0 p-0 mr-2\"},[_vm._v(\"\\n      \"+_vm._s(_vm.option)+\"\\n    \")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div\n    class=\"d-flex flex-row align-items-center justify-content-end w-100\"\n    style=\"cursor:pointer;\"\n  >\n    <div\n      class=\"d-flex flex-row align-items-center text-primary\"\n      style=\"font-weight:bold;\"\n      @click=\"$emit('editDocument')\"\n    >\n      <p class=\"m-0 p-0 mr-2\">\n        {{ option }}\n      </p>\n\n      <!-- <b-icon class=\"m-0 p-0 h4\" :icon=\"icon\" :variant=\"variant\" /> -->\n    </div>\n  </div>\n</template>\n\n<script>\nexport default {\n  name: \"FormButton\",\n  props: {\n    status: {\n      type: String,\n      required: false\n    },\n    readOnly: {\n      type: Boolean,\n      required: true\n    }\n  },\n  computed: {\n    // statusTreat() {\n    //   return this.status.toLowerCase();\n    // },\n    option() {\n      // if (this.statusTreat != \"completed\" && this.readOnly)\n      //   return \"View (ReadOnly)\";\n      if (this.readOnly) return \"View\";\n      return this.statusTreat === \"completed\" ? \"View\" : \"Start\";\n    },\n    icon() {\n      if (this.statusTreat != \"completed\" && this.readOnly) return \"eye-fill\";\n      return this.statusTreat === \"completed\" ? \"eye-fill\" : \"play-circle-fill\";\n    },\n    variant() {\n      if (this.statusTreat != \"completed\" && this.readOnly) return \"danger\";\n      return this.statusTreat === \"completed\" ? \"success\" : \"warning\";\n    }\n  }\n};\n</script>\n\n<style lang=\"scss\"></style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FormButton.vue?vue&type=template&id=46d874c8&\"\nimport script from \"./FormButton.vue?vue&type=script&lang=js&\"\nexport * from \"./FormButton.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 render(){var _vm=this,_c=_vm._self._c;return _c('layout',[_c('div',{staticClass:\"container mt-4 mb-4 d-flex justify-content-between align-items-center\"},[_c('div',[(_vm.accessValue && _vm.user)?_c('h3',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.$t(\"dashboard.welcome\", {\n            name: _vm.userName\n          }))+\"\\n      \")]):_vm._e(),_vm._v(\" \"),_c('h6',[_vm._v(_vm._s(_vm.$t(\"dashboard.welcomeMsg\")))])]),_vm._v(\" \"),_c('div',[(_vm.isPracticeSuiteEnable && _vm.isPayaEnable)?_c('b-button',{staticStyle:{\"font-size\":\"14px\",\"padding\":\"10px 30px\"},attrs:{\"to\":\"/paymentMethods\",\"variant\":\"primary\"}},[_vm._v(\"\\n        ADD PAYMENT METHOD\\n      \")]):_vm._e(),_vm._v(\" \"),(_vm.practiceSuitePaymentLink)?_c('b-button',{staticStyle:{\"font-size\":\"14px\",\"padding\":\"10px 30px\"},attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.goToPayment}},[_vm._v(\"\\n        MAKE A PAYMENT\\n      \")]):_vm._e()],1)]),_vm._v(\" \"),_c('div',{staticClass:\"container mb-4\"},[_c('div',{staticClass:\"row\"},[_c('home-pending-documents'),_vm._v(\" \"),_c('home-appointments')],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"col-md-4\"},[_c('b-card',{staticClass:\"mb-3\"},[(_vm.nextAppointment.appointmentDate)?_c('b-card-text',{staticClass:\"d-flex flex-row align-items-center justify-content-between\"},[_c('h6',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$t(\"dashboard.nextAppoinment\")))]),_vm._v(\" \"),(!_vm.loading)?_c('button',{staticClass:\"btn btn-checkedin\",class:{\n          'btn-success': _vm.nextAppointment.checkedIn,\n          'btn-outline-success': !_vm.nextAppointment.checkedIn\n        },attrs:{\"type\":\"button\"},on:{\"click\":_vm.checkNextAppointment}},[_c('i',{staticClass:\"fas fa-check mr-1\"}),_vm._v(\" Check\\n        \"+_vm._s(_vm.nextAppointment.checkedIn ? \"Out\" : \"In\")+\"\\n      \")]):_vm._e(),_vm._v(\" \"),(_vm.loading)?_c('b-spinner',{attrs:{\"variant\":\"primary\",\"label\":\"Spinning\"}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.nextAppointment.appointmentDate == '')?_c('b-card-text',[_c('h5',[_vm._v(\"NO UPCOMING\")])]):_c('b-card-text',[_c('div',{staticClass:\"d-flex flex-row justify-content-between align-items-center\"},[_c('h5',[_vm._v(\"\\n          \"+_vm._s(_vm._f(\"formatDateOnly\")(_vm.nextAppointment.appointmentDate))+\"\\n        \")]),_vm._v(\" \"),_c('b-icon',{staticClass:\"h1 ml-1 mr-1\",attrs:{\"icon\":\"clock-fill\",\"variant\":\"warning\"}}),_vm._v(\" \"),_c('h5',[_vm._v(\"\\n          \"+_vm._s(_vm._f(\"formatTimeOnly\")(_vm.nextAppointment.appointmentDate))+\"\\n        \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"d-flex flex-row justify-content-center align-items-center\"},[(_vm.hasTelehealthLink && !_vm.loading)?_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.joinTelehealthSession}},[_c('i',{staticClass:\"fas mr-1\"}),_vm._v(\" Join Telehealth Session\\n        \")]):_vm._e()])])],1),_vm._v(\" \"),_c('b-card',[_c('b-card-text',{staticClass:\"d-flex flex-row align-items-center justify-content-between\"},[_c('h6',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$t(\"dashboard.lastAppoinment\")))]),_vm._v(\" \"),_c('i',{staticClass:\"fas fa-check mr-1\",class:{\n          'check-success': !_vm.lastAppointment.checkedIn,\n          'btn-outline-success': _vm.lastAppointment.checkedIn\n        }})]),_vm._v(\" \"),(_vm.lastAppointment.appointmentDate == '')?_c('b-card-text',[_c('h5',[_vm._v(\"NO APPOINTMENTS\")])]):_c('b-card-text',[_c('div',{staticClass:\"d-flex flex-row justify-content-between align-items-center\"},[_c('h5',[_vm._v(\"\\n          \"+_vm._s(_vm._f(\"formatDateOnly\")(_vm.lastAppointment.appointmentDate))+\"\\n        \")]),_vm._v(\" \"),_c('b-icon',{staticClass:\"h1 ml-1 mr-1\",attrs:{\"icon\":\"clock-fill\",\"variant\":\"success\"}}),_vm._v(\" \"),_c('h5',[_vm._v(\"\\n          \"+_vm._s(_vm._f(\"formatTimeOnly\")(_vm.lastAppointment.appointmentDate))+\"\\n        \")])],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"col-md-4\">\n    <b-card class=\"mb-3\">\n      <b-card-text\n        v-if=\"nextAppointment.appointmentDate\"\n        class=\"d-flex flex-row align-items-center justify-content-between\"\n      >\n        <h6 class=\"font-weight-bold\">{{ $t(\"dashboard.nextAppoinment\") }}</h6>\n        <button\n          v-if=\"!loading\"\n          type=\"button\"\n          class=\"btn btn-checkedin\"\n          :class=\"{\n            'btn-success': nextAppointment.checkedIn,\n            'btn-outline-success': !nextAppointment.checkedIn\n          }\"\n          v-on:click=\"checkNextAppointment\"\n        >\n          <i class=\"fas fa-check mr-1\"></i> Check\n          {{ nextAppointment.checkedIn ? \"Out\" : \"In\" }}\n        </button>\n        <b-spinner\n          v-if=\"loading\"\n          variant=\"primary\"\n          label=\"Spinning\"\n        ></b-spinner>\n      </b-card-text>\n\n      <b-card-text v-if=\"nextAppointment.appointmentDate == ''\">\n        <h5>NO UPCOMING</h5>\n      </b-card-text>\n\n      <b-card-text v-else>\n        <div class=\"d-flex flex-row justify-content-between align-items-center\">\n          <h5>\n            {{ nextAppointment.appointmentDate | formatDateOnly }}\n          </h5>\n          <b-icon\n            class=\"h1 ml-1 mr-1\"\n            icon=\"clock-fill\"\n            variant=\"warning\"\n          ></b-icon>\n          <h5>\n            {{ nextAppointment.appointmentDate | formatTimeOnly }}\n          </h5>\n        </div>\n        <div class=\"d-flex flex-row justify-content-center align-items-center\">\n          <button\n            v-if=\"hasTelehealthLink && !loading\"\n            type=\"button\"\n            class=\"btn btn-link\"\n            v-on:click=\"joinTelehealthSession\"\n          >\n            <i class=\"fas mr-1\"></i> Join Telehealth Session\n          </button>\n        </div>\n      </b-card-text>\n    </b-card>\n\n    <b-card>\n      <b-card-text\n        class=\"d-flex flex-row align-items-center justify-content-between\"\n      >\n        <h6 class=\"font-weight-bold\">{{ $t(\"dashboard.lastAppoinment\") }}</h6>\n        <i\n          class=\"fas fa-check mr-1\"\n          :class=\"{\n            'check-success': !lastAppointment.checkedIn,\n            'btn-outline-success': lastAppointment.checkedIn\n          }\"\n        ></i>\n      </b-card-text>\n\n      <b-card-text v-if=\"lastAppointment.appointmentDate == ''\">\n        <h5>NO APPOINTMENTS</h5>\n      </b-card-text>\n\n      <b-card-text v-else>\n        <div class=\"d-flex flex-row justify-content-between align-items-center\">\n          <h5>\n            {{ lastAppointment.appointmentDate | formatDateOnly }}\n          </h5>\n          <b-icon\n            class=\"h1 ml-1 mr-1\"\n            icon=\"clock-fill\"\n            variant=\"success\"\n          ></b-icon>\n          <h5>\n            {{ lastAppointment.appointmentDate | formatTimeOnly }}\n          </h5>\n        </div>\n      </b-card-text>\n    </b-card>\n  </div>\n</template>\n\n<script>\nimport { mapGetters, mapState, mapActions } from \"vuex\";\nimport scheduleEvent from \"../../server/scheduleEvents\";\nexport default {\n  name: \"HomeAppointments\",\n  data() {\n    return {\n      loading: false\n    };\n  },\n  async mounted() {\n    await this.loadCurrentLocation();\n    await this.loadAppointments();\n  },\n  methods: {\n    ...mapActions(\"session\", [\"loadCurrentLocation\"]),\n    ...mapActions(\"appointments\", [\"loadAppointments\"]),\n\n    async checkNextAppointment() {\n      this.loading = true;\n      var result = await scheduleEvent.isPatientOutstandingBalance(\n        this.patientId\n      );\n      if (result) {\n        this.showPayBalanceWarning(\n          \"Please pay your previous balance before confirming the appointment\",\n          \"checkIn\"\n        );\n        this.loading = false;\n      } else {\n        this.setCheckIn();\n      }\n    },\n    async joinTelehealthSession() {\n      this.loading = true;\n      const result = await scheduleEvent.isPatientOutstandingBalance(\n        this.patientId\n      );\n      if (result) {\n        this.showPayBalanceWarning(\n          \"Please pay your previous balance before joining the session.\"\n        );\n        this.loading = false;\n      } else {\n        this.openTeleHealthSession();\n      }\n    },\n    async showPayBalanceWarning(title, action) {\n      this.$dialog\n        .confirm(\n          {\n            title: title\n          },\n          {\n            view: \"payment-options-confirm\",\n            options: [{ value: true, label: \"Yes\" }]\n          }\n        )\n        .then(async option => {\n          if (option.data === \"payNow\") {\n            this.$router.push({\n              name: \"Billing\",\n              params: {\n                fromPaywall: true\n              }\n            });\n          } else {\n            if (action === \"checkIn\") {\n              this.setCheckIn();\n            } else {\n              this.openTeleHealthSession();\n            }\n          }\n        })\n        .catch(function() {});\n    },\n    openTeleHealthSession() {\n      let url;\n      if (\n        this.nextAppointment.teamsMeetingUrl !== undefined &&\n        this.nextAppointment.teamsMeetingUrl !== null &&\n        this.nextAppointment.teamsMeetingUrl !== \"\"\n      ) {\n        url = this.nextAppointment.teamsMeetingUrl;\n      }\n      if (\n        this.nextAppointment.zoomMeetingUrl !== undefined &&\n        this.nextAppointment.zoomMeetingUrl !== null &&\n        this.nextAppointment.zoomMeetingUrl !== \"\"\n      ) {\n        url = this.nextAppointment.zoomMeetingUrl;\n      }\n      if (\n        this.nextAppointment.googleMeetMeetingUrl !== undefined &&\n        this.nextAppointment.googleMeetMeetingUrl !== null &&\n        this.nextAppointment.googleMeetMeetingUrl !== \"\"\n      ) {\n        url = this.nextAppointment.googleMeetMeetingUrl;\n      }\n      window.open(url, \"_blank\");\n      this.loading = false;\n    },\n    async setCheckIn() {\n      var checkInResult = await scheduleEvent.setCheckedIn(\n        this.nextAppointment.episodeOfCareId,\n        {\n          checkedIn: !this.nextAppointment.checkedIn\n        }\n      );\n      this.nextAppointment.checkedIn = checkInResult.checkedIn;\n      this.loading = false;\n    }\n  },\n  computed: {\n    ...mapGetters(\"appointments\", [\n      \"appointments\",\n      \"nextAppointment\",\n      \"lastAppointment\"\n    ]),\n    ...mapState(\"session\", {\n      patientId: state => state.user.PatientId\n    }),\n    hasTelehealthLink() {\n      return (\n        !!this.nextAppointment.teamsMeetingUrl ||\n        !!this.nextAppointment.zoomMeetingUrl ||\n        !!this.nextAppointment.googleMeetMeetingUrl\n      );\n    }\n  }\n};\n</script>\n\n<style>\n.btn-success,\n.btn-warning {\n  color: white !important;\n}\n.check-success {\n  color: rgb(133, 133, 133) !important;\n  background-color: inherit;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeAppointments.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeAppointments.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HomeAppointments.vue?vue&type=template&id=69ecb697&\"\nimport script from \"./HomeAppointments.vue?vue&type=script&lang=js&\"\nexport * from \"./HomeAppointments.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HomeAppointments.vue?vue&type=style&index=0&id=69ecb697&prod&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 render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"col-md-8 mb-3\"},[_c('b-card',[_c('b-card-text',[_c('h5',{staticClass:\"font-weight-bold\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t(\"dashboard.pendingDocuments\"))+\"\\n      \")])]),_vm._v(\" \"),_c('table',{staticClass:\"portal-table portal-table-responsive\"},[_c('thead',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"documents.table.name\")))]),_vm._v(\" \"),_c('th',[_vm._v(_vm._s(_vm.$t(\"documents.table.sentAt\")))]),_vm._v(\" \"),_c('th',[_vm._v(_vm._s(_vm.$t(\"documents.table.sentBy\")))]),_vm._v(\" \"),_c('th')])]),_vm._v(\" \"),_c('tbody',[_vm._l((_vm.documentsList),function(item){return _c('tr',{key:'doc' + item.id,staticClass:\"portal-table-row\"},[(item.form !== undefined)?[_c('td',{attrs:{\"data-label\":_vm.translate.name}},[_vm._v(\"\\n              \"+_vm._s(item.form.showInOmt ? \"Assessment\" : item.form.name)+\"\\n            \")]),_vm._v(\" \"),_c('td',{attrs:{\"data-label\":_vm.translate.sentAt}},[_vm._v(\"\\n              \"+_vm._s(_vm._f(\"formatDate\")(item.sentAt))+\"\\n            \")]),_vm._v(\" \"),_c('td',{attrs:{\"data-label\":_vm.translate.sentBy}},[_vm._v(\"\\n              \"+_vm._s(item.sentBy ? item.sentBy.fullName : \"\")+\"\\n            \")]),_vm._v(\" \"),_c('td',{attrs:{\"align\":\"right\"}},[(item.readOnly || !item.requestUpload)?_c('form-button',{attrs:{\"status\":item.document ? item.document.status : 'Pending',\"readOnly\":item.readOnly},on:{\"editDocument\":function($event){return _vm.handleOpenDocument(item.id)}}}):_c('form-button',{attrs:{\"status\":item.document ? item.document.status : 'Pending',\"readOnly\":item.readOnly},on:{\"editDocument\":function($event){return _vm.openFileUploadModal(item.id)}}})],1)]:(item.formGroup !== undefined)?[_c('td',{attrs:{\"data-label\":_vm.translate.name}},[_vm._v(_vm._s(item.formGroup.name))]),_vm._v(\" \"),_c('td',{attrs:{\"data-label\":_vm.translate.sentAt}},[_vm._v(\"\\n              \"+_vm._s(_vm._f(\"formatDate\")(item.sentAt))+\"\\n            \")]),_vm._v(\" \"),_c('td',{attrs:{\"data-label\":_vm.translate.sentBy}},[_vm._v(_vm._s(item.sentBy.fullName))]),_vm._v(\" \"),_c('td',[(item.readOnly || !item.requestUpload)?_c('form-button',{attrs:{\"status\":item.document ? item.document.status : 'Pending',\"readOnly\":item.readOnly},on:{\"editDocument\":function($event){return _vm.handleOpenDocumentGroup(item.id)}}}):_c('form-button',{attrs:{\"status\":item.document ? item.document.status : 'Pending',\"readOnly\":item.readOnly},on:{\"editDocument\":function($event){return _vm.openFileUploadModal(item.id, true)}}})],1)]:_vm._e()],2)}),_vm._v(\" \"),(!_vm.documentsLoaded)?_c('tr',[_c('td',{attrs:{\"colspan\":\"6\",\"align\":\"center\"}},[_c('div',{staticClass:\"d-flex flex-row justify-content-center mt-4 mb-4\"},[_c('b-spinner',{staticStyle:{\"width\":\"4rem\",\"height\":\"4rem\"},attrs:{\"variant\":\"primary\",\"label\":\"Spinning\"}})],1)])]):_vm._e(),_vm._v(\" \"),(_vm.documentsLoaded && _vm.documentsList.length === 0)?_c('tr',[_c('td',{attrs:{\"colspan\":\"4\",\"align\":\"center\"}},[_vm._v(\"NO DOCUMENTS\")])]):_vm._e()],2)]),_vm._v(\" \"),(_vm.fileUploadModal)?_c('document-file-upload-modal',{attrs:{\"sharedDocumentId\":_vm.selectedSharedDocumentId,\"isFormGroup\":_vm.isFormGroup},on:{\"onModify\":_vm.closeFileUploadModal},model:{value:(_vm.fileUploadModal),callback:function ($$v) {_vm.fileUploadModal=$$v},expression:\"fileUploadModal\"}}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"col-md-8 mb-3\">\n    <b-card>\n      <b-card-text>\n        <h5 class=\"font-weight-bold\">\n          {{ $t(\"dashboard.pendingDocuments\") }}\n        </h5>\n      </b-card-text>\n\n      <table class=\"portal-table portal-table-responsive\">\n        <thead>\n          <tr>\n            <th>{{ $t(\"documents.table.name\") }}</th>\n            <th>{{ $t(\"documents.table.sentAt\") }}</th>\n            <th>{{ $t(\"documents.table.sentBy\") }}</th>\n            <th></th>\n          </tr>\n        </thead>\n\n        <tbody>\n          <tr\n            class=\"portal-table-row\"\n            v-for=\"item in documentsList\"\n            :key=\"'doc' + item.id\"\n          >\n            <template v-if=\"item.form !== undefined\">\n              <td :data-label=\"translate.name\">\n                {{ item.form.showInOmt ? \"Assessment\" : item.form.name }}\n              </td>\n              <td :data-label=\"translate.sentAt\">\n                {{ item.sentAt | formatDate }}\n              </td>\n              <td :data-label=\"translate.sentBy\">\n                {{ item.sentBy ? item.sentBy.fullName : \"\" }}\n              </td>\n              <td align=\"right\">\n                <form-button\n                  v-if=\"item.readOnly || !item.requestUpload\"\n                  :status=\"item.document ? item.document.status : 'Pending'\"\n                  :readOnly=\"item.readOnly\"\n                  @editDocument=\"handleOpenDocument(item.id)\"\n                />\n                <form-button\n                  v-else\n                  :status=\"item.document ? item.document.status : 'Pending'\"\n                  :readOnly=\"item.readOnly\"\n                  @editDocument=\"openFileUploadModal(item.id)\"\n                />\n              </td>\n            </template>\n\n            <template v-else-if=\"item.formGroup !== undefined\">\n              <td :data-label=\"translate.name\">{{ item.formGroup.name }}</td>\n              <td :data-label=\"translate.sentAt\">\n                {{ item.sentAt | formatDate }}\n              </td>\n              <td :data-label=\"translate.sentBy\">{{ item.sentBy.fullName }}</td>\n              <td>\n                <form-button\n                  v-if=\"item.readOnly || !item.requestUpload\"\n                  :status=\"item.document ? item.document.status : 'Pending'\"\n                  :readOnly=\"item.readOnly\"\n                  @editDocument=\"handleOpenDocumentGroup(item.id)\"\n                />\n                <form-button\n                  v-else\n                  :status=\"item.document ? item.document.status : 'Pending'\"\n                  :readOnly=\"item.readOnly\"\n                  @editDocument=\"openFileUploadModal(item.id, true)\"\n                />\n              </td>\n            </template>\n          </tr>\n\n          <tr v-if=\"!documentsLoaded\">\n            <td colspan=\"6\" align=\"center\">\n              <div class=\"d-flex flex-row justify-content-center mt-4 mb-4\">\n                <b-spinner\n                  style=\"width: 4rem; height: 4rem\"\n                  variant=\"primary\"\n                  label=\"Spinning\"\n                ></b-spinner>\n              </div>\n            </td>\n          </tr>\n\n          <tr v-if=\"documentsLoaded && documentsList.length === 0\">\n            <td colspan=\"4\" align=\"center\">NO DOCUMENTS</td>\n          </tr>\n        </tbody>\n      </table>\n      <document-file-upload-modal\n        v-if=\"fileUploadModal\"\n        v-model=\"fileUploadModal\"\n        @onModify=\"closeFileUploadModal\"\n        :sharedDocumentId=\"selectedSharedDocumentId\"\n        :isFormGroup=\"isFormGroup\"\n      />\n    </b-card>\n  </div>\n</template>\n\n<script>\nimport { mapGetters, mapActions } from \"vuex\";\nimport FormButton from \"../../views/FormButton.vue\";\nimport documentServer from \"../../server/document\";\nimport DocumentFileUploadModal from \"../documents/DocumentFileUploadModal.vue\";\n\nexport default {\n  name: \"HomePendingDocuments\",\n  components: {\n    FormButton,\n    DocumentFileUploadModal\n  },\n  data() {\n    return {\n      fileUploadModal: false,\n      selectedSharedDocumentId: null,\n      isFormGroup: false\n    };\n  },\n  methods: {\n    ...mapActions(\"session\", [\"loadDocuments\"]),\n    handleOpenDocument(docId) {\n      const sharedDocument = this.documents.find(d => d.id == docId);\n      if (sharedDocument.document && sharedDocument.document.mode == \"File\") {\n        const url = documentServer.viewUrl(sharedDocument.document.id);\n        window.open(url, \"_blank\");\n      } else {\n        this.$router.push(\"/document/\" + docId);\n      }\n    },\n    handleOpenDocumentGroup(docId) {\n      this.$router.push(\"/document_group/\" + docId);\n    },\n    openFileUploadModal(sharedDocumentId, isFormGroup = false) {\n      this.selectedSharedDocumentId = sharedDocumentId;\n      this.isFormGroup = isFormGroup;\n      this.fileUploadModal = true;\n    },\n    closeFileUploadModal() {\n      this.fileUploadModal = false;\n      this.selectedSharedDocumentId = null;\n      this.loadDocuments();\n    }\n  },\n  computed: {\n    ...mapGetters(\"session\", [\"documents\", \"documentsLoaded\"]),\n    documentsList() {\n      const documents = this.documents;\n      return documents.filter(item => {\n        if (item.readOnly) return false;\n        if (!item.document) return true;\n        return item.document.status.toLowerCase() !== \"completed\";\n      });\n    },\n    translate() {\n      return {\n        name: this.$t(\"documents.table.name\"),\n        sentAt: this.$t(\"documents.table.sentAt\"),\n        sentBy: this.$t(\"documents.table.sentBy\")\n      };\n    }\n  }\n};\n</script>\n\n<style></style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomePendingDocuments.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomePendingDocuments.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HomePendingDocuments.vue?vue&type=template&id=572dcfbd&\"\nimport script from \"./HomePendingDocuments.vue?vue&type=script&lang=js&\"\nexport * from \"./HomePendingDocuments.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","<template>\n  <layout>\n    <div\n      class=\"container mt-4 mb-4 d-flex justify-content-between align-items-center\"\n    >\n      <div>\n        <h3 v-if=\"accessValue && user\" style=\"font-weight:bold;\">\n          {{\n            $t(\"dashboard.welcome\", {\n              name: userName\n            })\n          }}\n        </h3>\n        <h6>{{ $t(\"dashboard.welcomeMsg\") }}</h6>\n      </div>\n      <div>\n        <b-button\n          v-if=\"isPracticeSuiteEnable && isPayaEnable\"\n          to=\"/paymentMethods\"\n          variant=\"primary\"\n          style=\"font-size: 14px; padding: 10px 30px;\"\n        >\n          ADD PAYMENT METHOD\n        </b-button>\n        <b-button\n          v-if=\"practiceSuitePaymentLink\"\n          @click=\"goToPayment\"\n          variant=\"primary\"\n          style=\"font-size: 14px; padding: 10px 30px;\"\n        >\n          MAKE A PAYMENT\n        </b-button>\n      </div>\n    </div>\n\n    <div class=\"container mb-4\">\n      <div class=\"row\">\n        <home-pending-documents />\n\n        <home-appointments />\n      </div>\n    </div>\n  </layout>\n</template>\n\n<script>\nimport { mapGetters, mapState } from \"vuex\";\nimport Layout from \"../workspace/Layout.vue\";\nimport HomeAppointments from \"./HomeAppointments.vue\";\nimport HomePendingDocuments from \"./HomePendingDocuments.vue\";\nimport paymentMethodsServer from \"../../server/paymentMethod\";\nimport accessServer from \"../../server/accesses\";\n\nexport default {\n  name: \"Home\",\n  components: {\n    Layout,\n    HomeAppointments,\n    HomePendingDocuments\n  },\n  data() {\n    return {\n      accessValue: null\n    };\n  },\n  async mounted() {\n    this.accessValue = await accessServer.queryById(this.user.Id);\n  },\n  methods: {\n    goToPayment() {\n      window.open(this.practiceSuitePaymentLink, \"_blank\");\n    },\n    async getAllPaymentMethods() {\n      const response = await paymentMethodsServer.query(this.user.Patient.Id);\n      return response.data;\n    }\n  },\n  computed: {\n    ...mapGetters(\"session\", [\"user\"]),\n    ...mapState(\"session\", {\n      practiceSuitePaymentLink: state =>\n        state.systemSettings.practiceSuitePaymentLink,\n      isPracticeSuiteEnable: state => state.systemSettings.practiceSuiteEnable,\n      isPayaEnable: state => state.systemSettings.payaEnable\n    }),\n    userName() {\n      if (this.accessValue?.data?.relationship != \"Patient\") {\n        return this.user.Name;\n      } else {\n        return this.user.Patient.PreferredName?.length\n          ? this.user.Patient.PreferredName.concat(\n              \" \",\n              this.user.Patient.LastName\n            )\n          : this.user.Patient.FirstName.concat(\" \", this.user.Patient.LastName);\n      }\n    }\n  }\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=11f7bf05&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.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  \"11f7bf05\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-modal',{attrs:{\"title-html\":\"<div style='font-size:17px;'>Upload File</div>\"},on:{\"ok\":_vm.submitForm,\"shown\":_vm.calculateWidth},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function({ cancel }){return [_c('div',{staticClass:\"d-flex justify-content-between align-items-center w-100\"},[_c('div',{staticClass:\"text-left mt-1 mr-2\"}),_vm._v(\" \"),_c('div',{staticClass:\"text-right mt-1 mr-2\"},[_c('b-button',{attrs:{\"variant\":\"secondary\",\"disabled\":_vm.loading},on:{\"click\":cancel}},[_vm._v(\"Cancel\")]),_vm._v(\" \"),(_vm.uploadFileStep > 1)?_c('b-button',{staticClass:\"ml-2\",attrs:{\"variant\":\"primary\",\"disabled\":!_vm.file || _vm.loading},on:{\"click\":_vm.submitForm}},[(_vm.loading)?_c('b-spinner',{staticStyle:{\"width\":\"1rem\",\"height\":\"1rem\",\"color\":\"#ffffff\"},attrs:{\"label\":\"Spinning\"}}):_c('span',[_vm._v(\"Save\")])],1):_vm._e()],1)])]}}]),model:{value:(_vm.editorShown),callback:function ($$v) {_vm.editorShown=$$v},expression:\"editorShown\"}},[_vm._v(\" \"),_c('input',{ref:\"filePicture\",staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"accept\":\"image/*\",\"capture\":\"camera\"},on:{\"change\":_vm.previewPictureFile}}),_vm._v(\" \"),_c('canvas',{ref:\"canvas\",attrs:{\"id\":\"canvas\",\"width\":_vm.modalWidth,\"height\":_vm.modalWidth}}),_vm._v(\" \"),(_vm.uploadFileStep == 1)?_c('div',[_c('div',{staticClass:\"d-flex justify-content-center mb-4\"},[(_vm.isMobile)?_c('b-button',{staticClass:\"action-upload\",attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.takePicture}},[_vm._v(\"Take Picture\")]):_c('b-button',{staticClass:\"action-upload\",attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.showPictureTaker}},[_vm._v(\"\\n        Take Picture\\n      \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"border-bottom border-dark-gray separator-or\"}),_vm._v(\" \"),_c('div',{staticClass:\"d-flex justify-content-center mb-4\"},[_c('span',{staticClass:\"bg-white px-2\"},[_vm._v(\"OR\")])]),_vm._v(\" \"),_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('b-button',{staticClass:\"action-upload\",attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){_vm.uploadFileStep = 3}}},[_vm._v(\"\\n        Upload File\\n      \")])],1)]):_vm._e(),_vm._v(\" \"),(_vm.uploadFileStep == 2)?_c('div',[_c('div',{staticClass:\"text-center mb-2\"},[(_vm.file)?_c('img',{ref:\"preview\",attrs:{\"height\":_vm.isMobile ? null : _vm.modalWidth,\"width\":_vm.modalWidth,\"src\":_vm.fileUrl}}):_c('video',{ref:\"video\",attrs:{\"id\":\"video\",\"width\":_vm.modalWidth,\"height\":_vm.modalWidth,\"autoplay\":\"\"}})]),_vm._v(\" \"),_c('div',{staticClass:\"d-flex justify-content-center\"},[(!_vm.file)?_c('b-button',{staticClass:\"action-upload rounded-circle\",staticStyle:{\"width\":\"40px\",\"height\":\"40px\",\"padding\":\"2px 0px 0px\"},attrs:{\"variant\":\"outline-secondary\"},on:{\"click\":_vm.savePicture}},[_c('i',{staticClass:\"fas fa-camera\",staticStyle:{\"font-size\":\"18px\"}})]):_c('a',{staticClass:\"mt-1\",staticStyle:{\"font-size\":\"14px\"},attrs:{\"variant\":\"primary\"},on:{\"click\":() => (_vm.isMobile ? _vm.takePicture() : _vm.showPictureTaker())}},[_vm._v(\"\\n        Retake\\n      \")])],1)]):_vm._e(),_vm._v(\" \"),(_vm.uploadFileStep == 3)?_c('div',[_c('b-form-file',{ref:\"fileUpload\",attrs:{\"disabled\":_vm.loading},model:{value:(_vm.file),callback:function ($$v) {_vm.file=$$v},expression:\"file\"}}),_vm._v(\" \"),(_vm.fileErrors.length > 0)?_c('b-alert',{staticClass:\"mt-2\",attrs:{\"show\":\"\",\"variant\":\"danger\"}},[_vm._v(_vm._s(_vm.fileErrors[0]))]):_vm._e()],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <b-modal\n    v-model=\"editorShown\"\n    @ok=\"submitForm\"\n    title-html=\"<div style='font-size:17px;'>Upload File</div>\"\n    @shown=\"calculateWidth\"\n  >\n    <template v-slot:modal-footer=\"{ cancel }\">\n      <div class=\"d-flex justify-content-between align-items-center w-100\">\n        <div class=\"text-left mt-1 mr-2\"></div>\n        <div class=\"text-right mt-1 mr-2\">\n          <b-button @click=\"cancel\" variant=\"secondary\" :disabled=\"loading\"\n            >Cancel</b-button\n          >\n          <b-button\n            v-if=\"uploadFileStep > 1\"\n            class=\"ml-2\"\n            variant=\"primary\"\n            @click=\"submitForm\"\n            :disabled=\"!file || loading\"\n          >\n            <b-spinner\n              v-if=\"loading\"\n              style=\"width: 1rem; height: 1rem; color: #ffffff;\"\n              label=\"Spinning\"\n            ></b-spinner>\n            <span v-else>Save</span>\n          </b-button>\n        </div>\n      </div>\n    </template>\n    <input\n      ref=\"filePicture\"\n      @change=\"previewPictureFile\"\n      type=\"file\"\n      style=\"display: none;\"\n      accept=\"image/*\"\n      capture=\"camera\"\n    />\n    <canvas\n      ref=\"canvas\"\n      id=\"canvas\"\n      :width=\"modalWidth\"\n      :height=\"modalWidth\"\n    ></canvas>\n    <div v-if=\"uploadFileStep == 1\">\n      <div class=\"d-flex justify-content-center mb-4\">\n        <b-button\n          v-if=\"isMobile\"\n          class=\"action-upload\"\n          @click=\"takePicture\"\n          variant=\"primary\"\n          >Take Picture</b-button\n        >\n        <b-button\n          v-else\n          class=\"action-upload\"\n          @click=\"showPictureTaker\"\n          variant=\"primary\"\n        >\n          Take Picture\n        </b-button>\n      </div>\n      <div class=\"border-bottom border-dark-gray separator-or\"></div>\n      <div class=\"d-flex justify-content-center mb-4\">\n        <span class=\"bg-white px-2\">OR</span>\n      </div>\n      <div class=\"d-flex justify-content-center\">\n        <b-button\n          class=\"action-upload\"\n          @click=\"uploadFileStep = 3\"\n          variant=\"primary\"\n        >\n          Upload File\n        </b-button>\n      </div>\n    </div>\n    <div v-if=\"uploadFileStep == 2\">\n      <div class=\"text-center mb-2\">\n        <img\n          ref=\"preview\"\n          v-if=\"file\"\n          :height=\"isMobile ? null : modalWidth\"\n          :width=\"modalWidth\"\n          :src=\"fileUrl\"\n        />\n        <video\n          v-else\n          ref=\"video\"\n          id=\"video\"\n          :width=\"modalWidth\"\n          :height=\"modalWidth\"\n          autoplay\n        ></video>\n      </div>\n      <div class=\"d-flex justify-content-center\">\n        <b-button\n          v-if=\"!file\"\n          class=\"action-upload rounded-circle\"\n          @click=\"savePicture\"\n          variant=\"outline-secondary\"\n          style=\"width: 40px; height:40px;padding: 2px 0px 0px;\"\n        >\n          <i style=\"font-size:18px\" class=\"fas fa-camera\"></i>\n        </b-button>\n        <a\n          class=\"mt-1\"\n          v-else\n          style=\"font-size: 14px;\"\n          @click=\"() => (isMobile ? takePicture() : showPictureTaker())\"\n          variant=\"primary\"\n        >\n          Retake\n        </a>\n      </div>\n    </div>\n    <div v-if=\"uploadFileStep == 3\">\n      <b-form-file\n        :disabled=\"loading\"\n        v-model=\"file\"\n        ref=\"fileUpload\"\n      ></b-form-file>\n      <b-alert\n        class=\"mt-2\"\n        v-if=\"fileErrors.length > 0\"\n        show\n        variant=\"danger\"\n        >{{ fileErrors[0] }}</b-alert\n      >\n    </div>\n  </b-modal>\n</template>\n\n<script>\nimport { isMobile } from \"../../helpers/general\";\nimport documentServer from \"../../server/document\";\nimport documentGroupServer from \"../../server/documentGroup\";\nexport default {\n  name: \"DocumentFileUploadModal\",\n  props: [\"sharedDocumentId\", \"isFormGroup\"],\n  data() {\n    return {\n      file: null,\n      fileUrl: null,\n      uploadFileStep: 1,\n      modalWidth: 0,\n      isMobile: isMobile(),\n      fileErrors: [],\n      loading: false\n    };\n  },\n  async mounted() {\n    this.file = null;\n    this.uploadFileStep = 1;\n  },\n  methods: {\n    async submitForm() {\n      this.loading = true;\n      if (this.fileSizeIsOk()) {\n        if (this.isFormGroup) {\n          try {\n            await documentGroupServer.upload(this.sharedDocumentId, {\n              file: this.file\n            });\n            this.loading = false;\n          } catch (error) {\n            this.loading = false;\n          }\n        } else {\n          try {\n            await documentServer.upload(this.sharedDocumentId, {\n              file: this.file\n            });\n            this.loading = false;\n          } catch (error) {\n            this.loading = false;\n          }\n        }\n        this.$emit(\"onModify\");\n      }\n    },\n    showPictureTaker() {\n      this.file = null;\n      this.uploadFileStep = 2;\n      if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n        navigator.mediaDevices\n          .getUserMedia({\n            video: {\n              width: {\n                min: this.modalWidth,\n                ideal: this.modalWidth,\n                max: this.modalWidth\n              },\n              height: {\n                min: this.modalWidth,\n                ideal: this.modalWidth,\n                max: this.modalWidth\n              }\n            }\n          })\n          .then(stream => {\n            this.$refs.video.srcObject = stream;\n            this.$refs.video.play();\n          });\n      }\n    },\n    async savePicture() {\n      this.imgHeigth = this.$refs.video.clientHeight;\n      this.$refs.canvas\n        .getContext(\"2d\")\n        .drawImage(this.$refs.video, 0, 0, this.modalWidth, this.modalWidth);\n      var url = this.$refs.canvas.toDataURL(\"image/png\");\n      this.fileUrl = url;\n      await fetch(url)\n        .then(res => res.blob())\n        .then(blob => {\n          this.file = new File([blob], \"File name\", { type: \"image/png\" });\n        });\n    },\n    calculateWidth() {\n      let box = document.querySelector(\".modal-body\");\n      let width = box.clientWidth - 32;\n      this.modalWidth = width;\n    },\n    takePicture() {\n      this.$refs.filePicture.click();\n    },\n    async previewPictureFile(event) {\n      const file = event.srcElement.files[0];\n      var self = this;\n      if (file) {\n        self.file = null;\n        self.uploadFileStep = 2;\n        var reader = new FileReader();\n        reader.readAsDataURL(file);\n        reader.onloadend = function(e) {\n          var myImage = new Image(); // Creates image object\n          myImage.src = e.target.result; // Assigns converted image to image object\n          myImage.onload = function() {\n            var myContext = self.$refs.canvas.getContext(\"2d\"); // Creates a contect object\n            self.$refs.canvas.width = myImage.width; // Assigns image's width to canvas\n            self.$refs.canvas.height = myImage.height; // Assigns image's height to canvas\n            myContext.drawImage(myImage, 0, 0); // Draws the image on canvas\n            var url = self.$refs.canvas.toDataURL(\"image/png\");\n            self.fileUrl = url;\n            self.$refs.canvas.toBlob(async function(blob) {\n              self.file = new File([blob], \"File name\", { type: \"image/png\" });\n            });\n          };\n        };\n      }\n    },\n    fileSizeIsOk() {\n      this.fileErrors = [];\n      const fileSize = (this.file.size / 1024 / 1024).toFixed(4);\n      if (fileSize > 100) {\n        this.fileErrors.push(\"File max size 100 mb\");\n        return false;\n      }\n      return true;\n    }\n  },\n  computed: {\n    editorShown: {\n      get() {\n        return !!this.$attrs.value;\n      },\n      set(value) {\n        this.$emit(\"input\", value);\n      }\n    }\n  }\n};\n</script>\n\n<style scoped>\n.separator-or {\n  margin-bottom: -13px;\n}\n.action-upload {\n  font-size: 13px;\n}\ncanvas {\n  display: none;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentFileUploadModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentFileUploadModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DocumentFileUploadModal.vue?vue&type=template&id=67a257cb&scoped=true&\"\nimport script from \"./DocumentFileUploadModal.vue?vue&type=script&lang=js&\"\nexport * from \"./DocumentFileUploadModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DocumentFileUploadModal.vue?vue&type=style&index=0&id=67a257cb&prod&scoped=true&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  \"67a257cb\",\n  null\n  \n)\n\nexport default component.exports","import api from \"./core\";\nimport SessionService from \"./session\";\n\nconst basePath = \"api/portal/DocumentGroups\";\n\nexport default {\n  async get(id) {\n    const { data } = await api.get(`${basePath}/${id}`);\n    return data;\n  },\n  async update(id, data) {\n    const { data: result } = await api.patch(`${basePath}/${id}`, data);\n    return result;\n  },\n  delete(id) {\n    return api.delete(`${basePath}/${id}`);\n  },\n  query(formId, clientId, eocId) {\n    return api.post(`${basePath}/ByEoc/${formId}/${eocId}`);\n  },\n  async create(data) {\n    const { data: result } = await api.put(`${basePath}`, data);\n    return result;\n  },\n  render(documentGroupId) {\n    return api.get(`${basePath}/RenderDocumentGroup/${documentGroupId}`);\n  },\n  viewUrl(id) {\n    return `${api.defaults.baseURL}${basePath}/Download/${\n      SessionService.session().token\n    }/${id}`;\n  },\n  upload(sharedDocumentId, data) {\n    const { file } = data;\n    const formData = new FormData();\n    if (file) formData.append(\"File\", file);\n    const config = {\n      headers: {\n        \"content-type\": \"multipart/form-data\"\n      }\n    };\n    return api.put(`${basePath}/Upload/${sharedDocumentId}`, formData, config);\n  }\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeAppointments.vue?vue&type=style&index=0&id=69ecb697&prod&lang=css&\""],"sourceRoot":""}