@meetelise/chat 1.20.144 → 1.20.145

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.144",
3
+ "version": "1.20.145",
4
4
  "description": "",
5
5
  "main": "public/dist/index.js",
6
6
  "type": "module",
@@ -3633,4 +3633,4 @@ otherwise there's some empty space at the bottom of the button, which interferes
3633
3633
  position: fixed;
3634
3634
  bottom: 0;
3635
3635
  }
3636
- `,Pr([ue({type:String})],Fr.prototype,"buildingSlug",void 0),Pr([ue({type:String})],Fr.prototype,"orgSlug",void 0),Pr([ue({type:Object})],Fr.prototype,"launcherStyles",void 0),Pr([ue({type:Boolean})],Fr.prototype,"isMinimized",void 0),Pr([ue({type:String})],Fr.prototype,"brandColor",void 0),Pr([le()],Fr.prototype,"chatId",void 0),Pr([le()],Fr.prototype,"analytics",void 0),Pr([le()],Fr.prototype,"launcher",void 0),Pr([le()],Fr.prototype,"building",void 0),Pr([le()],Fr.prototype,"designConcept",void 0),Pr([le()],Fr.prototype,"leadSources",void 0),Pr([le()],Fr.prototype,"currentLeadSource",void 0),Pr([le()],Fr.prototype,"featureFlagShowDropdown",void 0),Pr([le()],Fr.prototype,"phoneNumberForSource",void 0),Pr([le()],Fr.prototype,"hasMounted",void 0),Pr([le()],Fr.prototype,"hideLauncher",void 0),Pr([le()],Fr.prototype,"isLoading",void 0),Pr([le()],Fr.prototype,"showTourNextToChat",void 0),Pr([le()],Fr.prototype,"displayPubnubChat",void 0),Pr([le()],Fr.prototype,"myPubnub",void 0),Pr([le()],Fr.prototype,"enabledChatWidgets",void 0),Pr([le()],Fr.prototype,"webchatConfigHasAutoOpenChat",void 0),Pr([le()],Fr.prototype,"requiresConsent",void 0),Pr([le()],Fr.prototype,"privacyPolicyUrl",void 0),Fr=Pr([ae("me-chat")],Fr);class Mr{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),Dr(),Br();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.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),Mr.meChat=n,e.building&&e.organization&&kr(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),Mr.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)}}Mr.meChat=null,Mr.orgSlug="",Mr.mutationObserver=null,Mr.previousUrl="",Mr.hasBuildingSlug=null,Mr.brandColor="";const Dr=()=>{const e=document.createElement("link");e.setAttribute("rel","stylesheet"),e.setAttribute("type","text/css"),document.head.appendChild(e)},Ur=e=>{for(const t of e){const e=document.getElementById(t);if(e)return e}return null},kr=async(e,n)=>{var i;if(!n||!e)return;const r=await async function(e){if(!e)return!1;try{return(await t().get(Hn(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=Ur(["myContactForm","contactus"]);let a;if(!(o&&o instanceof HTMLFormElement)){const t=document.querySelector("form");return void(window.location.pathname.toLowerCase().includes("contactus")&&qr(n,e,"Could not find form",t?{id:t.id}:void 0))}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 qr(n,e,"Could not find submit button");const s=()=>({firstName:Ur(["firstname","txtName"]),lastName:Ur(["lastname","txtName2"]),email:Ur(["email","txtEmail"]),phone:Ur(["phonenumber","txtPhone"]),message:Ur(["message","txtComments"])});if(Object.values(s()).some((e=>null===e))){const t=Object.entries(s()).filter((([,e])=>null===e)).map((([e])=>e));return qr(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 ui(e,n),a=await hi(n,document.referrer);if(!r)return qr(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&&o.reset(),Object.values(s()).forEach((e=>{e&&(e.disabled=!0)})),l.textContent="Submitted",l.disabled=!0,e.json()})).catch((()=>{l.textContent=u}))}},qr=(e,t,n,i)=>{const r=JSON.stringify({orgSlug:t,buildingSlug:e,reason:n,url:window.location.href,formIdInfo:i});fetch("https://app.meetelise.com/platformApi/webchat/form-override-error",{method:"POST",headers:{"Content-Type":"application/json","building-slug":e,"org-slug":t},body:r})},Br=()=>{const e=document.querySelectorAll('[tabindex="-1"]');for(let t=0;t<e.length;t++)e[t].removeAttribute("tabindex")}})();var r=i.Z;export{r as default};
3636
+ `,Pr([ue({type:String})],Fr.prototype,"buildingSlug",void 0),Pr([ue({type:String})],Fr.prototype,"orgSlug",void 0),Pr([ue({type:Object})],Fr.prototype,"launcherStyles",void 0),Pr([ue({type:Boolean})],Fr.prototype,"isMinimized",void 0),Pr([ue({type:String})],Fr.prototype,"brandColor",void 0),Pr([le()],Fr.prototype,"chatId",void 0),Pr([le()],Fr.prototype,"analytics",void 0),Pr([le()],Fr.prototype,"launcher",void 0),Pr([le()],Fr.prototype,"building",void 0),Pr([le()],Fr.prototype,"designConcept",void 0),Pr([le()],Fr.prototype,"leadSources",void 0),Pr([le()],Fr.prototype,"currentLeadSource",void 0),Pr([le()],Fr.prototype,"featureFlagShowDropdown",void 0),Pr([le()],Fr.prototype,"phoneNumberForSource",void 0),Pr([le()],Fr.prototype,"hasMounted",void 0),Pr([le()],Fr.prototype,"hideLauncher",void 0),Pr([le()],Fr.prototype,"isLoading",void 0),Pr([le()],Fr.prototype,"showTourNextToChat",void 0),Pr([le()],Fr.prototype,"displayPubnubChat",void 0),Pr([le()],Fr.prototype,"myPubnub",void 0),Pr([le()],Fr.prototype,"enabledChatWidgets",void 0),Pr([le()],Fr.prototype,"webchatConfigHasAutoOpenChat",void 0),Pr([le()],Fr.prototype,"requiresConsent",void 0),Pr([le()],Fr.prototype,"privacyPolicyUrl",void 0),Fr=Pr([ae("me-chat")],Fr);class Mr{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),Dr();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.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),Mr.meChat=n,e.building&&e.organization&&kr(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),Mr.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)}}Mr.meChat=null,Mr.orgSlug="",Mr.mutationObserver=null,Mr.previousUrl="",Mr.hasBuildingSlug=null,Mr.brandColor="";const Dr=()=>{const e=document.createElement("link");e.setAttribute("rel","stylesheet"),e.setAttribute("type","text/css"),document.head.appendChild(e)},Ur=e=>{for(const t of e){const e=document.getElementById(t);if(e)return e}return null},kr=async(e,n)=>{var i;if(!n||!e)return;const r=await async function(e){if(!e)return!1;try{return(await t().get(Hn(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=Ur(["myContactForm","contactus"]);let a;if(!(o&&o instanceof HTMLFormElement)){const t=document.querySelector("form");return void(window.location.pathname.toLowerCase().includes("contactus")&&qr(n,e,"Could not find form",t?{id:t.id}:void 0))}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 qr(n,e,"Could not find submit button");const s=()=>({firstName:Ur(["firstname","txtName"]),lastName:Ur(["lastname","txtName2"]),email:Ur(["email","txtEmail"]),phone:Ur(["phonenumber","txtPhone"]),message:Ur(["message","txtComments"])});if(Object.values(s()).some((e=>null===e))){const t=Object.entries(s()).filter((([,e])=>null===e)).map((([e])=>e));return qr(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 ui(e,n),a=await hi(n,document.referrer);if(!r)return qr(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&&o.reset(),Object.values(s()).forEach((e=>{e&&(e.disabled=!0)})),l.textContent="Submitted",l.disabled=!0,e.json()})).catch((()=>{l.textContent=u}))}},qr=(e,t,n,i)=>{const r=JSON.stringify({orgSlug:t,buildingSlug:e,reason:n,url:window.location.href,formIdInfo:i});fetch("https://app.meetelise.com/platformApi/webchat/form-override-error",{method:"POST",headers:{"Content-Type":"application/json","building-slug":e,"org-slug":t},body:r})}})();var r=i.Z;export{r as default};
package/src/MEChat.ts CHANGED
@@ -41,7 +41,6 @@ export default class MEChat {
41
41
  this.hasBuildingSlug = !!opts.building;
42
42
  }
43
43
  installFont();
44
- removeAllNegativeTabIndexes(); // remove negative tab indexes from the page that interfer with webchat input
45
44
  const meChat = document.createElement("me-chat");
46
45
  meChat.setAttribute("orgSlug", opts.organization);
47
46
  this.handleBuildingslug(meChat, opts.building);
@@ -392,10 +391,3 @@ const logContactUsFormError = (
392
391
  body,
393
392
  });
394
393
  };
395
-
396
- const removeAllNegativeTabIndexes = () => {
397
- const elems = document.querySelectorAll('[tabindex="-1"]');
398
- for (let i = 0; i < elems.length; i++) {
399
- elems[i].removeAttribute("tabindex");
400
- }
401
- };