{"version":3,"sources":["webpack:///./src/components/customer/customer-form.component.vue?10df","webpack:///./src/constants/event-log-names.constants.ts","webpack:///./src/components/customer/customer-form.component.vue","webpack:///./src/components/customer/customer-form.component.vue?39d1","webpack:///./src/components/customer/customer-form.component.vue?7faf","webpack:///./src/constants/phone-number-type.ts","webpack:///./src/components/registration/manage-tag-form.component.vue?a935","webpack:///./src/components/registration/manage-tag-form.component.vue","webpack:///./src/components/registration/manage-tag-form.component.vue?8cca","webpack:///./src/components/registration/manage-tag-form.component.vue?b88f","webpack:///./src/mixins/customer-show-field.mixin.ts","webpack:///./src/components/shared/loading.component.vue?fbef","webpack:///./src/components/shared/loading.component.vue","webpack:///./src/components/shared/loading.component.vue?fcaf","webpack:///./src/components/shared/loading.component.vue?09c3","webpack:///./src/constants/preferred-contact-method-type.ts","webpack:///./src/constants/regex.constants.ts","webpack:///./node_modules/vue-recaptcha/dist/vue-recaptcha.es.js"],"names":["EventLogNames","render","_vm","this","_h","$createElement","_c","_self","_v","_s","title","staticClass","code","roles","includes","role","Admin","currentRegisteredTag","attrs","on","onEditTagClick","_e","ref","scopedSlots","_u","key","fn","handleSubmit","reset","$event","preventDefault","onSaveClick","classes","class","disableEmailEditing","onEmailInput","model","value","callback","$$v","email","trim","expression","customerId","disabledEmailLookup","onEmailLookupClick","onClearResultsClick","firstName","lastName","methodOfContact","selectedMethodOfContact","directives","name","rawName","phone","address1","address2","city","state","zipCode","required","regex","RegExp","RegexConstants","URL","website","terms","routeName","public","page","veterinarian","addCustomer","admin","registrations","showButtonLoading","showTagButtonLoading","veterinarianAdmin","onChangeOwnershipClick","register","onShowCompleteLaterConfirmDialog","registerLater","onCompletionHandler","staticRenderFns","customerModule","store","registeredTagModule","authenticationModule","CustomerFormComponent","addingExistingCustomerToNewRegistration","selectedPhoneType","showEmailSearchLoading","Object","entries","map","text","phoneType","currentCustomer","customer","$route","params","tagCode","jwtRoles","jwtVeterinarianOfficeId","Veterinarian","newVal","oldVal","errors","getAllErrorMessages","$toasted","error","join","clearCurrentCustomerAction","resetCurrentTagAction","createRegistration","getTagByCodeAction","errorResponse","errorTagResponse","getCustomerModelForEditing","phoneNumberTypeId","toString","preferredContactMethodId","phoneNumber","customerForm","result","values","valid","getCustomerByEmailAction","errorLookupResponse","methodId","find","type","Call","Address","Text","Mobile","Website","setCustomerBaseModelForSaving","updateCustomer","registerCustomer","addNewTagAction","veterinarianOfficeId","registerCustomerIfNeededAction","updateTagAction","id","success","navigateOut","updateCustomerAction","getAllTagsByVeterinarianOfficeIdAction","selectedVeterinarianOfficeId","editCustomer","createCustomer","$router","push","resetFormFields","info","duration","fullWidth","fitToScreen","className","replace","eventLogService","get","EventLogService","logEvent","eventName","completeLaterButtonClick","$bvModal","msgBoxConfirm","okVariant","okTitle","cancelTitle","onCompleteLaterClick","show","newTagCode","hide","default","HTMLFormElement","deep","components","ValidationObserver","ValidationProvider","VueRecaptcha","LoadingComponent","ManageTagFormComponent","computed","showLoading","component","PhoneNumberType","onHideEvent","onManageTagSaveClick","current","tag","onCancelClick","manageTagForm","$emit","CustomerShowFieldMixin","$data","PreferredContactMethodType","_extends","assign","target","i","arguments","length","source","prototype","hasOwnProperty","call","apply","defer","callbacks","resolve","val","len","then","cb","deferred","resolved","promise","ownProp","createRecaptcha","notify","wait","ele","options","window","grecaptcha","widgetId","assertLoaded","execute","checkRecaptchaLoad","Error","recaptcha","vueRecaptchaApiLoaded","props","sitekey","String","theme","badge","size","tabindex","loadRecaptchaScript","Boolean","recaptchaScriptId","recaptchaHost","language","beforeMount","document","getElementById","script","createElement","src","async","head","appendChild","mounted","_this","opts","$props","emitVerify","emitExpired","emitError","container","$slots","$el","children","$widgetId","methods","response","h"],"mappings":"uHAAA,ICAYA,EDARC,OAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACA,EAAG,KAAK,CAACJ,EAAIM,GAAGN,EAAIO,GAAGP,EAAIQ,UAAUJ,EAAG,KAAK,CAACK,YAAY,yBAAyB,CAACT,EAAIM,GAAG,IAAIN,EAAIO,GAAGP,EAAIU,MAAM,KAAMV,EAAIW,MAAMC,SAASZ,EAAIa,KAAKC,QAAUd,EAAIe,qBAAsBX,EAAG,WAAW,CAACY,MAAM,CAAC,QAAU,QAAQC,GAAG,CAAC,MAAQjB,EAAIkB,iBAAiB,CAACd,EAAG,cAAcJ,EAAIM,GAAG,eAAe,GAAGN,EAAImB,MAAM,KAAKf,EAAG,qBAAqB,CAACgB,IAAI,eAAeC,YAAYrB,EAAIsB,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,SAASJ,GACxgB,IAAIK,EAAeL,EAAIK,aACnBC,EAAQN,EAAIM,MAChB,MAAO,CAACtB,EAAG,OAAO,CAACa,GAAG,CAAC,OAAS,SAASU,GAAgC,OAAxBA,EAAOC,iBAAwBH,EAAazB,EAAI6B,cAAc,MAAQ,SAASF,GAAgC,OAAxBA,EAAOC,iBAAwBF,EAAMC,MAAW,CAACvB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACY,MAAM,CAAC,GAAK,KAAK,GAAK,IAAI,GAAK,MAAM,CAACZ,EAAG,QAAQ,CAACJ,EAAIM,GAAG,UAAUF,EAAG,OAAO,CAACK,YAAY,eAAe,CAACT,EAAIM,GAAG,SAAUN,EAAsB,mBAAEI,EAAG,MAAM,CAACK,YAAY,oBAAoB,CAACT,EAAIM,GAAG,8EAA8EN,EAAImB,KAAKf,EAAG,eAAe,CAACA,EAAG,qBAAqB,CAACY,MAAM,CAAC,MAAQ,kBAAkBK,YAAYrB,EAAIsB,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,SAASJ,GACzmB,IAAIU,EAAUV,EAAIU,QAClB,MAAO,CAAC1B,EAAG,gBAAgB,CAACA,EAAG,eAAe,CAAC2B,MAAMD,EAAQd,MAAM,CAAC,YAAc,gBAAgB,SAAWhB,EAAIgC,qBAAqBf,GAAG,CAAC,MAAQ,SAASU,GAAQ,OAAO3B,EAAIiC,aAAaN,KAAUO,MAAM,CAACC,MAAOnC,EAAS,MAAEoC,SAAS,SAAUC,GAAMrC,EAAIsC,MAAsB,kBAARD,EAAkBA,EAAIE,OAAQF,GAAMG,WAAW,WAAaxC,EAAIyC,WAA+QzC,EAAImB,KAAvQf,EAAG,uBAAuB,CAACA,EAAG,WAAW,CAACY,MAAM,CAAC,KAAO,KAAK,SAAWhB,EAAI0C,qBAAqBzB,GAAG,CAAC,MAAQjB,EAAI2C,qBAAqB,CAACvC,EAAG,iBAAkBJ,EAA0B,uBAAEI,EAAG,yBAAyB,CAACY,MAAM,CAAC,UAAY,UAAUhB,EAAImB,MAAM,IAAI,IAAa,GAAInB,EAAsB,mBAAEI,EAAG,MAAM,CAACK,YAAY,oBAAoB,CAACT,EAAIM,GAAG,qCAAqCN,EAAImB,SAAS,MAAK,KAASnB,EAA2C,wCAAEI,EAAG,WAAW,CAACK,YAAY,OAAOO,MAAM,CAAC,QAAU,OAAO,KAAO,MAAMC,GAAG,CAAC,MAAQjB,EAAI4C,sBAAsB,CAACxC,EAAG,cAAc,CAACA,EAAG,cAAc,CAACY,MAAM,CAAC,MAAQ,MAAM,UAAU,KAAK,UAAU,IAAI,QAAU,GAAG,OAAS,QAAQZ,EAAG,gBAAgB,CAACY,MAAM,CAAC,MAAQ,MAAM,QAAU,OAAO,GAAGhB,EAAIM,GAAG,mBAAmB,GAAGN,EAAImB,MAAM,GAAGf,EAAG,QAAQ,CAACJ,EAAIM,GAAG,UAAUF,EAAG,eAAe,CAACA,EAAG,eAAe,CAACY,MAAM,CAAC,YAAc,cAAckB,MAAM,CAACC,MAAOnC,EAAa,UAAEoC,SAAS,SAAUC,GAAMrC,EAAI6C,UAA0B,kBAARR,EAAkBA,EAAIE,OAAQF,GAAMG,WAAW,gBAAgB,GAAGpC,EAAG,eAAe,CAACA,EAAG,eAAe,CAACY,MAAM,CAAC,YAAc,aAAakB,MAAM,CAACC,MAAOnC,EAAY,SAAEoC,SAAS,SAAUC,GAAMrC,EAAI8C,SAAyB,kBAART,EAAkBA,EAAIE,OAAQF,GAAMG,WAAW,eAAe,IAAI,GAAGpC,EAAG,QAAQ,CAACY,MAAM,CAAC,GAAK,KAAK,GAAK,IAAI,GAAK,MAAM,CAACZ,EAAG,QAAQ,CAACJ,EAAIM,GAAG,gCAAgCF,EAAG,OAAO,CAACK,YAAY,eAAe,CAACT,EAAIM,GAAG,SAASF,EAAG,qBAAqB,CAACY,MAAM,CAAC,MAAQ,WAAW,IAAM,UAAUK,YAAYrB,EAAIsB,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,SAASJ,GAC/zD,IAAIU,EAAUV,EAAIU,QAClB,MAAO,CAAC1B,EAAG,eAAe,CAACA,EAAG,qBAAqB,CAAC2B,MAAMD,EAAQd,MAAM,CAAC,QAAUhB,EAAI+C,gBAAgB,KAAO,qBAAqBb,MAAM,CAACC,MAAOnC,EAA2B,wBAAEoC,SAAS,SAAUC,GAAMrC,EAAIgD,wBAAwBX,GAAKG,WAAW,8BAA8B,OAAO,MAAK,KAASxC,EAAkB,eAAEI,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACY,MAAM,CAAC,GAAK,KAAK,GAAK,IAAI,GAAK,MAAM,CAACZ,EAAG,eAAe,CAACA,EAAG,QAAQ,CAACJ,EAAIM,GAAG,UAAUF,EAAG,qBAAqB,CAAC6C,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,gBAAgBnC,MAAM,CAAC,MAAQ,mBAAmBZ,EAAG,OAAO,CAACK,YAAY,eAAe,CAACT,EAAIM,GAAG,SAAS,GAAGF,EAAG,qBAAqB,CAACY,MAAM,CAAC,MAAQ,kCAAkCK,YAAYrB,EAAIsB,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,SAASJ,GAC5sB,IAAIU,EAAUV,EAAIU,QAClB,MAAO,CAAC1B,EAAG,eAAe,CAAC2B,MAAMD,EAAQd,MAAM,CAAC,YAAc,gBAAgBkB,MAAM,CAACC,MAAOnC,EAAS,MAAEoC,SAAS,SAAUC,GAAMrC,EAAIoD,MAAsB,kBAARf,EAAkBA,EAAIE,OAAQF,GAAMG,WAAW,eAAe,MAAK,MAAS,IAAI,IAAI,GAAGxC,EAAImB,KAAMnB,EAAqB,kBAAEI,EAAG,MAAM,CAACA,EAAG,eAAe,CAACA,EAAG,QAAQ,CAACJ,EAAIM,GAAG,YAAYF,EAAG,OAAO,CAACK,YAAY,eAAe,CAACT,EAAIM,GAAG,SAASF,EAAG,qBAAqB,CAACY,MAAM,CAAC,MAAQ,YAAYK,YAAYrB,EAAIsB,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,SAASJ,GAChe,IAAIU,EAAUV,EAAIU,QAClB,MAAO,CAAC1B,EAAG,eAAe,CAAC2B,MAAMD,EAAQd,MAAM,CAAC,YAAc,kBAAkBkB,MAAM,CAACC,MAAOnC,EAAY,SAAEoC,SAAS,SAAUC,GAAMrC,EAAIqD,SAAyB,kBAARhB,EAAkBA,EAAIE,OAAQF,GAAMG,WAAW,kBAAkB,MAAK,MAAS,GAAGpC,EAAG,eAAe,CAACA,EAAG,qBAAqB,CAACA,EAAG,eAAe,CAACY,MAAM,CAAC,YAAc,0BAA0BkB,MAAM,CAACC,MAAOnC,EAAY,SAAEoC,SAAS,SAAUC,GAAMrC,EAAIsD,SAAyB,kBAARjB,EAAkBA,EAAIE,OAAQF,GAAMG,WAAW,eAAe,IAAI,GAAGpC,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACY,MAAM,CAAC,GAAK,KAAK,GAAK,KAAK,GAAK,MAAM,CAACZ,EAAG,eAAe,CAACA,EAAG,qBAAqB,CAACY,MAAM,CAAC,MAAQ,YAAYK,YAAYrB,EAAIsB,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,SAASJ,GAC9pB,IAAIU,EAAUV,EAAIU,QAClB,MAAO,CAAC1B,EAAG,eAAe,CAAC2B,MAAMD,EAAQd,MAAM,CAAC,YAAc,QAAQkB,MAAM,CAACC,MAAOnC,EAAQ,KAAEoC,SAAS,SAAUC,GAAMrC,EAAIuD,KAAqB,kBAARlB,EAAkBA,EAAIE,OAAQF,GAAMG,WAAW,cAAc,MAAK,MAAS,IAAI,GAAGpC,EAAG,QAAQ,CAACY,MAAM,CAAC,KAAO,IAAI,GAAK,MAAM,CAACZ,EAAG,eAAe,CAACA,EAAG,qBAAqB,CAACY,MAAM,CAAC,MAAQ,wBAAwBK,YAAYrB,EAAIsB,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,SAASJ,GACtY,IAAIU,EAAUV,EAAIU,QAClB,MAAO,CAAC1B,EAAG,eAAe,CAAC2B,MAAMD,EAAQd,MAAM,CAAC,YAAc,SAASkB,MAAM,CAACC,MAAOnC,EAAS,MAAEoC,SAAS,SAAUC,GAAMrC,EAAIwD,MAAsB,kBAARnB,EAAkBA,EAAIE,OAAQF,GAAMG,WAAW,eAAe,MAAK,MAAS,IAAI,GAAGpC,EAAG,QAAQ,CAACY,MAAM,CAAC,KAAO,IAAI,GAAK,MAAM,CAACZ,EAAG,eAAe,CAACK,YAAY,QAAQ,CAACL,EAAG,qBAAqB,CAACY,MAAM,CAAC,MAAQ,yBAAyBK,YAAYrB,EAAIsB,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,SAASJ,GACha,IAAIU,EAAUV,EAAIU,QAClB,MAAO,CAAC1B,EAAG,eAAe,CAAC2B,MAAMD,EAAQd,MAAM,CAAC,YAAc,YAAYkB,MAAM,CAACC,MAAOnC,EAAW,QAAEoC,SAAS,SAAUC,GAAMrC,EAAIyD,QAAwB,kBAARpB,EAAkBA,EAAIE,OAAQF,GAAMG,WAAW,iBAAiB,MAAK,MAAS,IAAI,IAAI,IAAI,GAAGxC,EAAImB,KAAMnB,EAAoB,iBAAEI,EAAG,eAAe,CAACA,EAAG,QAAQ,CAACJ,EAAIM,GAAG,YAAYF,EAAG,OAAO,CAACK,YAAY,eAAe,CAACT,EAAIM,GAAG,SAASF,EAAG,qBAAqB,CAACY,MAAM,CAAC,MAAQ,CAChZ0C,UAAU,EAEVC,MAAO,IAAIC,OAAO5D,EAAI6D,eAAeC,IAAK,QACzCzC,YAAYrB,EAAIsB,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,SAASJ,GAClD,IAAIU,EAAUV,EAAIU,QAChC,MAAO,CAAC1B,EAAG,eAAe,CAAC2B,MAAMD,EAAQd,MAAM,CAAC,YAAc,gDAAgDkB,MAAM,CAACC,MAAOnC,EAAW,QAAEoC,SAAS,SAAUC,GAAMrC,EAAI+D,QAAwB,kBAAR1B,EAAkBA,EAAIE,OAAQF,GAAMG,WAAW,iBAAiB,MAAK,MAAS,GAAGxC,EAAImB,MAAM,IAAI,GAAGf,EAAG,MAAMA,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACK,YAAY,aAAa,CAACL,EAAG,kBAAkB,CAACY,MAAM,CAAC,OAAQ,EAAK,mBAAkB,EAAM,OAAS,IAAIkB,MAAM,CAACC,MAAOnC,EAAS,MAAEoC,SAAS,SAAUC,GAAMrC,EAAIgE,MAAM3B,GAAKG,WAAW,UAAU,CAACpC,EAAG,MAAM,CAACK,YAAY,uBAAuB,CAACT,EAAIM,GAAG,oBAAoBF,EAAG,SAAS,CAACY,MAAM,CAAC,GAAK,CAAEkC,KAAMlD,EAAIiE,UAAUC,OAAOF,OAAQ,OAAS,WAAW,CAAChE,EAAIM,GAAG,wBAAwBN,EAAIM,GAAG,OAAO,MAAM,GAC7sBN,EAAIyC,YACJzC,EAAImE,OAASnE,EAAIiE,UAAUG,aAAaC,aACxCrE,EAAImE,OAASnE,EAAIiE,UAAUK,MAAMD,YACjCjE,EAAG,MAAM,CAACK,YAAY,0DAA0D,CAACL,EAAG,iBAAiB,CAACK,YAAY,QAAQ,CAACL,EAAG,WAAW,CAACY,MAAM,CAAC,QAAU,SAAS,GAAK,CACrKkC,KAAMlD,EAAIW,MAAMC,SAASZ,EAAIa,KAAKC,OAC9Bd,EAAIiE,UAAUK,MAAMC,cACpBvE,EAAIiE,UAAUG,aAAaG,iBAC7B,CAACvE,EAAIM,GAAG,YAAYF,EAAG,WAAW,CAACY,MAAM,CAAC,QAAU,YAAY,KAAO,SAAS,UAAYhB,EAAIgE,QAAQ,CAAChE,EAAIM,GAAG,UAAWN,EAAIwE,mBAAqBxE,EAAIyE,qBAAsBrE,EAAG,yBAAyB,CAACY,MAAM,CAAC,UAAY,UAAUhB,EAAImB,MAAM,IAAI,GAC1PnB,EAAIyC,aACHzC,EAAI0E,mBAAqB1E,EAAIW,MAAMC,SAASZ,EAAIa,KAAKC,QACtDV,EAAG,WAAW,CAACK,YAAY,4BAA4BO,MAAM,CAAC,QAAU,WAAWC,GAAG,CAAC,MAAQjB,EAAI2E,yBAAyB,CAACvE,EAAG,qBAAqBJ,EAAIM,GAAG,2BAA2B,GAAGN,EAAImB,MAAM,GAAGf,EAAG,MAAM,CAACA,EAAG,MAAM,CAACK,YAAY,0DAA0D,CAACL,EAAG,iBAAiB,CAACK,YAAY,QAAQ,CAACL,EAAG,WAAW,CAACY,MAAM,CAAC,QAAU,SAAS,GAAK,CAAEkC,KAAMlD,EAAIiE,UAAUG,aAAaQ,YAAa,CAAC5E,EAAIM,GAAG,YAAYF,EAAG,WAAW,CAACY,MAAM,CAAC,QAAU,WAAWC,GAAG,CAAC,MAAQjB,EAAI6E,mCAAmC,CAAC7E,EAAIM,GAAG,mBAAoBN,EAAIyE,sBAAwBzE,EAAI8E,cAAe1E,EAAG,yBAAyB,CAACY,MAAM,CAAC,UAAY,UAAUhB,EAAImB,MAAM,GAAGf,EAAG,WAAW,CAACY,MAAM,CAAC,QAAU,YAAY,KAAO,SAAS,UAAYhB,EAAIgE,QAAQ,CAAChE,EAAIM,GAAG,UACpwBN,EAAIwE,mBACHxE,EAAIyE,uBAAyBzE,EAAI8E,cAClC1E,EAAG,yBAAyB,CAACY,MAAM,CAAC,UAAY,UAAUhB,EAAImB,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,UAAUf,EAAG,yBAAyB,CAACY,MAAM,CAAC,QAAUhB,EAAIe,sBAAsBE,GAAG,CAAC,qBAAqBjB,EAAI+E,uBAAwB/E,EAAe,YAAEI,EAAG,oBAAoBJ,EAAImB,MAAM,IACrS6D,EAAkB,G,+SCtCtB,SAAYlF,GACV,0DADF,CAAYA,MAAa,K,8CCsXzB,MAAMmF,EAAiC,eAAU,OAAgBC,EAAA,MAE3DC,EAA2C,eAC/C,OACAD,EAAA,MAGIE,EAA6C,eACjD,OACAF,EAAA,MA2BF,IAAqB,EAArB,MAAqBG,8BAA8B,eACjD,SADF,c,oBAiBS,KAAAP,eAAgB,EAChB,KAAAQ,yCAA0C,EAC1C,KAAAzC,UAAY,GACZ,KAAAC,SAAW,GACX,KAAAR,MAAQ,GACR,KAAA0B,OAAQ,EACR,KAAAuB,kBAAoB,GACpB,KAAAnC,MAAQ,GACR,KAAAC,SAAW,GACX,KAAAC,SAAW,GACX,KAAAC,KAAO,GACP,KAAAC,MAAQ,GACR,KAAAC,QAAU,GACV,KAAAM,QAAU,GACV,KAAArB,qBAAsB,EACtB,KAAA8C,wBAAyB,EAMzB,KAAAzC,gBAAkC0C,OAAOC,QAC9C,QACAC,IAAI,EAAEpE,EAAKY,MACJ,CACLyD,KAAMrE,EACNY,MAAOA,KAIJ,KAAA0D,UAA4BJ,OAAOC,QAAQ,QAAiBC,IACjE,EAAEpE,EAAKY,MACE,CACLyD,KAAMrE,EACNY,MAAOA,KAjBb,qBACE,OAAO,OAwBT,0BACE,SAAIlC,KAAKqF,0CAA2CrF,KAAK6F,qBAKvD7F,KAAKc,uBACLd,KAAKc,qBAAqBgF,UAC1B9F,KAAKkE,OAASlE,KAAKgE,UAAUG,aAAaC,aAC1CpE,KAAKkE,OAASlE,KAAKgE,UAAUK,MAAMD,aAQvC,iBACE,OAAOpE,KAAK+F,OAAOC,OAAOxD,WAG5B,WACE,OAAOxC,KAAK+F,OAAOC,OAAOC,QAG5B,gBACE,OAAO,OAGT,WACE,OAAOjG,KAAK+F,OAAO9C,KAGrB,WACE,OAAO,OAGT,YACE,OAAOkC,EAAqBe,SAG9B,2BACE,OAAOf,EAAqBgB,wBAG9B,wBACE,OAAOhB,EAAqBe,SAASvF,SAAS,OAAKyF,cAGrD,yBACE,QAAIpG,KAAKkE,QACClE,KAAKkE,KAAKvD,SAAS,YAAcX,KAAKkE,KAAKvD,SAAS,UAOxD,iCAAiC0F,EAAgBC,GACnDD,IAAWC,GAAqB,KAAXA,GACvBtG,KAAKyB,QAKD,uBAAuBS,GAC7B,GAAIA,EAAO,CACT,MAAMqE,EAASrE,EAAMsE,sBACrB,OAAOxG,KAAKyG,SAASC,MAAMH,EAAOI,SAK9B,0BAA0BzE,GAChC,GAAIA,EAAO,CACT,MAAMqE,EAASrE,EAAMsE,sBACrB,OAAOxG,KAAKyG,SAASC,MAAMH,EAAOI,SAI/B,sBACC3B,EAAe4B,mCACf1B,EAAoB2B,wBAEtB7G,KAAKkE,OAAS,OAAUC,aAAa2C,2BACjC5B,EAAoB6B,mBAAmB/G,KAAKS,OAG/CT,KAAKgH,gBACLhH,KAAKiH,kBACNjH,KAAKc,sBACLd,KAAKc,qBAAqBgF,UAC1B9F,KAAKkE,OAAS,OAAUC,aAAaC,aAErCpE,KAAKkH,2BAA2BlH,KAAKc,qBAAqBgF,WAKzD,2BAA2BA,GAClB,MAAVA,IACF9F,KAAKqC,MAAQyD,EAASzD,MACtBrC,KAAK4C,UAAYkD,EAASlD,WAAa,GACvC5C,KAAK6C,SAAWiD,EAASjD,UAAY,GACrC7C,KAAKsF,mBAAoB,UAAAQ,EAASqB,yBAAT,eAA4BC,aAAc,GACnEpH,KAAK+C,wBACH+C,EAASuB,yBAAyBD,YAAc,GAClDpH,KAAKmD,MAAQ2C,EAASwB,aAAe,GACrCtH,KAAKoD,SAAW0C,EAAS1C,UAAY,GACrCpD,KAAKqD,SAAWyC,EAASzC,UAAY,GACrCrD,KAAKsD,KAAOwC,EAASxC,MAAQ,GAC7BtD,KAAKuD,MAAQuC,EAASvC,OAAS,GAC/BvD,KAAKwD,QAAUsC,EAAStC,SAAW,GACnCxD,KAAK8D,QAAUgC,EAAShC,SAAW,IAIhC,QAGL9D,KAAKuH,aAAa9F,QAGb,mBAAmBS,GAExB,MAAMsF,QAAiC,eACrCxH,KAAKqC,MACL,iBACA,CACEoF,OAAQ,CACNvF,WAKFsF,EAAOE,MACT1H,KAAKyC,qBAAsB,GAE3BzC,KAAKqF,yCAA0C,EAC/CrF,KAAKyC,qBAAsB,GAIxB,2BACLzC,KAAKuF,wBAAyB,QAExBP,EAAe2C,yBAAyB3H,KAAKqC,QAE9CrC,KAAK4H,qBAAuB5H,KAAK6F,iBACpC7F,KAAKqF,yCAA0C,EAC/CrF,KAAKkH,2BAA2BlH,KAAK6F,kBAErC7F,KAAKyG,SAASC,MAAM,oDAGtB1G,KAAKuF,wBAAyB,EAGzB,gCACL,MAAMsC,EAAWrC,OAAOiC,OAAO,QAA4BK,KACxDC,GAASA,IAAS/H,KAAK+C,yBAGpBd,EAA2B,CAC/BW,UAAW5C,KAAK4C,WAAa,KAC7BC,SAAU7C,KAAK6C,UAAY,KAC3BwE,yBAA0BQ,GAAY,OAA2BG,KACjE3F,MAAOrC,KAAKqC,OAmBd,OAhBIwF,IAAa,OAA2BI,SAC1ChG,EAAMmB,SAAWpD,KAAKoD,UAAY,KAClCnB,EAAMoB,SAAWrD,KAAKqD,UAAY,KAClCpB,EAAMqB,KAAOtD,KAAKsD,MAAQ,KAC1BrB,EAAMsB,MAAQvD,KAAKuD,OAAS,KAC5BtB,EAAMuB,QAAUxD,KAAKwD,SAAW,MACvBqE,IAAa,OAA2BG,MAGxCH,IAAa,OAA2BK,MAFjDjG,EAAMqF,YAActH,KAAKmD,OAAS,KAClClB,EAAMkF,kBAAoB,OAAgBgB,QAIjCN,IAAa,OAA2BO,UACjDnG,EAAM6B,QAAU9D,KAAK8D,SAAW,MAG3B7B,EAGF,cACL,MAAMA,EAAQjC,KAAKqI,gCAEdrI,KAAKwC,YAAexC,KAAKqF,wCAG5BrF,KAAKsI,eAAerG,GAFpBjC,KAAKuI,iBAAiBtG,GAMnB,uBAAuB6D,GAauB,OAZ/C9F,KAAKkE,OAAS,OAAUC,aAAa2C,qBACvC9G,KAAK6E,eAAgB,QAEfK,EAAoBsD,gBAAgB,CACxC/H,KAAMT,KAAKS,KACXgI,qBAAsBzI,KAAKyI,yBAI1BzI,KAAKiH,kBAAoBjH,KAAKc,8BAC3BkE,EAAe0D,+BAA+B5C,IAE/C9F,KAAKgH,eAAiBhH,KAAK6F,wBAExBX,EAAoByD,gBAApB,iCACD3I,KAAKc,sBADJ,IAEJ8H,GAAI5I,KAAKc,qBAAqB8H,IAAM,GACpCpG,WAAU,UAAExC,KAAK6F,uBAAP,aAAE,EAAsB+C,MAG/B5I,KAAKgH,eAAkBhH,KAAKiH,mBAC/BjH,KAAKyG,SAASoC,QAAQ,qCACtB7I,KAAK8I,iBAMN,qBAAqBhD,GAU1B,GATI9F,KAAKkE,OAAS,OAAUC,aAAa2C,qBACvC9G,KAAK6E,eAAgB,QAEfK,EAAoBsD,gBAAgB,CACxC/H,KAAMT,KAAKS,KACXgI,qBAAsBzI,KAAKyI,yBAI1BzI,KAAKiH,kBAAoBjH,KAAKc,qBAAsB,OAWrD,EAJF,SALMkE,EAAe+D,qBAAf,gBACJH,GAAI5I,KAAKwC,aAAL,UAAmBxC,KAAK6F,uBAAxB,aAAmB,EAAsB+C,KAC1C9C,KAIF9F,KAAKgH,eACNhH,KAAK6F,iBACL7F,KAAKqF,8CAGCH,EAAoByD,gBAApB,iCACD3I,KAAKc,sBADJ,IAEJ8H,GAAI5I,KAAKc,qBAAqB8H,IAAM,GACpCpG,WAAU,UAAExC,KAAK6F,uBAAP,aAAE,EAAsB+C,MAIjC5I,KAAKgH,eAAkBhH,KAAKiH,mBAC/BjH,KAAKyG,SAASoC,QAAQ,kCACtB7I,KAAK8I,gBAKJ,cAEL5D,EAAoB8D,uCAClBhJ,KAAKyI,sBAAwBzI,KAAKiJ,8BAIlCjJ,KAAKkE,OAAS,OAAUG,MAAM6E,cAC9BlJ,KAAKkE,OAAS,OAAUG,MAAMD,aAC9BpE,KAAKkE,OAAS,OAAUG,MAAM8E,eAE9BnJ,KAAKoJ,QAAQC,KAAK,CAAEpG,KAAM,OAAUoB,MAAMC,gBAEtCtE,KAAKkE,OAAS,OAAUC,aAAa2C,mBACvC9G,KAAKoJ,QAAQC,KAAK,CAAEpG,KAAM,OAAUkB,aAAaQ,WAEjD3E,KAAKoJ,QAAQC,KAAK,CAAEpG,KAAM,OAAUkB,aAAaG,gBAKhD,kBACLtE,KAAKqC,MAAQ,GACbrC,KAAK4C,UAAY,GACjB5C,KAAK6C,SAAW,GAChB7C,KAAKsF,kBAAoB,GACzBtF,KAAK+C,wBAA0B,GAC/B/C,KAAKmD,MAAQ,GACbnD,KAAKoD,SAAW,GAChBpD,KAAKqD,SAAW,GAChBrD,KAAKsD,KAAO,GACZtD,KAAKuD,MAAQ,GACbvD,KAAKwD,QAAU,GACfxD,KAAK8D,QAAU,GAEf9D,KAAKuH,aAAa9F,QAGb,yBACLzB,KAAKsJ,kBAELtJ,KAAKyG,SAAS8C,KACZ,2DAA2DvJ,KAAKS,yBAChE,CACE+I,SAAU,IACVC,WAAW,EACXC,aAAa,EACbC,UAAW,CAAC,aAAc,eAI9B3J,KAAKoJ,QAAQQ,QAAQ,CACnB3G,KAAMjD,KAAKU,MAAMC,SAAS,OAAKE,OAC3B,OAAUwD,MAAMD,YAChB,OAAUD,aAAaC,YAC3B4B,OAAQ,CACNC,QAASjG,KAAKS,QAKb,kCACCuE,EAAe4B,6BACrB5G,KAAKqF,yCAA0C,EAC/CrF,KAAKyC,qBAAsB,EAC3BzC,KAAKsJ,kBAGA,6BACLtJ,KAAK6E,eAAgB,QAEfK,EAAoBsD,gBAAgB,CACxC/H,KAAMT,KAAKS,KACXgI,qBAAsBzI,KAAKyI,uBAGxBzI,KAAKiH,kBACRjH,KAAK8I,cAIF,yCAEL,MAAMe,EAAkB,eAAUC,IAAqB,SAAIC,uBACrDF,EAAgBG,SAAS,CAC7BC,UAAWpK,EAAcqK,2BAG3B,MAAMhI,QAAclC,KAAKmK,SAASC,cAChC,wLACA,CACE7J,MAAO,iBACP8J,UAAW,SACXC,QAAS,UACTC,YAAa,WAIbrI,SACIlC,KAAKwK,uBAIR,iBACLxK,KAAKmK,SAASM,KAAK,oBAGd,oBAAoBC,GACzB1K,KAAKmK,SAASQ,KAAK,oBAGnBzF,EAAoB8D,uCAClBhJ,KAAKiJ,8BAGPjJ,KAAKoJ,QAAQQ,QAAQ,CACnB3G,KAAMjD,KAAKU,MAAMC,SAASX,KAAKY,KAAKC,OAChC,OAAUwD,MAAM6E,aAChB,OAAU/E,aAAa+E,aAC3BlD,OAAQ,CACNC,QAASyE,EACTlI,WAAYxC,KAAKwC,gBAvbvB,gBAHC,eAAK,CACJoI,QAAS,K,kEAqDX,gBADC,iB,6BACoC,oB,EAAA,qBAAfC,kCAAe,W,mCA4DrC,gBADC,eAAM,2B,sLAKN,MAGD,gBADC,eAAM,gBAAiB,CAAEC,MAAM,I,2EACuB,oB,EAAA,qBAAjB,gBAAiB,W,iFAKtD,MAGD,gBADC,eAAM,mBAAoB,CAAEA,MAAM,I,2EACuB,oB,EAAA,qBAAjB,gBAAiB,W,oFAKzD,MAzIkB,EAAqB,gBAxBzC,eAAU,CACTC,WAAY,CACVC,mBAAA,OACAC,mBAAA,OACAC,aAAA,OACAC,iBAAA,OACAC,uBAAA,QAEFC,SAAU,gDACL,eAAS,OAAuB,CACjC,kBACA,oBACA,mBAEC,eAAS,OAA4B,CACtCvK,qBAAsB,uBACtBwK,YAAa,cACb9G,qBAAsB,oBACtByC,iBAAkB,gBAClBW,oBAAqB,yBAEpB,eAAS,OAA0B,CAAC,qCAGtB,WC1Z+Y,I,YCOha2D,EAAY,eACd,EACAzL,OACAiF,GACA,EACA,KACA,KACA,MAIa,aAAAwG,E,6CClBf,IAAYC,EAAZ,2CAAYA,GACV,cACA,gBACA,aACA,gBAJF,CAAYA,MAAe,M,yDCA3B,I,MAAI1L,OAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,UAAU,CAACY,MAAM,CAAC,GAAK,mBAAmB,MAAQ,aAAa,cAAc,IAAIC,GAAG,CAAC,KAAOjB,EAAI0L,cAAc,CAACtL,EAAG,qBAAqB,CAACgB,IAAI,gBAAgBC,YAAYrB,EAAIsB,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,SAASJ,GAC9S,IAAIK,EAAeL,EAAIK,aACnBC,EAAQN,EAAIM,MAChB,MAAO,CAACtB,EAAG,OAAO,CAACa,GAAG,CAAC,OAAS,SAASU,GAAgC,OAAxBA,EAAOC,iBAAwBH,EAAazB,EAAI2L,uBAAuB,MAAQ,SAAShK,GAAgC,OAAxBA,EAAOC,iBAAwBF,EAAMC,MAAW,CAACvB,EAAG,IAAI,CAACJ,EAAIM,GAAG,gBAAgBN,EAAIO,GAAGP,EAAI4L,QAAU5L,EAAI4L,QAAQlL,KAAO,OAAON,EAAG,eAAe,CAACK,YAAY,QAAQ,CAACL,EAAG,qBAAqB,CAACY,MAAM,CAAC,MAAQ,wBAAwBK,YAAYrB,EAAIsB,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,SAASJ,GACva,IAAIU,EAAUV,EAAIU,QAClB,MAAO,CAAC1B,EAAG,eAAe,CAAC2B,MAAMD,EAAQd,MAAM,CAAC,KAAO,OAAO,YAAc,gBAAgBkB,MAAM,CAACC,MAAOnC,EAAO,IAAEoC,SAAS,SAAUC,GAAMrC,EAAI6L,IAAoB,kBAARxJ,EAAkBA,EAAIE,OAAQF,GAAMG,WAAW,aAAa,MAAK,MAAS,GAAGpC,EAAG,MAAM,CAACK,YAAY,8CAA8C,CAACL,EAAG,iBAAiB,CAACA,EAAG,WAAW,CAACY,MAAM,CAAC,QAAU,SAAS,SAAWhB,EAAIwE,mBAAmBvD,GAAG,CAAC,MAAQjB,EAAI8L,gBAAgB,CAAC9L,EAAIM,GAAG,aAAaF,EAAG,WAAW,CAACY,MAAM,CAAC,SAAWhB,EAAIwE,kBAAkB,KAAO,WAAW,CAACxE,EAAIM,GAAG,UAAWN,EAAqB,kBAAEI,EAAG,yBAAyB,CAACY,MAAM,CAAC,UAAY,UAAUhB,EAAImB,MAAM,IAAI,IAAI,IAAI,WAAW,IAC7oB6D,EAAkB,G,oKCqDtB,MAAMG,EAA2C,eAC/C,OACAD,EAAA,MAeF,IAAqB,EAArB,MAAqBmG,+BAA+B,OAApD,c,oBAQS,KAAAQ,IAAM,GAML,uBAAuB1J,GAC7B,GAAIA,EAAO,CACT,MAAMqE,EAASrE,EAAMsE,sBACrB,OAAOxG,KAAKyG,SAASC,MAAMH,EAAOI,SAI/B,cACL3G,KAAK4L,IAAM,GACX5L,KAAK8L,cAAcrK,QAGd,gBACLzB,KAAKmK,SAASQ,KAAK,oBAGd,6BAA0B,YACzBzF,EAAoB,OAAqByD,iBAAiB,CAC9DC,GAAE,UAAE5I,KAAK2L,QAAQ/C,UAAf,QAAqB,GACvBnI,KAAMT,KAAK4L,IACXpJ,WAAYxC,KAAK2L,QAAQnJ,WACzBiG,qBAAsBzI,KAAK2L,QAAQlD,uBAGhCzI,KAAKgH,eACRhH,KAAK+L,MAAM,qBAAsB/L,KAAK4L,OAnC1C,gBAHC,eAAK,CACJnI,UAAU,I,6BAEU,oB,EAAA,qBAAb,wCAAa,W,8BAOtB,gBADC,iB,6BACqC,oB,EAAA,qBAAfoH,kCAAe,W,oCAGtC,gBADC,eAAM,gBAAiB,CAAEC,MAAM,I,2EACuB,oB,EAAA,qBAAjB,gBAAiB,W,iFAKtD,MAnBkB,EAAsB,gBAZ1C,eAAU,CACTC,WAAY,CACVE,mBAAA,OACAD,mBAAA,QAEFK,SAAU,kBACL,eAAS,OAA4B,CACtC,oBACA,sBAIe,WC5EiZ,I,YCOlaE,EAAY,eACd,EACAzL,OACAiF,GACA,EACA,KACA,KACA,MAIa,OAAAwG,E,uGCaf,IAAqBS,EAArB,MAAqBA,+BAA+B,OAApD,c,oBACS,KAAAjJ,wBAA0B,KADdiJ,EAAsB,gBA5B1C,eAAU,CACTX,SAAU,CACR,kBACE,OACErL,KAAKiM,MAAMlJ,0BAA4B,OAA2BiF,MAGtE,iBACE,OACEhI,KAAKiM,MAAMlJ,0BACT,OAA2BmF,MAC7BlI,KAAKiM,MAAMlJ,0BAA4B,OAA2BiF,MAGtE,oBACE,OACEhI,KAAKiM,MAAMlJ,0BACX,OAA2BkF,SAG/B,mBACE,OACEjI,KAAKiM,MAAMlJ,0BACX,OAA2BqF,aAKd4D,GAAA,U,kCC/BrB,IAAIlM,OAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,yBAAyB,CAACK,YAAY,gBAAgBO,MAAM,CAAC,aAAa,IAAI,UAAY,WACzLgE,EAAkB,G,wBCWtB,IAAqB,EAArB,MAAqBoG,yBAAyB,SAAzB,EAAgB,gBADpC,QACoB,WCZyY,I,YCO1ZI,EAAY,eACd,EACAzL,OACAiF,GACA,EACA,KACA,KACA,MAIa,OAAAwG,E,2CClBf,IAAYW,EAAZ,2CAAYA,GACV,cACA,cACA,iBACA,iBAJF,CAAYA,MAA0B,M,kCCAtC,+CACM,MAAOtI,gBAYG,eAAAC,IAAM,+mB,kCCbtB,SAASsI,WAeP,OAdAA,SAAW3G,OAAO4G,QAAU,SAAUC,GACpC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAIhL,KAAOmL,EACVjH,OAAOkH,UAAUC,eAAeC,KAAKH,EAAQnL,KAC/C+K,EAAO/K,GAAOmL,EAAOnL,IAK3B,OAAO+K,GAGFF,SAASU,MAAM7M,KAAMuM,WAG9B,IAAIO,EAAQ,SAASA,QACnB,IAAIvJ,GAAQ,EAERwJ,EAAY,GAEZC,EAAU,SAASA,QAAQC,GAC7B,IAAI1J,EAAJ,CAIAA,GAAQ,EAER,IAAK,IAAI+I,EAAI,EAAGY,EAAMH,EAAUP,OAAQF,EAAIY,EAAKZ,IAC/CS,EAAUT,GAAGW,KAIbE,EAAO,SAASA,KAAKC,GAClB7J,EAKL6J,IAJEL,EAAU1D,KAAK+D,IAOfC,EAAW,CACbC,SAAU,SAASA,WACjB,OAAO/J,GAETyJ,QAASA,EACTO,QAAS,CACPJ,KAAMA,IAGV,OAAOE,GAGLG,EAAUhI,OAAOkH,UAAUC,eAC/B,SAASc,kBACP,IAAIJ,EAAWP,IACf,MAAO,CACLY,OAAQ,SAASA,SACfL,EAASL,WAEXW,KAAM,SAASA,OACb,OAAON,EAASE,SAElBzN,OAAQ,SAASA,OAAO8N,EAAKC,EAAST,GACpCpN,KAAK2N,OAAOR,MAAK,WACfC,EAAGU,OAAOC,WAAWjO,OAAO8N,EAAKC,QAGrCpM,MAAO,SAASA,MAAMuM,GACI,qBAAbA,IAIXhO,KAAKiO,eACLjO,KAAK2N,OAAOR,MAAK,WACf,OAAOW,OAAOC,WAAWtM,MAAMuM,QAGnCE,QAAS,SAASA,QAAQF,GACA,qBAAbA,IAIXhO,KAAKiO,eACLjO,KAAK2N,OAAOR,MAAK,WACf,OAAOW,OAAOC,WAAWG,QAAQF,QAGrCG,mBAAoB,SAASA,qBACvBX,EAAQZ,KAAKkB,OAAQ,eAAiBN,EAAQZ,KAAKkB,OAAOC,WAAY,WACxE/N,KAAK0N,UAGTO,aAAc,SAASA,eACrB,IAAKZ,EAASC,WACZ,MAAM,IAAIc,MAAM,mCAKxB,IAAIC,EAAYZ,kBAEM,qBAAXK,SACTA,OAAOQ,sBAAwBD,EAAUX,QAG3C,IAAIxC,EAAe,CACjBjI,KAAM,eACNsL,MAAO,CACLC,QAAS,CACPzG,KAAM0G,OACNhL,UAAU,GAEZiL,MAAO,CACL3G,KAAM0G,QAERE,MAAO,CACL5G,KAAM0G,QAER1G,KAAM,CACJA,KAAM0G,QAERG,KAAM,CACJ7G,KAAM0G,QAERI,SAAU,CACR9G,KAAM0G,QAERK,oBAAqB,CACnB/G,KAAMgH,QACN,SAAW,GAEbC,kBAAmB,CACjBjH,KAAM0G,OACN,QAAW,sBAEbQ,cAAe,CACblH,KAAM0G,OACN,QAAW,kBAEbS,SAAU,CACRnH,KAAM0G,OACN,QAAW,KAGfU,YAAa,SAASA,cACpB,GAAInP,KAAK8O,sBACFM,SAASC,eAAerP,KAAKgP,mBAAoB,CAEpD,IAAIM,EAASF,SAASG,cAAc,UACpCD,EAAO1G,GAAK5I,KAAKgP,kBACjBM,EAAOE,IAAM,WAAaxP,KAAKiP,cAAgB,qEAAuEjP,KAAKkP,SAC3HI,EAAOG,OAAQ,EACfH,EAAOxC,OAAQ,EACfsC,SAASM,KAAKC,YAAYL,KAIhCM,QAAS,SAASA,UAChB,IAAIC,EAAQ7P,KAEZqO,EAAUF,qBAEV,IAAI2B,EAAO3D,SAAS,GAAInM,KAAK+P,OAAQ,CACnC5N,SAAUnC,KAAKgQ,WACf,mBAAoBhQ,KAAKiQ,YACzB,iBAAkBjQ,KAAKkQ,YAGrBC,EAAYnQ,KAAKoQ,OAAO,WAAapQ,KAAKqQ,IAAIC,SAAS,GAAKtQ,KAAKqQ,IACrEhC,EAAUvO,OAAOqQ,EAAWL,GAAM,SAAUlH,GAC1CiH,EAAMU,UAAY3H,EAElBiH,EAAM9D,MAAM,SAAUnD,OAG1B4H,QAAS,CACP/O,MAAO,SAASA,QACd4M,EAAU5M,MAAMzB,KAAKuQ,YAEvBrC,QAAS,SAASA,UAChBG,EAAUH,QAAQlO,KAAKuQ,YAEzBP,WAAY,SAASA,WAAWS,GAC9BzQ,KAAK+L,MAAM,SAAU0E,IAEvBR,YAAa,SAASA,cACpBjQ,KAAK+L,MAAM,YAEbmE,UAAW,SAASA,YAClBlQ,KAAK+L,MAAM,WAGfjM,OAAQ,SAASA,OAAO4Q,GACtB,OAAOA,EAAE,MAAO,GAAI1Q,KAAKoQ,OAAO,cAIrB","file":"js/chunk-42df8a0f.76421dd0.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',[_c('h3',[_vm._v(_vm._s(_vm.title))]),_c('h4',{staticClass:\"font-weight-bold mb-3\"},[_vm._v(\" \"+_vm._s(_vm.code)+\" \"),(_vm.roles.includes(_vm.role.Admin) && _vm.currentRegisteredTag)?_c('b-button',{attrs:{\"variant\":\"link\"},on:{\"click\":_vm.onEditTagClick}},[_c('b-icon-tag'),_vm._v(\" Edit Tag \")],1):_vm._e()],1)]),_c('ValidationObserver',{ref:\"customerForm\",scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar handleSubmit = ref.handleSubmit;\nvar reset = ref.reset;\nreturn [_c('form',{on:{\"submit\":function($event){$event.preventDefault();return handleSubmit(_vm.onSaveClick)},\"reset\":function($event){$event.preventDefault();return reset($event)}}},[_c('b-row',[_c('b-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"5\"}},[_c('label',[_vm._v(\"Email \"),_c('span',{staticClass:\"text-danger\"},[_vm._v(\"*\")])]),(_vm.isVeterinarianPage)?_c('div',{staticClass:\"text-muted small\"},[_vm._v(\" If no email, use phone#@pawfinders.com - Ex: 859261XXXX@pawfinders.com \")]):_vm._e(),_c('b-form-group',[_c('ValidationProvider',{attrs:{\"rules\":\"required|email\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar classes = ref.classes;\nreturn [_c('b-input-group',[_c('b-form-input',{class:classes,attrs:{\"placeholder\":\"email address\",\"disabled\":_vm.disableEmailEditing},on:{\"input\":function($event){return _vm.onEmailInput($event)}},model:{value:(_vm.email),callback:function ($$v) {_vm.email=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"email\"}}),(!_vm.customerId)?_c('b-input-group-append',[_c('b-button',{attrs:{\"size\":\"sm\",\"disabled\":_vm.disabledEmailLookup},on:{\"click\":_vm.onEmailLookupClick}},[_c('b-icon-search'),(_vm.showEmailSearchLoading)?_c('b-icon-arrow-clockwise',{attrs:{\"animation\":\"spin\"}}):_vm._e()],1)],1):_vm._e()],1),(_vm.isVeterinarianPage)?_c('div',{staticClass:\"text-muted small\"},[_vm._v(\" (Must be unique to pet owner) \")]):_vm._e()]}}],null,true)}),(_vm.addingExistingCustomerToNewRegistration)?_c('b-button',{staticClass:\"pt-1\",attrs:{\"variant\":\"link\",\"size\":\"sm\"},on:{\"click\":_vm.onClearResultsClick}},[_c('b-iconstack',[_c('b-icon-plus',{attrs:{\"scale\":\"0.8\",\"shift-h\":\"-1\",\"shift-v\":\"1\",\"stacked\":\"\",\"rotate\":\"45\"}}),_c('b-icon-search',{attrs:{\"scale\":\"0.8\",\"stacked\":\"\"}})],1),_vm._v(\" Clear Results\")],1):_vm._e()],1),_c('label',[_vm._v(\"Name\")]),_c('b-form-group',[_c('b-form-input',{attrs:{\"placeholder\":\"first name\"},model:{value:(_vm.firstName),callback:function ($$v) {_vm.firstName=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"firstName\"}})],1),_c('b-form-group',[_c('b-form-input',{attrs:{\"placeholder\":\"last name\"},model:{value:(_vm.lastName),callback:function ($$v) {_vm.lastName=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"lastName\"}})],1)],1),_c('b-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"5\"}},[_c('label',[_vm._v(\"Preferred Method of Contact \"),_c('span',{staticClass:\"text-danger\"},[_vm._v(\"*\")])]),_c('ValidationProvider',{attrs:{\"rules\":\"required\",\"vid\":\"method\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar classes = ref.classes;\nreturn [_c('b-form-group',[_c('b-form-radio-group',{class:classes,attrs:{\"options\":_vm.methodOfContact,\"name\":\"method-of-contact\"},model:{value:(_vm.selectedMethodOfContact),callback:function ($$v) {_vm.selectedMethodOfContact=$$v},expression:\"selectedMethodOfContact\"}})],1)]}}],null,true)}),(_vm.showPhoneField)?_c('b-row',[_c('b-col',{attrs:{\"sm\":\"12\",\"md\":\"8\",\"lg\":\"8\"}},[_c('b-form-group',[_c('label',[_vm._v(\"Phone \"),_c('b-icon-info-circle',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\"}],attrs:{\"title\":\"Numeric only.\"}}),_c('span',{staticClass:\"text-danger\"},[_vm._v(\" *\")])],1),_c('ValidationProvider',{attrs:{\"rules\":\"required|max:10|min:10|numeric\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar classes = ref.classes;\nreturn [_c('b-form-input',{class:classes,attrs:{\"placeholder\":\"phone number\"},model:{value:(_vm.phone),callback:function ($$v) {_vm.phone=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"phone\"}})]}}],null,true)})],1)],1)],1):_vm._e(),(_vm.showAddressFields)?_c('div',[_c('b-form-group',[_c('label',[_vm._v(\"Address \"),_c('span',{staticClass:\"text-danger\"},[_vm._v(\"*\")])]),_c('ValidationProvider',{attrs:{\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar classes = ref.classes;\nreturn [_c('b-form-input',{class:classes,attrs:{\"placeholder\":\"street address\"},model:{value:(_vm.address1),callback:function ($$v) {_vm.address1=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"address1\"}})]}}],null,true)})],1),_c('b-form-group',[_c('ValidationProvider',[_c('b-form-input',{attrs:{\"placeholder\":\"suite #, apt #, bldg #\"},model:{value:(_vm.address2),callback:function ($$v) {_vm.address2=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"address2\"}})],1)],1),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"12\",\"md\":\"12\",\"lg\":\"5\"}},[_c('b-form-group',[_c('ValidationProvider',{attrs:{\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar classes = ref.classes;\nreturn [_c('b-form-input',{class:classes,attrs:{\"placeholder\":\"city\"},model:{value:(_vm.city),callback:function ($$v) {_vm.city=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"city\"}})]}}],null,true)})],1)],1),_c('b-col',{attrs:{\"cols\":\"6\",\"lg\":\"3\"}},[_c('b-form-group',[_c('ValidationProvider',{attrs:{\"rules\":\"required|max:2|min:2\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar classes = ref.classes;\nreturn [_c('b-form-input',{class:classes,attrs:{\"placeholder\":\"state\"},model:{value:(_vm.state),callback:function ($$v) {_vm.state=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"state\"}})]}}],null,true)})],1)],1),_c('b-col',{attrs:{\"cols\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{staticClass:\"mb-3\"},[_c('ValidationProvider',{attrs:{\"rules\":\"required|max:10|min:5\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar classes = ref.classes;\nreturn [_c('b-form-input',{class:classes,attrs:{\"placeholder\":\"zip code\"},model:{value:(_vm.zipCode),callback:function ($$v) {_vm.zipCode=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"zipCode\"}})]}}],null,true)})],1)],1)],1)],1):_vm._e(),(_vm.showWebsiteField)?_c('b-form-group',[_c('label',[_vm._v(\"Website \"),_c('span',{staticClass:\"text-danger\"},[_vm._v(\"*\")])]),_c('ValidationProvider',{attrs:{\"rules\":{\n required: true,\n // do not use regex literal notation it breaks the regex\n regex: new RegExp(_vm.RegexConstants.URL, 'gi')\n }},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var classes = ref.classes;\nreturn [_c('b-form-input',{class:classes,attrs:{\"placeholder\":\"social media profile, pet profile page, etc.\"},model:{value:(_vm.website),callback:function ($$v) {_vm.website=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"website\"}})]}}],null,true)})],1):_vm._e()],1)],1),_c('hr'),_c('b-row',[_c('b-col',[_c('b-form-group',{staticClass:\"mb-4 mt-2\"},[_c('b-form-checkbox',{attrs:{\"value\":true,\"unchecked-value\":false,\"switch\":\"\"},model:{value:(_vm.terms),callback:function ($$v) {_vm.terms=$$v},expression:\"terms\"}},[_c('div',{staticClass:\"font-weight-lighter\"},[_vm._v(\" I agree to the \"),_c('b-link',{attrs:{\"to\":{ name: _vm.routeName.public.terms },\"target\":\"_blank\"}},[_vm._v(\"terms & conditions\")]),_vm._v(\". \")],1)])],1),(\n _vm.customerId ||\n _vm.page === _vm.routeName.veterinarian.addCustomer ||\n _vm.page === _vm.routeName.admin.addCustomer\n )?_c('div',{staticClass:\"d-flex flex-column flex-md-row justify-content-between\"},[_c('b-button-group',{staticClass:\"mb-2\"},[_c('b-button',{attrs:{\"variant\":\"danger\",\"to\":{\n name: _vm.roles.includes(_vm.role.Admin)\n ? _vm.routeName.admin.registrations\n : _vm.routeName.veterinarian.registrations\n }}},[_vm._v(\"Cancel\")]),_c('b-button',{attrs:{\"variant\":\"secondary\",\"type\":\"submit\",\"disabled\":!_vm.terms}},[_vm._v(\" Save \"),(_vm.showButtonLoading || _vm.showTagButtonLoading)?_c('b-icon-arrow-clockwise',{attrs:{\"animation\":\"spin\"}}):_vm._e()],1)],1),(\n _vm.customerId &&\n (_vm.veterinarianAdmin || _vm.roles.includes(_vm.role.Admin))\n )?_c('b-button',{staticClass:\"text-center text-md-right\",attrs:{\"variant\":\"warning\"},on:{\"click\":_vm.onChangeOwnershipClick}},[_c('b-icon-link-45deg'),_vm._v(\" Change Email Address \")],1):_vm._e()],1):_c('div',[_c('div',{staticClass:\"d-flex flex-column flex-md-row justify-content-between\"},[_c('b-button-group',{staticClass:\"mb-2\"},[_c('b-button',{attrs:{\"variant\":\"danger\",\"to\":{ name: _vm.routeName.veterinarian.register }}},[_vm._v(\"Cancel\")]),_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.onShowCompleteLaterConfirmDialog}},[_vm._v(\"Complete Later \"),(_vm.showTagButtonLoading && _vm.registerLater)?_c('b-icon-arrow-clockwise',{attrs:{\"animation\":\"spin\"}}):_vm._e()],1),_c('b-button',{attrs:{\"variant\":\"secondary\",\"type\":\"submit\",\"disabled\":!_vm.terms}},[_vm._v(\" Save \"),(\n _vm.showButtonLoading ||\n (_vm.showTagButtonLoading && !_vm.registerLater)\n )?_c('b-icon-arrow-clockwise',{attrs:{\"animation\":\"spin\"}}):_vm._e()],1)],1)],1)])],1)],1)],1)]}}])}),_c('ManageTagFormComponent',{attrs:{\"current\":_vm.currentRegisteredTag},on:{\"completion-handler\":_vm.onCompletionHandler}}),(_vm.showLoading)?_c('LoadingComponent'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export enum EventLogNames {\n completeLaterButtonClick = 'completeLaterButtonClick'\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Watch, Ref } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport { ValidationProvider, ValidationObserver, validate } from 'vee-validate';\nimport { Options } from '@/models/options.model';\nimport { routeName } from '@/constants/route.constants';\nimport { PreferredContactMethodType } from '@/constants/preferred-contact-method-type';\nimport { PhoneNumberType } from '@/constants/phone-number-type';\nimport { ValidationResult } from 'vee-validate/dist/types/types';\nimport VueRecaptcha from 'vue-recaptcha';\nimport LoadingComponent from '@/components/shared/loading.component.vue';\nimport CustomerModule, {\n CUSTOMERS_MODULE_NAME\n} from '@/store/modules/customer.module';\nimport RegisteredTagModule, {\n REGISTERED_TAG_MODULE_NAME\n} from '@/store/modules/registered-tag.module';\nimport AuthenticationModule from '@/store/modules/authentication.module';\nimport { getModule } from 'vuex-module-decorators';\nimport store from '@/store';\nimport { mapState } from 'vuex';\nimport { Customer } from '@/models/DTO/customer/customer.model';\nimport { BaseAPIErrorModel } from '@/models/DTO/base-api-error.model';\nimport { CustomerBaseModel } from '@/models/DTO/customer/customer-base.model';\nimport { RegisteredTag } from '@/models/DTO/registered-tag/registered-tag.model';\nimport CustomerShowFieldMixin from '@/mixins/customer-show-field.mixin';\nimport { Role } from '@/constants/role.constants';\nimport { cid, container } from 'inversify-props';\nimport { EventLogService } from '@/services/event-log.service';\nimport { EventLogNames } from '@/constants/event-log-names.constants';\nimport { RegexConstants } from '@/constants/regex.constants';\nimport { VETERINARIAN_MODULE_NAME } from '@/store/modules/veterinarian.module';\nimport ManageTagFormComponent from '@/components/registration/manage-tag-form.component.vue';\n\nconst customerModule: CustomerModule = getModule(CustomerModule, store);\n\nconst registeredTagModule: RegisteredTagModule = getModule(\n RegisteredTagModule,\n store\n);\n\nconst authenticationModule: AuthenticationModule = getModule(\n AuthenticationModule,\n store\n);\n\n@Component({\n components: {\n ValidationObserver,\n ValidationProvider,\n VueRecaptcha,\n LoadingComponent,\n ManageTagFormComponent\n },\n computed: {\n ...mapState(CUSTOMERS_MODULE_NAME, [\n 'currentCustomer',\n 'showButtonLoading',\n 'errorResponse'\n ]),\n ...mapState(REGISTERED_TAG_MODULE_NAME, {\n currentRegisteredTag: 'currentRegisteredTag',\n showLoading: 'showLoading',\n showTagButtonLoading: 'showButtonLoading',\n errorTagResponse: 'errorResponse',\n errorLookupResponse: 'errorLookupResponse'\n }),\n ...mapState(VETERINARIAN_MODULE_NAME, ['selectedVeterinarianOfficeId'])\n }\n})\nexport default class CustomerFormComponent extends mixins(\n CustomerShowFieldMixin\n) {\n @Prop({\n default: ''\n })\n public title: string;\n\n public showLoading: boolean;\n public showButtonLoading: boolean;\n public showTagButtonLoading: boolean;\n public currentRegisteredTag: RegisteredTag | null;\n public currentCustomer: Customer | null;\n public errorResponse: BaseAPIErrorModel | null;\n public errorTagResponse: BaseAPIErrorModel | null;\n public errorLookupResponse: BaseAPIErrorModel | null;\n public selectedVeterinarianOfficeId: string;\n public registerLater = false;\n public addingExistingCustomerToNewRegistration = false;\n public firstName = '';\n public lastName = '';\n public email = '';\n public terms = true;\n public selectedPhoneType = '';\n public phone = '';\n public address1 = '';\n public address2 = '';\n public city = '';\n public state = '';\n public zipCode = '';\n public website = '';\n public disabledEmailLookup = true;\n public showEmailSearchLoading = false;\n\n public get RegexConstants(): RegexConstants {\n return RegexConstants;\n }\n\n public methodOfContact: Array = Object.entries(\n PreferredContactMethodType\n ).map(([key, value]) => {\n return {\n text: key,\n value: value\n };\n });\n\n public phoneType: Array = Object.entries(PhoneNumberType).map(\n ([key, value]) => {\n return {\n text: key,\n value: value\n };\n }\n );\n\n @Ref()\n public customerForm!: HTMLFormElement;\n\n public get disableEmailEditing(): boolean {\n if (this.addingExistingCustomerToNewRegistration || this.currentCustomer) {\n return true;\n }\n\n if (\n this.currentRegisteredTag &&\n this.currentRegisteredTag.customer &&\n this.page !== this.routeName.veterinarian.addCustomer &&\n this.page !== this.routeName.admin.addCustomer\n ) {\n return true;\n }\n\n return false;\n }\n\n public get customerId(): string {\n return this.$route.params.customerId;\n }\n\n public get code(): string {\n return this.$route.params.tagCode;\n }\n\n public get routeName(): typeof routeName {\n return routeName;\n }\n\n public get page(): string | null | undefined {\n return this.$route.name;\n }\n\n public get role(): typeof Role {\n return Role;\n }\n\n public get roles(): Array {\n return authenticationModule.jwtRoles;\n }\n\n public get veterinarianOfficeId(): string {\n return authenticationModule.jwtVeterinarianOfficeId;\n }\n\n public get veterinarianAdmin(): boolean {\n return authenticationModule.jwtRoles.includes(Role.Veterinarian);\n }\n\n public get isVeterinarianPage(): boolean {\n if (this.page) {\n return !this.page.includes('public') && !this.page.includes('admin');\n }\n\n return false;\n }\n\n @Watch('selectedMethodOfContact')\n private onSelectedMethodOfContactChanged(newVal: string, oldVal: string) {\n if (newVal !== oldVal && oldVal !== '') {\n this.reset();\n }\n }\n\n @Watch('errorResponse', { deep: true })\n private onErrorResponseChanged(value: BaseAPIErrorModel) {\n if (value) {\n const errors = value.getAllErrorMessages();\n return this.$toasted.error(errors.join());\n }\n }\n\n @Watch('errorTagResponse', { deep: true })\n private onErrorTagResponseChanged(value: BaseAPIErrorModel) {\n if (value) {\n const errors = value.getAllErrorMessages();\n return this.$toasted.error(errors.join());\n }\n }\n\n public async created() {\n await customerModule.clearCurrentCustomerAction();\n await registeredTagModule.resetCurrentTagAction();\n\n if (this.page !== routeName.veterinarian.createRegistration) {\n await registeredTagModule.getTagByCodeAction(this.code);\n\n if (\n !this.errorResponse &&\n !this.errorTagResponse &&\n this.currentRegisteredTag &&\n this.currentRegisteredTag.customer &&\n this.page !== routeName.veterinarian.addCustomer\n ) {\n this.getCustomerModelForEditing(this.currentRegisteredTag.customer);\n }\n }\n }\n\n public getCustomerModelForEditing(customer: Customer) {\n if (customer) {\n this.email = customer.email;\n this.firstName = customer.firstName || '';\n this.lastName = customer.lastName || '';\n this.selectedPhoneType = customer.phoneNumberTypeId?.toString() || '';\n this.selectedMethodOfContact =\n customer.preferredContactMethodId.toString() || '';\n this.phone = customer.phoneNumber || '';\n this.address1 = customer.address1 || '';\n this.address2 = customer.address2 || '';\n this.city = customer.city || '';\n this.state = customer.state || '';\n this.zipCode = customer.zipCode || '';\n this.website = customer.website || '';\n }\n }\n\n public reset() {\n // This only resets validation on the form elements\n // associated with PreferredContactMethodType\n this.customerForm.reset();\n }\n\n public async onEmailInput(value: string): Promise {\n // Only allow a lookup when the email has been validated\n const result: ValidationResult = await validate(\n this.email,\n 'required|email',\n {\n values: {\n value\n }\n }\n );\n\n if (result.valid) {\n this.disabledEmailLookup = false;\n } else {\n this.addingExistingCustomerToNewRegistration = false;\n this.disabledEmailLookup = true;\n }\n }\n\n public async onEmailLookupClick(): Promise {\n this.showEmailSearchLoading = true;\n\n await customerModule.getCustomerByEmailAction(this.email);\n\n if (!this.errorLookupResponse && this.currentCustomer) {\n this.addingExistingCustomerToNewRegistration = true;\n this.getCustomerModelForEditing(this.currentCustomer);\n } else {\n this.$toasted.error('No information was found for this email address.');\n }\n\n this.showEmailSearchLoading = false;\n }\n\n public setCustomerBaseModelForSaving(): CustomerBaseModel {\n const methodId = Object.values(PreferredContactMethodType).find(\n (type) => type === this.selectedMethodOfContact\n );\n\n const model: CustomerBaseModel = {\n firstName: this.firstName || null,\n lastName: this.lastName || null,\n preferredContactMethodId: methodId || PreferredContactMethodType.Call, // Call will be a fallback\n email: this.email\n };\n\n if (methodId === PreferredContactMethodType.Address) {\n model.address1 = this.address1 || null;\n model.address2 = this.address2 || null;\n model.city = this.city || null;\n model.state = this.state || null;\n model.zipCode = this.zipCode || null;\n } else if (methodId === PreferredContactMethodType.Call) {\n model.phoneNumber = this.phone || null;\n model.phoneNumberTypeId = PhoneNumberType.Mobile;\n } else if (methodId === PreferredContactMethodType.Text) {\n model.phoneNumber = this.phone || null;\n model.phoneNumberTypeId = PhoneNumberType.Mobile;\n } else if (methodId === PreferredContactMethodType.Website) {\n model.website = this.website || null;\n }\n\n return model;\n }\n\n public onSaveClick() {\n const model = this.setCustomerBaseModelForSaving();\n\n if (!this.customerId && !this.addingExistingCustomerToNewRegistration) {\n this.registerCustomer(model);\n } else {\n this.updateCustomer(model);\n }\n }\n\n public async registerCustomer(customer: CustomerBaseModel): Promise {\n if (this.page === routeName.veterinarian.createRegistration) {\n this.registerLater = false;\n\n await registeredTagModule.addNewTagAction({\n code: this.code,\n veterinarianOfficeId: this.veterinarianOfficeId\n });\n }\n\n if (!this.errorTagResponse && this.currentRegisteredTag) {\n await customerModule.registerCustomerIfNeededAction(customer);\n\n if (!this.errorResponse && this.currentCustomer) {\n // update tag registration with customer id\n await registeredTagModule.updateTagAction({\n ...this.currentRegisteredTag,\n id: this.currentRegisteredTag.id || '',\n customerId: this.currentCustomer?.id\n });\n\n if (!this.errorResponse && !this.errorTagResponse) {\n this.$toasted.success('Customer successfully registered.');\n this.navigateOut();\n }\n }\n }\n }\n\n public async updateCustomer(customer: CustomerBaseModel): Promise {\n if (this.page === routeName.veterinarian.createRegistration) {\n this.registerLater = false;\n\n await registeredTagModule.addNewTagAction({\n code: this.code,\n veterinarianOfficeId: this.veterinarianOfficeId\n });\n }\n\n if (!this.errorTagResponse && this.currentRegisteredTag) {\n // update customer info\n await customerModule.updateCustomerAction({\n id: this.customerId || this.currentCustomer?.id,\n ...customer\n });\n\n if (\n !this.errorResponse &&\n this.currentCustomer &&\n this.addingExistingCustomerToNewRegistration\n ) {\n // update tag registration with customer id\n await registeredTagModule.updateTagAction({\n ...this.currentRegisteredTag,\n id: this.currentRegisteredTag.id || '',\n customerId: this.currentCustomer?.id\n });\n }\n\n if (!this.errorResponse && !this.errorTagResponse) {\n this.$toasted.success('Customer updated successfully.');\n this.navigateOut();\n }\n }\n }\n\n public navigateOut() {\n // let this continue without waiting\n registeredTagModule.getAllTagsByVeterinarianOfficeIdAction(\n this.veterinarianOfficeId || this.selectedVeterinarianOfficeId\n );\n\n if (\n this.page === routeName.admin.editCustomer ||\n this.page === routeName.admin.addCustomer ||\n this.page === routeName.admin.createCustomer\n ) {\n this.$router.push({ name: routeName.admin.registrations });\n } else {\n if (this.page === routeName.veterinarian.createRegistration) {\n this.$router.push({ name: routeName.veterinarian.register });\n } else {\n this.$router.push({ name: routeName.veterinarian.registrations });\n }\n }\n }\n\n public resetFormFields() {\n this.email = '';\n this.firstName = '';\n this.lastName = '';\n this.selectedPhoneType = '';\n this.selectedMethodOfContact = '';\n this.phone = '';\n this.address1 = '';\n this.address2 = '';\n this.city = '';\n this.state = '';\n this.zipCode = '';\n this.website = '';\n\n this.customerForm.reset();\n }\n\n public onChangeOwnershipClick() {\n this.resetFormFields();\n\n this.$toasted.info(\n `Caution: By saving you will update the registration for ${this.code} with a new owner.`,\n {\n duration: 7000,\n fullWidth: true,\n fitToScreen: true,\n className: ['bg-warning', 'text-dark']\n }\n );\n\n this.$router.replace({\n name: this.roles.includes(Role.Admin)\n ? routeName.admin.addCustomer\n : routeName.veterinarian.addCustomer,\n params: {\n tagCode: this.code\n }\n });\n }\n\n public async onClearResultsClick() {\n await customerModule.clearCurrentCustomerAction();\n this.addingExistingCustomerToNewRegistration = false;\n this.disabledEmailLookup = true;\n this.resetFormFields();\n }\n\n public async onCompleteLaterClick() {\n this.registerLater = true;\n\n await registeredTagModule.addNewTagAction({\n code: this.code,\n veterinarianOfficeId: this.veterinarianOfficeId\n });\n\n if (!this.errorTagResponse) {\n this.navigateOut();\n }\n }\n\n public async onShowCompleteLaterConfirmDialog() {\n // log click event\n const eventLogService = container.get(cid.EventLogService);\n await eventLogService.logEvent({\n eventName: EventLogNames.completeLaterButtonClick\n });\n\n const value = await this.$bvModal.msgBoxConfirm(\n 'STOP! Any customer information you have entered will be lost. CONTINUE after you have noted the label ID # and customer info to enter later. CANCEL to complete the registration now.',\n {\n title: 'Please Confirm',\n okVariant: 'danger',\n okTitle: 'Confirm',\n cancelTitle: 'Cancel'\n }\n );\n\n if (value) {\n await this.onCompleteLaterClick();\n }\n }\n\n public onEditTagClick() {\n this.$bvModal.show('modal-manage-tag');\n }\n\n public onCompletionHandler(newTagCode: string) {\n this.$bvModal.hide('modal-manage-tag');\n\n // No need to await this call\n registeredTagModule.getAllTagsByVeterinarianOfficeIdAction(\n this.selectedVeterinarianOfficeId\n );\n\n this.$router.replace({\n name: this.roles.includes(this.role.Admin)\n ? routeName.admin.editCustomer\n : routeName.veterinarian.editCustomer,\n params: {\n tagCode: newTagCode,\n customerId: this.customerId\n }\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./customer-form.component.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./customer-form.component.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./customer-form.component.vue?vue&type=template&id=7ff558a7&\"\nimport script from \"./customer-form.component.vue?vue&type=script&lang=ts&\"\nexport * from \"./customer-form.component.vue?vue&type=script&lang=ts&\"\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","export enum PhoneNumberType {\n Home = '1',\n Office = '2',\n Fax = '3',\n Mobile = '4'\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"id\":\"modal-manage-tag\",\"title\":\"Manage Tag\",\"hide-footer\":\"\"},on:{\"hide\":_vm.onHideEvent}},[_c('ValidationObserver',{ref:\"manageTagForm\",scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar handleSubmit = ref.handleSubmit;\nvar reset = ref.reset;\nreturn [_c('form',{on:{\"submit\":function($event){$event.preventDefault();return handleSubmit(_vm.onManageTagSaveClick)},\"reset\":function($event){$event.preventDefault();return reset($event)}}},[_c('p',[_vm._v(\"Current tag: \"+_vm._s(_vm.current ? _vm.current.code : ''))]),_c('b-form-group',{staticClass:\"mb-3\"},[_c('ValidationProvider',{attrs:{\"rules\":\"required|min:6|max:6\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar classes = ref.classes;\nreturn [_c('b-form-input',{class:classes,attrs:{\"type\":\"text\",\"placeholder\":\"new tag code\"},model:{value:(_vm.tag),callback:function ($$v) {_vm.tag=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"tag\"}})]}}],null,true)})],1),_c('div',{staticClass:\"d-flex flex-row-reverse align-items-center\"},[_c('b-button-group',[_c('b-button',{attrs:{\"variant\":\"danger\",\"disabled\":_vm.showButtonLoading},on:{\"click\":_vm.onCancelClick}},[_vm._v(\" Cancel\")]),_c('b-button',{attrs:{\"disabled\":_vm.showButtonLoading,\"type\":\"submit\"}},[_vm._v(\" Save \"),(_vm.showButtonLoading)?_c('b-icon-arrow-clockwise',{attrs:{\"animation\":\"spin\"}}):_vm._e()],1)],1)],1)],1)]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Ref, Watch } from 'vue-property-decorator';\nimport { ValidationProvider, ValidationObserver } from 'vee-validate';\nimport { RegisteredTag } from '@/models/DTO/registered-tag/registered-tag.model';\nimport { RegisteredTagActions } from '@/constants/actions.constants';\nimport RegisteredTagModule, {\n REGISTERED_TAG_MODULE_NAME\n} from '@/store/modules/registered-tag.module';\nimport store from '@/store';\nimport { getModule } from 'vuex-module-decorators';\nimport { mapState } from 'vuex';\nimport { BaseAPIErrorModel } from '@/models/DTO/base-api-error.model';\n\nconst registeredTagModule: RegisteredTagModule = getModule(\n RegisteredTagModule,\n store\n);\n\n@Component({\n components: {\n ValidationProvider,\n ValidationObserver\n },\n computed: {\n ...mapState(REGISTERED_TAG_MODULE_NAME, [\n 'showButtonLoading',\n 'errorResponse'\n ])\n }\n})\nexport default class ManageTagFormComponent extends Vue {\n @Prop({\n required: true\n })\n current: RegisteredTag;\n\n public showButtonLoading: boolean;\n public errorResponse: BaseAPIErrorModel | null;\n public tag = '';\n\n @Ref()\n public manageTagForm!: HTMLFormElement;\n\n @Watch('errorResponse', { deep: true })\n private onErrorResponseChanged(value: BaseAPIErrorModel) {\n if (value) {\n const errors = value.getAllErrorMessages();\n return this.$toasted.error(errors.join());\n }\n }\n\n public onHideEvent() {\n this.tag = '';\n this.manageTagForm.reset();\n }\n\n public onCancelClick() {\n this.$bvModal.hide('modal-manage-tag');\n }\n\n public async onManageTagSaveClick(): Promise {\n await registeredTagModule[RegisteredTagActions.updateTagAction]({\n id: this.current.id ?? '',\n code: this.tag,\n customerId: this.current.customerId,\n veterinarianOfficeId: this.current.veterinarianOfficeId\n });\n\n if (!this.errorResponse) {\n this.$emit('completion-handler', this.tag);\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./manage-tag-form.component.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./manage-tag-form.component.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./manage-tag-form.component.vue?vue&type=template&id=7d5e58bc&\"\nimport script from \"./manage-tag-form.component.vue?vue&type=script&lang=ts&\"\nexport * from \"./manage-tag-form.component.vue?vue&type=script&lang=ts&\"\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 { Component, Vue } from 'vue-property-decorator';\nimport { PreferredContactMethodType } from '@/constants/preferred-contact-method-type';\n\n@Component({\n computed: {\n showPhoneMethod(): boolean {\n return (\n this.$data.selectedMethodOfContact === PreferredContactMethodType.Call\n );\n },\n showPhoneField(): boolean {\n return (\n this.$data.selectedMethodOfContact ===\n PreferredContactMethodType.Text ||\n this.$data.selectedMethodOfContact === PreferredContactMethodType.Call\n );\n },\n showAddressFields(): boolean {\n return (\n this.$data.selectedMethodOfContact ===\n PreferredContactMethodType.Address\n );\n },\n showWebsiteField(): boolean {\n return (\n this.$data.selectedMethodOfContact ===\n PreferredContactMethodType.Website\n );\n }\n }\n})\nexport default class CustomerShowFieldMixin extends Vue {\n public selectedMethodOfContact = '';\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-icon-arrow-clockwise',{staticClass:\"loading-float\",attrs:{\"font-scale\":\"2\",\"animation\":\"spin\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class LoadingComponent extends Vue {}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loading.component.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loading.component.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./loading.component.vue?vue&type=template&id=11c68490&\"\nimport script from \"./loading.component.vue?vue&type=script&lang=ts&\"\nexport * from \"./loading.component.vue?vue&type=script&lang=ts&\"\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","export enum PreferredContactMethodType {\n Call = '1',\n Text = '2',\n Address = '3',\n Website = '4'\n}\n","/* eslint-disable no-useless-escape */\nexport class RegexConstants {\n /**\n * Same regex as C# code, but removed ftp and unicode characters.\n * If you need to add flags, use\n * ```\n * new RegExp(RegexConstants.URL, '<>')\n * ```\n *\n * @static\n * @memberof RegexConstants\n * @see https://github.com/microsoft/referencesource/blob/f461f1986ca4027720656a0c77bede9963e20b7e/System.ComponentModel.DataAnnotations/DataAnnotations/UrlAttribute.cs#L46\n */\n public static URL = /^(https?):\\/\\/(((([a-z]|\\d|-|\\.|_|)|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d)|(([a-z]|\\d)([a-z]|\\d|-|\\.|_|~)*([a-z]|\\d)))\\.)+(([a-z])|(([a-z])([a-z]|\\d|-|\\.|_|~)*([a-z])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~)|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~)|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~)|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~)|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/;\n}\n","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar defer = function defer() {\n var state = false; // Resolved or not\n\n var callbacks = [];\n\n var resolve = function resolve(val) {\n if (state) {\n return;\n }\n\n state = true;\n\n for (var i = 0, len = callbacks.length; i < len; i++) {\n callbacks[i](val);\n }\n };\n\n var then = function then(cb) {\n if (!state) {\n callbacks.push(cb);\n return;\n }\n\n cb();\n };\n\n var deferred = {\n resolved: function resolved() {\n return state;\n },\n resolve: resolve,\n promise: {\n then: then\n }\n };\n return deferred;\n};\n\nvar ownProp = Object.prototype.hasOwnProperty;\nfunction createRecaptcha() {\n var deferred = defer();\n return {\n notify: function notify() {\n deferred.resolve();\n },\n wait: function wait() {\n return deferred.promise;\n },\n render: function render(ele, options, cb) {\n this.wait().then(function () {\n cb(window.grecaptcha.render(ele, options));\n });\n },\n reset: function reset(widgetId) {\n if (typeof widgetId === 'undefined') {\n return;\n }\n\n this.assertLoaded();\n this.wait().then(function () {\n return window.grecaptcha.reset(widgetId);\n });\n },\n execute: function execute(widgetId) {\n if (typeof widgetId === 'undefined') {\n return;\n }\n\n this.assertLoaded();\n this.wait().then(function () {\n return window.grecaptcha.execute(widgetId);\n });\n },\n checkRecaptchaLoad: function checkRecaptchaLoad() {\n if (ownProp.call(window, 'grecaptcha') && ownProp.call(window.grecaptcha, 'render')) {\n this.notify();\n }\n },\n assertLoaded: function assertLoaded() {\n if (!deferred.resolved()) {\n throw new Error('ReCAPTCHA has not been loaded');\n }\n }\n };\n}\nvar recaptcha = createRecaptcha();\n\nif (typeof window !== 'undefined') {\n window.vueRecaptchaApiLoaded = recaptcha.notify;\n}\n\nvar VueRecaptcha = {\n name: 'VueRecaptcha',\n props: {\n sitekey: {\n type: String,\n required: true\n },\n theme: {\n type: String\n },\n badge: {\n type: String\n },\n type: {\n type: String\n },\n size: {\n type: String\n },\n tabindex: {\n type: String\n },\n loadRecaptchaScript: {\n type: Boolean,\n \"default\": false\n },\n recaptchaScriptId: {\n type: String,\n \"default\": '__RECAPTCHA_SCRIPT'\n },\n recaptchaHost: {\n type: String,\n \"default\": 'www.google.com'\n },\n language: {\n type: String,\n \"default\": ''\n }\n },\n beforeMount: function beforeMount() {\n if (this.loadRecaptchaScript) {\n if (!document.getElementById(this.recaptchaScriptId)) {\n // Note: vueRecaptchaApiLoaded load callback name is per the latest documentation\n var script = document.createElement('script');\n script.id = this.recaptchaScriptId;\n script.src = \"https://\" + this.recaptchaHost + \"/recaptcha/api.js?onload=vueRecaptchaApiLoaded&render=explicit&hl=\" + this.language;\n script.async = true;\n script.defer = true;\n document.head.appendChild(script);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n recaptcha.checkRecaptchaLoad();\n\n var opts = _extends({}, this.$props, {\n callback: this.emitVerify,\n 'expired-callback': this.emitExpired,\n 'error-callback': this.emitError\n });\n\n var container = this.$slots[\"default\"] ? this.$el.children[0] : this.$el;\n recaptcha.render(container, opts, function (id) {\n _this.$widgetId = id;\n\n _this.$emit('render', id);\n });\n },\n methods: {\n reset: function reset() {\n recaptcha.reset(this.$widgetId);\n },\n execute: function execute() {\n recaptcha.execute(this.$widgetId);\n },\n emitVerify: function emitVerify(response) {\n this.$emit('verify', response);\n },\n emitExpired: function emitExpired() {\n this.$emit('expired');\n },\n emitError: function emitError() {\n this.$emit('error');\n }\n },\n render: function render(h) {\n return h('div', {}, this.$slots[\"default\"]);\n }\n};\n\nexport default VueRecaptcha;\n"],"sourceRoot":""}