@meetelise/chat 1.20.102 → 1.20.103

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meetelise/chat",
3
- "version": "1.20.102",
3
+ "version": "1.20.103",
4
4
  "description": "",
5
5
  "main": "public/dist/index.js",
6
6
  "type": "module",
@@ -3420,4 +3420,4 @@ otherwise there's some empty space at the bottom of the button, which interferes
3420
3420
  position: fixed;
3421
3421
  bottom: 0;
3422
3422
  }
3423
- `,Hr.session=null,jr([de({type:String})],Hr.prototype,"buildingSlug",void 0),jr([de({type:String})],Hr.prototype,"orgSlug",void 0),jr([de({type:String})],Hr.prototype,"themeId",void 0),jr([de({attribute:!1})],Hr.prototype,"avatarSrc",void 0),jr([de({type:Boolean})],Hr.prototype,"useMiniWidget",void 0),jr([de({type:Object})],Hr.prototype,"launcherStyles",void 0),jr([de({type:Boolean})],Hr.prototype,"isMinimized",void 0),jr([de({type:String})],Hr.prototype,"brandColor",void 0),jr([ce()],Hr.prototype,"popup",void 0),jr([ce()],Hr.prototype,"theme",void 0),jr([ce()],Hr.prototype,"chatId",void 0),jr([ce()],Hr.prototype,"analytics",void 0),jr([ce()],Hr.prototype,"isMobile",void 0),jr([ce()],Hr.prototype,"launcher",void 0),jr([ce()],Hr.prototype,"building",void 0),jr([ce()],Hr.prototype,"buildingABTestType",void 0),jr([ce()],Hr.prototype,"leadSources",void 0),jr([ce()],Hr.prototype,"currentLeadSource",void 0),jr([ce()],Hr.prototype,"featureFlagShowDropdown",void 0),jr([ce()],Hr.prototype,"phoneNumberForSource",void 0),jr([ce()],Hr.prototype,"hasMounted",void 0),jr([ce()],Hr.prototype,"hideLauncher",void 0),jr([ce()],Hr.prototype,"isLoading",void 0),jr([ce()],Hr.prototype,"talkjsPopupElement",void 0),jr([ce()],Hr.prototype,"chatProvider",void 0),jr([ce()],Hr.prototype,"showTourNextToChat",void 0),jr([ce()],Hr.prototype,"displayPubnubChat",void 0),jr([ce()],Hr.prototype,"myPubnub",void 0),Hr=Lr=jr([ue("me-chat")],Hr);class Gr{static start(e,t=!0){if(window.location.pathname.includes("residentservices")||window.location.pathname.includes("onlineleasing"))return;t&&(this.orgSlug=e.organization,this.hasBuildingSlug=!!e.building),zr(),Qr();const n=document.createElement("me-chat");n.setAttribute("orgSlug",e.organization),this.handleBuildingslug(n,e.building),n.setAttribute("class","meetelise-chat"),n.setAttribute("role","dialog"),n.setAttribute("aria-label","EliseAI Widget"),n.setAttribute("aria-describedby","aria-describe-info"),n.setAttribute("aria-modal","true"),e.themeId&&n.setAttribute("themeId",e.themeId),e.avatarSrc&&n.setAttribute("avatarSrc",e.avatarSrc),void 0!==e.mini&&(n.useMiniWidget=e.mini),e.launcherStyles&&(n.launcherStyles=e.launcherStyles),e.brandColor&&(this.brandColor=e.brandColor,n.setAttribute("brandColor",((e,t)=>{const n=(r=e,{r:parseInt(r.substring(1,3),16),g:parseInt(r.substring(3,5),16),b:parseInt(r.substring(5,7),16)}),i={r:n.r+Math.round(.3*(0-n.r)),g:n.g+Math.round(.3*(0-n.g)),b:n.b+Math.round(.3*(0-n.b))};var r;return((e,t,n)=>"#"+[e,t,n].map((e=>{const t=e.toString(16);return 1===t.length?"0"+t:t})).join(""))(i.r,i.g,i.b)})(e.brandColor))),document.body.appendChild(n),Gr.meChat=n,e.building&&e.organization&&Wr(e.organization,e.building)}static async restartConversation(){this.meChat&&await this.meChat.restartConversation()}static async remove(){this.meChat&&(await this.meChat.remove(),document.body.removeChild(this.meChat),Gr.meChat=null)}static async handleBuildingslug(e,t){t?e.setAttribute("buildingSlug",t):this.mutationObserver||(this.handleSingleFamilyUrl(),this.previousUrl=window.location.href,document.body.addEventListener("click",(()=>{requestAnimationFrame((()=>{this.previousUrl===window.location.href||this.hasBuildingSlug||(this.previousUrl=window.location.href,this.handleSingleFamilyUrl())}))}),!0))}static async handleSingleFamilyUrl(){if(this.hasBuildingSlug)return;this.remove();const e=window.location.href,n=`https://app.meetelise.com/platformApi/webchat/microsite_slug?uri=${encodeURIComponent(e)}`,i=await t().get(n,{headers:{"org-slug":this.orgSlug}});if(!i||!i.data)return;const r={organization:this.orgSlug,building:i.data,brandColor:this.brandColor};this.start(r,!1)}}Gr.meChat=null,Gr.orgSlug="",Gr.mutationObserver=null,Gr.previousUrl="",Gr.hasBuildingSlug=null,Gr.brandColor="";const zr=()=>{const e=document.createElement("link");e.setAttribute("rel","stylesheet"),e.setAttribute("type","text/css"),document.head.appendChild(e)},Qr=()=>{const e=document.createElement("meta");e.setAttribute("name","viewport"),e.setAttribute("content","width=device-width, initial-scale=1, maximum-scale=2"),document.head.appendChild(e)},Wr=async(e,n)=>{var i;const r=await async function(e){if(!e)return!1;try{return(await t().get(Un(e),{params:{building_slug:e,flag_type:"bool",feature_flag:"webchat-use-override-contact-us-form",default_str:null,default_bool:!1}})).data}catch(e){return!1}}(n);if(!r)return;const o=document.getElementById("myContactForm");let a;if(!(o&&o instanceof HTMLFormElement))return void(window.location.pathname.toLowerCase().includes("contactus")&&Vr(n,e,"Could not find form"));for(let e=0;e<o.elements.length;e++){const t=o.elements[e];if("button"===t.tagName.toLowerCase()&&"fakebutton"===t.getAttribute("data-selenium-id")){a=t;break}}if(!a)return Vr(n,e,"Could not find submit button");const s=()=>({firstName:document.getElementById("firstname"),lastName:document.getElementById("lastname"),email:document.getElementById("email"),phone:document.getElementById("phonenumber"),message:document.getElementById("message")});if(Object.values(s()).some((e=>null===e))){const t=Object.entries(s()).filter((([,e])=>null===e)).map((([e])=>e));return Vr(n,e,"Missing the following form elements: "+t.join(", "))}const u=a.textContent,l=a.cloneNode(!0);null===(i=a.parentNode)||void 0===i||i.replaceChild(l,a),l.onclick=async function(t){if(Object.values(s()).forEach((e=>{"true"!==(null==e?void 0:e.getAttribute("aria-required"))||e.value||(e.className="form-control required is-invalid")})),!Object.values(s()).every((e=>null!==e&&!("true"===e.getAttribute("aria-required")&&!e.value)&&("email"!==e.id&&"phonenumber"!==e.id||"true"!==e.getAttribute("aria-invalid")))))return;t.preventDefault(),l.textContent="Processing request...",l.disabled=!0;const i={};Object.entries(s()).forEach((([e,t])=>i[e]=null==t?void 0:t.value));const r=await xi(e,n),a=await Ei(n,document.referrer);if(!r)return Vr(n,e,"Could not find building"),null;const d={email_address:i.email,first_name:i.firstName,last_name:i.lastName,phone_number:i.phone,first_message:i.message,building_id:r.id,is_external_form:!0,lead_sources:[...new Set(a?[a,"property-website"]:["property-website"])]},c=JSON.stringify(d);fetch("https://app.meetelise.com/platformApi/state/create/contactMe",{method:"POST",headers:{"Content-Type":"application/json","building-slug":n,"org-slug":e},body:c}).then((e=>{if(!e.ok)throw new Error(`HTTP error ${e.status}`);return o.reset(),Object.values(s()).forEach((e=>{e&&(e.disabled=!0)})),l.textContent="Submitted",l.disabled=!0,e.json()})).catch((()=>{l.textContent=u}))}},Vr=(e,t,n)=>{const i=JSON.stringify({orgSlug:t,buildingSlug:e,reason:n});fetch("https://app.meetelise.com/platformApi/webchat/form-override-error",{method:"POST",headers:{"Content-Type":"application/json","building-slug":e,"org-slug":t},body:i})}})();var r=i.Z;export{r as default};
3423
+ `,Hr.session=null,jr([de({type:String})],Hr.prototype,"buildingSlug",void 0),jr([de({type:String})],Hr.prototype,"orgSlug",void 0),jr([de({type:String})],Hr.prototype,"themeId",void 0),jr([de({attribute:!1})],Hr.prototype,"avatarSrc",void 0),jr([de({type:Boolean})],Hr.prototype,"useMiniWidget",void 0),jr([de({type:Object})],Hr.prototype,"launcherStyles",void 0),jr([de({type:Boolean})],Hr.prototype,"isMinimized",void 0),jr([de({type:String})],Hr.prototype,"brandColor",void 0),jr([ce()],Hr.prototype,"popup",void 0),jr([ce()],Hr.prototype,"theme",void 0),jr([ce()],Hr.prototype,"chatId",void 0),jr([ce()],Hr.prototype,"analytics",void 0),jr([ce()],Hr.prototype,"isMobile",void 0),jr([ce()],Hr.prototype,"launcher",void 0),jr([ce()],Hr.prototype,"building",void 0),jr([ce()],Hr.prototype,"buildingABTestType",void 0),jr([ce()],Hr.prototype,"leadSources",void 0),jr([ce()],Hr.prototype,"currentLeadSource",void 0),jr([ce()],Hr.prototype,"featureFlagShowDropdown",void 0),jr([ce()],Hr.prototype,"phoneNumberForSource",void 0),jr([ce()],Hr.prototype,"hasMounted",void 0),jr([ce()],Hr.prototype,"hideLauncher",void 0),jr([ce()],Hr.prototype,"isLoading",void 0),jr([ce()],Hr.prototype,"talkjsPopupElement",void 0),jr([ce()],Hr.prototype,"chatProvider",void 0),jr([ce()],Hr.prototype,"showTourNextToChat",void 0),jr([ce()],Hr.prototype,"displayPubnubChat",void 0),jr([ce()],Hr.prototype,"myPubnub",void 0),Hr=Lr=jr([ue("me-chat")],Hr);class Gr{static start(e,t=!0){if(window.location.pathname.includes("residentservices")||window.location.pathname.includes("onlineleasing"))return;t&&(this.orgSlug=e.organization,this.hasBuildingSlug=!!e.building),zr(),Qr();const n=document.createElement("me-chat");n.setAttribute("orgSlug",e.organization),this.handleBuildingslug(n,e.building),n.setAttribute("class","meetelise-chat"),n.setAttribute("role","dialog"),n.setAttribute("aria-label","EliseAI Widget"),n.setAttribute("aria-describedby","aria-describe-info"),n.setAttribute("aria-modal","true"),e.themeId&&n.setAttribute("themeId",e.themeId),e.avatarSrc&&n.setAttribute("avatarSrc",e.avatarSrc),void 0!==e.mini&&(n.useMiniWidget=e.mini),e.launcherStyles&&(n.launcherStyles=e.launcherStyles),e.brandColor&&(this.brandColor=e.brandColor,n.setAttribute("brandColor",((e,t)=>{const n=(r=e,{r:parseInt(r.substring(1,3),16),g:parseInt(r.substring(3,5),16),b:parseInt(r.substring(5,7),16)}),i={r:n.r+Math.round(.3*(0-n.r)),g:n.g+Math.round(.3*(0-n.g)),b:n.b+Math.round(.3*(0-n.b))};var r;return((e,t,n)=>"#"+[e,t,n].map((e=>{const t=e.toString(16);return 1===t.length?"0"+t:t})).join(""))(i.r,i.g,i.b)})(e.brandColor))),document.body.appendChild(n),Gr.meChat=n,e.building&&e.organization&&Wr(e.organization,e.building)}static async restartConversation(){this.meChat&&await this.meChat.restartConversation()}static async remove(){this.meChat&&(await this.meChat.remove(),document.body.removeChild(this.meChat),Gr.meChat=null)}static async handleBuildingslug(e,t){t?e.setAttribute("buildingSlug",t):this.mutationObserver||(this.handleSingleFamilyUrl(),this.previousUrl=window.location.href,document.body.addEventListener("click",(()=>{requestAnimationFrame((()=>{this.previousUrl===window.location.href||this.hasBuildingSlug||(this.previousUrl=window.location.href,this.handleSingleFamilyUrl())}))}),!0))}static async handleSingleFamilyUrl(){if(this.hasBuildingSlug)return;this.remove();const e=window.location.href,n=`https://app.meetelise.com/platformApi/webchat/microsite_slug?uri=${encodeURIComponent(e)}`,i=await t().get(n,{headers:{"org-slug":this.orgSlug}});if(!i||!i.data)return;const r={organization:this.orgSlug,building:i.data,brandColor:this.brandColor};this.start(r,!1)}}Gr.meChat=null,Gr.orgSlug="",Gr.mutationObserver=null,Gr.previousUrl="",Gr.hasBuildingSlug=null,Gr.brandColor="";const zr=()=>{const e=document.createElement("link");e.setAttribute("rel","stylesheet"),e.setAttribute("type","text/css"),document.head.appendChild(e)},Qr=()=>{const e=document.createElement("meta");e.setAttribute("name","viewport"),e.setAttribute("content","width=device-width, initial-scale=1, maximum-scale=2"),document.head.appendChild(e)},Wr=async(e,n)=>{var i;if(!n||!e)return;const r=await async function(e){if(!e)return!1;try{return(await t().get(Un(e),{params:{building_slug:e,flag_type:"bool",feature_flag:"webchat-use-override-contact-us-form",default_str:null,default_bool:!1}})).data}catch(e){return!1}}(n);if(!r)return;const o=document.getElementById("myContactForm");let a;if(!(o&&o instanceof HTMLFormElement))return void(window.location.pathname.toLowerCase().includes("contactus")&&Vr(n,e,"Could not find form"));for(let e=0;e<o.elements.length;e++){const t=o.elements[e];if("button"===t.tagName.toLowerCase()&&"fakebutton"===t.getAttribute("data-selenium-id")){a=t;break}}if(!a)return Vr(n,e,"Could not find submit button");const s=()=>({firstName:document.getElementById("firstname"),lastName:document.getElementById("lastname"),email:document.getElementById("email"),phone:document.getElementById("phonenumber"),message:document.getElementById("message")});if(Object.values(s()).some((e=>null===e))){const t=Object.entries(s()).filter((([,e])=>null===e)).map((([e])=>e));return Vr(n,e,"Missing the following form elements: "+t.join(", "))}const u=a.textContent,l=a.cloneNode(!0);null===(i=a.parentNode)||void 0===i||i.replaceChild(l,a),l.onclick=async function(t){if(Object.values(s()).forEach((e=>{"true"!==(null==e?void 0:e.getAttribute("aria-required"))||e.value||(e.className="form-control required is-invalid")})),!Object.values(s()).every((e=>null!==e&&!("true"===e.getAttribute("aria-required")&&!e.value)&&("email"!==e.id&&"phonenumber"!==e.id||"true"!==e.getAttribute("aria-invalid")))))return;t.preventDefault(),l.textContent="Processing request...",l.disabled=!0;const i={};Object.entries(s()).forEach((([e,t])=>i[e]=null==t?void 0:t.value));const r=await xi(e,n),a=await Ei(n,document.referrer);if(!r)return Vr(n,e,"Could not find building"),null;const d={email_address:i.email,first_name:i.firstName,last_name:i.lastName,phone_number:i.phone,first_message:i.message,building_id:r.id,is_external_form:!0,lead_sources:[...new Set(a?[a,"property-website"]:["property-website"])]},c=JSON.stringify(d);fetch("https://app.meetelise.com/platformApi/state/create/contactMe",{method:"POST",headers:{"Content-Type":"application/json","building-slug":n,"org-slug":e},body:c}).then((e=>{if(!e.ok)throw new Error(`HTTP error ${e.status}`);return o.reset(),Object.values(s()).forEach((e=>{e&&(e.disabled=!0)})),l.textContent="Submitted",l.disabled=!0,e.json()})).catch((()=>{l.textContent=u}))}},Vr=(e,t,n)=>{const i=JSON.stringify({orgSlug:t,buildingSlug:e,reason:n});fetch("https://app.meetelise.com/platformApi/webchat/form-override-error",{method:"POST",headers:{"Content-Type":"application/json","building-slug":e,"org-slug":t},body:i})}})();var r=i.Z;export{r as default};
package/src/MEChat.ts CHANGED
@@ -181,8 +181,9 @@ const installTalkjsMobileStyleFix = () => {
181
181
 
182
182
  const overrideContactUsForm = async (
183
183
  orgSlug: string,
184
- buildingSlug: string
184
+ buildingSlug?: string
185
185
  ): Promise<void> => {
186
+ if (!buildingSlug || !orgSlug) return;
186
187
  const shouldUseOverrideContactUsForm =
187
188
  await fetchFeatureFlagUseOverrideContactUsForm(buildingSlug);
188
189
  if (!shouldUseOverrideContactUsForm) return;