1(()=>{"use strict";class e{constructor(e){this.controller=e}fetchIdentityServiceProviderPromise(){return new Promise(e=>{try{let t=this.controller.getISMDataFromLocalStorage(this.identityServiceProvider);t.length?(this.setIdentityServiceProviderTargeting(t[0]),e({identityServiceProvider:this.identityServiceProvider,responseText:`${this.identityServiceProvider} Data was sent to GAM from LS on Page load`,value:t[0]})):setTimeout(()=>{let t=this.controller.getServiceData(this.identityServiceProvider);t?(this.controller.resolvedServicesData.push(t),this.setIdentityServiceProviderTargeting(t),e({identityServiceProvider:this.identityServiceProvider,responseText:`${this.identityServiceProvider} Data was fetched within the given timeframe`,value:t})):e(this.getNoDataFoundMessage())},this.controller.timeout)}catch(t){e(this.getErrorMessage(t))}})}setIdentityServiceProviderTargeting(e){}getNoDataFoundMessage(){return{identityServiceProvider:this.identityServiceProvider,responseText:`${this.identityServiceProvider} data was not fetched within the given timeframe : ${this.identityServiceProvider} targeting skipped`}}getErrorMessage(e){return{identityServiceProvider:this.identityServiceProvider,responseText:`${this.identityServiceProvider} targeting skipped : ${e}`}}hasTargetingChanged(){return!1}getDefaultNewRelicInfo(){let e={};return e.providerName=this.identityServiceProvider,e.pageUrl=location.href,e.browser=window.hmUtils&&window.hmUtils.getBrowserName(),e.sessionID=window.hmUtils&&window.hmUtils.getOracleCookieId(),e}}class t extends e{constructor(){super(...arguments),this.identityServiceProvider="aim",this.priorityOrder=4}setIdentityServiceProviderTargeting(e){let t=e||this.controller.getServiceData(this.identityServiceProvider);const i=t&&t.value,r=i&&i.npi_number;let o=this.controller.ismTargetingData.findIndex(e=>e.priorityOrder===this.priorityOrder),a={};if(r&&(a.npi=r),o>-1)Object.keys(a).length&&Object.assign(this.controller.ismTargetingData[o].targetingData,a);else{let e={priorityOrder:this.priorityOrder,provider:this.identityServiceProvider,targetingData:a};this.controller.ismTargetingData.push(e)}}hasTargetingChanged(){let e=this.controller.getServiceData(this.identityServiceProvider),t=this.controller.getISMDataFromLocalStorage(this.identityServiceProvider),i=t.length&&t[0],r=e&&e.value&&e.value.npi_number,o=i&&i.value&&i.value.npi_number;return!(!r||!o)&&r!=o}}class i extends e{constructor(){super(...arguments),this.identityServiceProvider="oracle",this.priorityOrder=3}setIdentityServiceProviderTargeting(e){let t=e||this.controller.getServiceData(this.identityServiceProvider);const i=t&&t.value;let r=this.controller.ismTargetingData.findIndex(e=>e.priorityOrder===this.priorityOrder),o={};const{Profession:a,Specialty:s,Segments:n,NPI:l,FirstName:d,LastName:c}=i;l&&(o.npi=l),a&&(o.spr=a,o.profession=a),s&&(o.ssp=s,o.specialty=s),(null==n?void 0:n.length)&&(o.oracleSegments=n);const v=this.getOracleCookieID();if(v&&(o.oraid=v),o.userDetails={},o.userDetails.firstName=d,o.userDetails.lastName=c,r>-1)Object.keys(o).length&&Object.assign(this.controller.ismTargetingData[r].targetingData,o);else{let e={priorityOrder:this.priorityOrder,provider:this.identityServiceProvider,targetingData:o};this.controller.ismTargetingData.push(e)}}hasTargetingChanged(){let e=this.controller.getServiceData(this.identityServiceProvider),t=this.controller.getISMDataFromLocalStorage(this.identityServiceProvider);const i=t.length&&t[0];let r=e&&e.value&&e.value.Segments,o=i&&i.value.Segments,a=e&&e.value&&e.value.Profession,s=i&&i.value.Profession,n=e&&e.value&&e.value.Specialty,l=i&&i.value.Specialty,d=e&&e.value&&e.value.NPI,c=i&&i.value.NPI,v=!1,g={};return r&&o&&r.length===o.length&&(r.length&&r.sort(function(e,t){return e.localeCompare(t)}),o.length&&o.sort(function(e,t){return e.localeCompare(t)}),v=JSON.stringify(r)===JSON.stringify(o),g.segmentsEqual="Segments length is equal but the content is different"),v?a&&s?a!=s:n&&l?n!=l:!(!d||!c)&&d!=c:(g=Object.assign(g,this.getDefaultNewRelicInfo()),g.eventType="ISM Retarget change in Provider Data",g.LSSegments=o&&o.length,g.NewSegments=r&&r.length,window.hmLog&&window.hmLog.sendToNewRelic(g,!0),!0)}
1getOracleCookieID(){const e=window.localStorage&&window.localStorage.getItem("oracleCookieID");let t=window.Cookies&&window.Cookies.get("ORA_FPC");t=t?t.split("id="):"",t=t.length>1?t[1]:"";const i=e||t;return t&&window.localStorage&&window.localStorage.setItem("oracleCookieID",t),i}}class r extends e{constructor(){super(...arguments),this.identityServiceProvider="Haymarket_NPI",this.priorityOrder=1}fetchIdentityServiceProviderPromise(){return new Promise(e=>{try{const t=50,i=Date.now(),r=()=>{let o=window.Cookies&&window.Cookies.get("hmNpiId"),a=window.hmUtils&&window.hmUtils.getParameterByName("NID"),s=window.Cookies&&window.Cookies.get("adnid"),n={};o?(n.value=o,n.key="NPI Cookie"):s?(n.value=s,n.key="adnid Cookie"):a&&(n.value=a,n.key="NID query parameter");const l={identityServiceProvider:this.identityServiceProvider,value:n};return Object.keys(n).length?(this.controller.resolvedServicesData.push(l),this.controller.dataStack.push(l),this.setIdentityServiceProviderTargeting({identityServiceProvider:this.identityServiceProvider,value:n.value}),void e({identityServiceProvider:this.identityServiceProvider,responseText:`${this.identityServiceProvider} Data was sent to GAM from the ${n.key}`,value:n.value})):Date.now()-i>=this.controller.timeout?(l.value="NPI not found!",this.controller.resolvedServicesData.push(l),this.controller.dataStack.push(l),void e({identityServiceProvider:this.identityServiceProvider,responseText:`${this.identityServiceProvider} NPI not found! : ${this.identityServiceProvider} targeting skipped`})):void setTimeout(r,t)};r()}catch(t){e(this.getErrorMessage(t))}})}setIdentityServiceProviderTargeting(e){const t=e&&e.value;let i=this.controller.ismTargetingData.findIndex(e=>e.priorityOrder===this.priorityOrder),r={};if(t&&(r.npi=t.length>10?"":t),i>-1)Object.keys(r).length&&Object.assign(this.controller.ismTargetingData[i].targetingData,r);else{let e={priorityOrder:this.priorityOrder,provider:this.identityServiceProvider,targetingData:r};this.controller.ismTargetingData.push(e)}}}class o extends e{constructor(){super(...arguments),this.identityServiceProvider="Haymarket_User_Profile",this.priorityOrder=2}fetchIdentityServiceProviderPromise(){return new Promise(e=>{try{const t=50,i=Date.now();let r="globalActData";window.hmOIDCRegistration&&(r="user_profile");const o=()=>{let a=window.Cookies&&window.Cookies.get(r);const s={identityServiceProvider:this.identityServiceProvider,value:a};return a&&"undefined"!==window.Cookies.get(r)&&Object.keys(a).length?(this.controller.resolvedServicesData.push(s),this.controller.dataStack.push(s),this.setIdentityServiceProviderTargeting({identityServiceProvider:this.identityServiceProvider,value:a}),void e({identityServiceProvider:this.identityServiceProvider,responseText:`${this.identityServiceProvider} Data was sent to GAM from the user profile cookie`,value:a})):Date.now()-i>=this.controller.timeout?(s.value="User Profile cookie not found!",this.controller.resolvedServicesData.push(s),this.controller.dataStack.push(s),void e({identityServiceProvider:this.identityServiceProvider,responseText:`${this.identityServiceProvider} User Profile cookie not found! : ${this.identityServiceProvider} targeting skipped`})):void setTimeout(o,t)};o()}catch(t){e(this.getErrorMessage(t))}})}setIdentityServiceProviderTargeting(e){var t,i,r,o;let a=e&&e.value;a=a?JSON.parse(a):{};let s=this.controller.ismTargetingData.findIndex(e=>e.priorityOrder===this.priorityOrder),n={log:"0"};if(Object.keys(a).length){const{subscriber:e,medicalData:s}=a,l=e?null===(t=null==s?void 0:s.profession)||void 0===t?void 0:t.id:null==a?void 0:a.profession,d=e?null===(i=null==s?void 0:s.profession)||void 0===i?void 0:i.name:null==a?void 0:a.profession,c=e?null===(r=null==s?void 0:s.specialty)||void 0===r?void 0:r.id:null==a?void 0:a.specialty,v=e?null===(o=null==s?void 0:s.specialty)||void 0===o?void 0:o.name:null==a?void 0:a.specialty,g=e?null==s?void 0:s.npiNumber:null==a?void 0:a.npi,h=e?null==e?void 0:e.email:null==a?void 0:a.email,S=e?null==e?void 0:e.subscriberId:null==a?void 0:a.sub,u=e?null==e?void 0:e.firstName:null==a?void 0:a.given_name,w=e?null==e?void 0:e.lastName:null==a?void 0:a.family_name;n.spr=l?l.toString():"",n.profession=d||"",n.ssp=c?c.toString():"",n.specialty=v||"",h&&(n.eid=window.hmUtils&&window.hmUtils.sha256(h)),g&&(n.npi=g),S&&(n.subid=S.toString()),n.log="1",n.usrc="haymarket",n.userDetails={},n.userDetails.firstName=u,n.userDetails.lastName=w,n.userDetails.email=h}if(s>-1)Object.keys(n).length&&Object.assign(this.controller.ismTargetingData[s].targetingData,n);else{let e={priorityOrder:this.priorityOrder,provider:this.identityServiceProvider,targetingData:n};this.controller.ismTargetingData.push(e)}}}class a{constructor(e){this.timeout=1e3,this.services=[],this.servicesInstances=[],this.resolvedServicesData=[],this.dataStack=[],this.ismTargetingData=[],this.canSaveToLocalStorage=!1,this.registeredServices=()=>(this.servicesInstances.map(e=>this.services.push(e.fetchIdentityServiceProviderPromise())),this.services),this.get
1ServiceData=e=>e&&this.dataStack.length&&this.dataStack.find(t=>t&&t.identityServiceProvider.toLowerCase()==e.toLowerCase()),this.getISMDataFromLocalStorage=e=>{let t=[];if(t=window.localStorage&&JSON.parse(window.localStorage.getItem("ISMDataStack"))||t,e&&t.length){let i=[],r=t.filter((t,i)=>t.identityServiceProvider.toLowerCase()===e.toLowerCase());return r.length&&(i=r),i}return t},this.saveDataToLocalStorage=e=>{let t=[];t=window.localStorage&&JSON.parse(window.localStorage.getItem("ISMDataStack"))||t;let i=t.findIndex((t,i)=>t.identityServiceProvider.toLowerCase()===e.identityServiceProvider.toLowerCase());const r=new Date;i>-1?(t[i].value=e.value,t[i].expiry=r.getTime()+this.lsExpiryTime):(e.expiry=r.getTime()+this.lsExpiryTime,t.push(e)),window.localStorage&&window.localStorage.setItem("ISMDataStack",JSON.stringify(t))},this.getTargetingInfo=()=>{const e={};if(this.ismTargetingData&&this.ismTargetingData.length){const t=[...this.ismTargetingData].sort((e,t)=>e.priorityOrder-t.priorityOrder);for(const i of t)for(const t in i.targetingData)Object.prototype.hasOwnProperty.call(e,t)||(e[t]=i.targetingData[t])}return e},this.shouldTriggerReTargeting=()=>{let e=0;return this.dataStack.length===this.servicesInstances.length&&this.resolvedServicesData.length!==this.servicesInstances.length&&this.servicesInstances.forEach(t=>{t.hasTargetingChanged()&&(e++,t.setIdentityServiceProviderTargeting(),this.saveDataToLocalStorage(this.getServiceData(t.identityServiceProvider)))}),!!e},this.timeout=e||this.timeout,this.lsExpiryTime=864e5,window.ismData&&Array.isArray(window.ismData.dataStack)&&(this.dataStack=window.ismData.dataStack),this.dataStack=new Proxy(this.dataStack,{set:(e,t,i,r)=>{const o="string"==typeof t&&!isNaN(Number(t)),a=Reflect.set(e,t,i,r);return a&&o&&i&&this.canSaveToLocalStorage&&this.saveDataToLocalStorage(i),a}}),this.initializeServiceInstances()}initializeServiceInstances(){window.aimData&&this.servicesInstances.push(new t(this)),window.oracleInfinityTag&&this.servicesInstances.push(new i(this)),this.servicesInstances.push(new r(this)),this.servicesInstances.push(new o(this)),this.deleteLSStaleData()}deleteLSStaleData(){let e=["lytics","haymaket_npi"];if(window.aimData||e.push("aim"),window.oracleInfinityTag||e.push("oracle"),e.length){const t=this.getISMDataFromLocalStorage();t.length&&e.forEach(function(e){let i=t.findIndex((t,i)=>t.identityServiceProvider.toLowerCase()===e);i>-1&&(t.splice(i,1),window.localStorage&&window.localStorage.setItem("ISMDataStack",JSON.stringify(t)))})}}ifAllProvidersDataAvailable(){return this.dataStack.length===this.servicesInstances.length}}class s{constructor(){this.eventType="ISM Data"}getSiteData(){const e={};return e.pageURL=location.href,e.SSOLoggedIn=window.hmUtils.isAUser(),e}logInfoToNewRelic(e){if(!e)return!1;let t=[Object.assign({},{eventType:this.eventType},e)];window.hmLog&&window.hmLog.sendToNewRelic(t)}logDataOnPageLoad(){const e=this.getSiteData();window.ismData.dataStack.forEach(function(t){e[t.identityServiceProvider]=JSON.stringify(t.value)}),e.location="Page Load",this.logInfoToNewRelic(e)}}!function(){if(!window.ismData)return!1;if(!window.ismData.enabled)return console.error("ISM Manager is disabled"),!1;window.ismData.cmd=window.ismData.cmd||[];const e=window.darService&&window.darService.ismData?window.darService.ismData.timeout:window.ismData.timeout,t=new a(e),i={dataStack:t.dataStack,availableTargetingInfoByPriority:t.ismTargetingData,resolvedServicesData:t.resolvedServicesData,services:t.services,getTargetingInfo:t.getTargetingInfo.bind(t),shouldTriggerReTargeting:t.shouldTriggerReTargeting.bind(t),ifAllProvidersDataAvailable:t.ifAllProvidersDataAvailable.bind(t)};window.ismData=Object.assign(window.ismData,i),Promise.allSettled(t.registeredServices()).then(function(){}).catch(function(e){console.error(e)}).finally(function(){t.canSaveToLocalStorage=!0;let e=window.localStorage&&window.localStorage.getItem("ISMDataStack");if(e=JSON.parse(e),(window.ismData.resolvedServicesData.length===window.ismData.services.length||e&&e.length===window.ismData.services.length)&&(window.ismData.allProvidersData=!0),Array.isArray(window.ismData.cmd))for(;window.ismData.cmd.length>0;){const e=window.ismData.cmd.shift();try{"function"==typeof e&&e()}catch(e){console.error(e)}}window.ismData.cmd.push=e=>{try{"function"==typeof e&&e()}catch(e){console.error(e)}};for(const e of t.dataStack)e&&t.saveDataToLocalStorage(e);!function(){try{const e=t.getTargetingInfo(),i=e.npi;i&&window.Cookies.set("hmNpiId",e.npi);let r={};const o=i&&window.hmUtils&&window.hmUtils.sha256(i);r.npi=o&&window.hmUtils.truncateNPIHash(o),r.npiFullHash=o,r.npiValue=i;const a=JSON.stringify(r);window.localStorage&&window.localStorage.setItem("hmi",a)}catch(e){console.error(e)}}(),(new s).logDataOnPageLoad()})}()})(); 2//# sourceMappingURL=ism-manager.min.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.