opentok-text-chat
Advanced tools
Comparing version 1.0.15 to 1.0.16
@@ -526,6 +526,8 @@ /* global OTKAnalytics define */ | ||
_accPack.registerEventListener('endCall', function () { | ||
document.getElementById('enableTextChat').classList.add('ots-hidden'); | ||
if (_displayed) { | ||
_hideTextChat(); | ||
} | ||
if(!_this.options.alwaysOpen) { | ||
document.getElementById('enableTextChat').classList.add('ots-hidden'); | ||
if (_displayed) { | ||
_hideTextChat(); | ||
} | ||
} | ||
}); | ||
@@ -532,0 +534,0 @@ } else { |
@@ -1,1 +0,1 @@ | ||
(function(){var e,t,n;"object"==typeof module&&"object"==typeof module.exports?(e=require("underscore"),t=require("jquery"),window.jQuery=t,window.moment=require("moment"),require("kuende-livestamp"),n=require("opentok-solutions-logging")):(e=this._,t=this.$,window.jQuery=t,window.moment=this.moment,n=this.OTKAnalytics);var s,i,a,o,r,c,d,l,u={clientVersion:"js-vsol-1.0.0",componentId:"textChatAccPack",name:"guidTextChatAccPack",actionInitialize:"Init",actionStart:"Start",actionEnd:"End",actionOpen:"OpenTC",actionClose:"CloseTC",actionSendMessage:"SendMessage",actionReceiveMessage:"ReceiveMessage",actionSetMaxLength:"SetMaxLength",variationAttempt:"Attempt",variationError:"Failure",variationSuccess:"Success"},m=function(){var e=window.location.href,t={clientVersion:u.clientVersion,source:e,componentId:u.componentId,name:u.name};a=new n(t);var s={sessionId:i.id,connectionId:i.connection.connectionId,partnerId:i.apiKey};a.addSessionInfo(s)},g=function(e,t){var n={action:e,variation:t};a.logEvent(n)},v=!1,h=!1,p=!1,f=!1,C=[],y=!1,x=function(e,t){l&&l.triggerEvent(e,t)},S=function(){return['<div class="ots-text-chat-container">','<div class="ots-text-chat">','<div class="ots-messages-header ots-hidden" id="chatHeader">',"<span>Chat with</span>","</div>",'<div id="otsChatWrap">','<div class="ots-messages-holder" id="messagesHolder">','<div class="ots-messages-alert ots-hidden" id="messagesWaiting">Messsages will be delivered once your contact arrives</div>','<div class="ots-message-item ots-message-sent">',"</div>","</div>",'<div class="ots-send-message-box">','<input type="text" maxlength='+s.options.limitCharacterMessage+' class="ots-message-input" placeholder="Enter your message here" id="messageBox">','<button class="ots-icon-check" id="sendMessage" type="submit"></button>','<div class="ots-character-count"><span><span id="characterCount">0</span>/'+s.options.limitCharacterMessage+" characters</span></div>","</div>","</div>","</div>","</div>"].join("\n")},M=function(e){return!!c&&(c.sender.id===e.sender.id&&c.sender.id===e.sender.id)},w=function(){r.value="",t("#characterCount").text("0")},E=function(e){var t=['<div class="'+e.messageClass+'" >','<div class="ots-user-name-initial"> '+e.username[0]+"</div>",'<div class="ots-item-timestamp"> '+e.username+', <span data-livestamp=" '+new Date(e.time)+'" </span></div>','<div class="ots-item-text">',"<span> "+e.message+"</span>","</div>","</div>"].join("\n");return t},T=function(e,n,s,i){var a=o.id===e?"ots-message-item ots-message-sent":"ots-message-item",r=E({username:n,message:s,messageClass:a,time:i}),c=t(d);c.append(r),w(),c[0].scrollTop=c[0].scrollHeight},I=function(e){if(M(e)){t(".ots-item-text").last().append(["<span>",e.message,"</span>"].join(""));var n=t(d);n[0].scrollTop=n[0].scrollHeight,w()}else T(o.id,o.alias,e.message,e.sentOn);c=e,x("messageSent",e)},k=function(n){if(console.log(n.code,n.message),500===n.code){var i=e.template(t("#chatError").html());t(s.comms_elements.messagesView).append(i())}x("errorSendingMessage",n)},b=function(n,s){var a=new t.Deferred;C.push({recipient:n,message:s}),y?q():(j(),a.resolve());var r={text:s,sender:{id:o.id,alias:o.alias},sentOn:Date.now()};return g(u.actionSendMessage,u.variationAttempt),void 0===n?i.signal({type:"text-chat",data:JSON.stringify(r)},function(t){if(t){var n="Error sending a message. ";g(u.actionSendMessage,u.variationFailure),413===t.code?n+="The chat message is over size limit.":500===t.code&&(n+="Check your network connection."),a.reject(e.extend(e.omit(t,"message")),{message:n})}else console.log("Message sent"),g(u.actionSendMessage,u.variationSuccess),a.resolve(r)}):i.signal({type:"text-chat",data:JSON.stringify(r),to:n},function(e){e?(console.log("Error sending a message"),g(u.actionSendMessage,u.variationFailure),a.resolve(e)):(console.log("Message sent"),a.resolve(r),g(u.actionSendMessage,u.variationSuccess))}),a.promise()},L=function(n){e.isEmpty(n)||t.when(b(s._remoteParticipant,n)).then(function(){I({sender:{id:o.id,alias:o.alias},message:n,sentOn:Date.now()}),this.futureMessageNotice&&(this.futureMessageNotice=!1)},function(e){k(e)})},j=function(){var e=document.getElementById("messagesWaiting");e&&e.classList.remove("ots-hidden")},q=function(){var e=document.getElementById("messagesWaiting");e&&e.classList.add("ots-hidden")},O=function(){var e=document.querySelector(s.options.textChatContainer)||document.body,n=document.createElement("section");n.innerHTML=S(),r=n.querySelector("#messageBox"),d=n.querySelector("#messagesHolder"),r.onkeyup=function(){t("#characterCount").text(r.value.length)},r.onkeydown=function(e){var t=13===e.which||13===e.keyCode;!e.shiftKey&&t&&(e.preventDefault(),L(r.value))},e.appendChild(n),document.getElementById("sendMessage").onclick=function(){L(r.value)},g(u.actionInitialize,u.variationSuccess)},A=function(e){var n=JSON.parse(e.data);M(n)?t(".ots-item-text").last().append(["<span>",n.text,"</span>"].join("")):T(n.sender.id,n.sender.alias,n.text,n.sentOn),c=n,g(u.actionReceiveMessage,u.variationSuccess)},D=function(e){var t=i.connection.connectionId,n=e.from.connectionId;if(n!==t){var s=A(e);s&&"function"==typeof s&&s(e),x("messageReceived",e)}},H=function(){C.forEach(function(e){b(e.recipient,e.message)}),C=[]},P=function(e){e.from.connectionId!==i.connection.connectionId&&(y=!0,H())},B=function(){var e={type:"text-chat-ready",data:JSON.stringify({ready:!0})};i.on("signal:text-chat-ready",P),i.signal(e,function(e){e&&console.log("Error sending ready signal",e)})},N=function(){v=!0,h=!0,p=!0,O(),x("showTextChat"),i.on("signal:text-chat",D),B(),g(u.actionStart,u.variationSuccess)},R=function(){document.querySelector(s.options.textChatContainer).classList.remove("ots-hidden"),h=!0,x("showTextChat"),g(u.actionOpen,u.variationSuccess)},_=function(){document.querySelector(s.options.textChatContainer).classList.add("ots-hidden"),h=!1,x("hideTextChat"),g(u.actionClose,u.variationSuccess),g(u.actionEnd,u.variationSuccess)},J=function(){var e=document.querySelector(s.options.controlsContainer),t=document.createElement("div");t.innerHTML='<div class="ots-video-control circle text-chat enabled" id="enableTextChat"></div>';var n=t.firstChild;e.appendChild(n),f=!0,n.onclick=function(){p?h?_():R():N()}},V=function(t){if(!t.session)throw new Error("Text Chat Accelerator Pack requires an OpenTok session.");var n=function(e){var t=e||3;return Math.random().toString(36).substr(2,t)},s=function(){return[n(),i.id,n()].join("")};return i=e.property("session")(t),l=e.property("accPack")(t),o=e.defaults(t.sender||{},{id:s(),alias:["User",n()].join(" ")}),e.defaults(e.omit(t,["accPack","_sender"]),{limitCharacterMessage:160,controlsContainer:"#feedControls",textChatContainer:"#chatContainer"})},W=function(){var e=["showTextChat","hideTextChat","messageSent","errorSendingMessage","messageReceived"];l&&l.registerEvents(e)},z=function(e){e&&e.stream.connection.connectionId!==i.connection.connectionId&&(y=!0,q())},F=function(){i.streams.length()<2&&(y=!1)},K=function(){l?(l.registerEventListener("streamCreated",z),l.registerEventListener("streamDestroyed",F),l.registerEventListener("startCall",function(){f?document.querySelector("#enableTextChat").classList.remove("ots-hidden"):J()}),l.registerEventListener("endCall",function(){document.getElementById("enableTextChat").classList.add("ots-hidden"),h&&_()})):(i.on("streamCreated",z),i.on("streamDestroyed",F)),z()},Q=function(t){s=this,s.options=V(t),m(),e.property("_this.options.limitCharacterMessage")(t)&&g(u.actionSetMaxLength,u.variationSuccess),J(),W(),K()};Q.prototype={constructor:Q,isEnabled:function(){return v},isDisplayed:function(){return h},showTextChat:function(){R()},hideTextChat:function(){_()}},"object"==typeof exports?module.exports=Q:"function"==typeof define&&define.amd?define(function(){return Q}):this.TextChatAccPack=Q}).call(this); | ||
(function(){var e,t,n;"object"==typeof module&&"object"==typeof module.exports?(e=require("underscore"),t=require("jquery"),window.jQuery=t,window.moment=require("moment"),require("kuende-livestamp"),n=require("opentok-solutions-logging")):(e=this._,t=this.$,window.jQuery=t,window.moment=this.moment,n=this.OTKAnalytics);var s,i,a,o,r,c,d,l,u={clientVersion:"js-vsol-1.0.0",componentId:"textChatAccPack",name:"guidTextChatAccPack",actionInitialize:"Init",actionStart:"Start",actionEnd:"End",actionOpen:"OpenTC",actionClose:"CloseTC",actionSendMessage:"SendMessage",actionReceiveMessage:"ReceiveMessage",actionSetMaxLength:"SetMaxLength",variationAttempt:"Attempt",variationError:"Failure",variationSuccess:"Success"},m=function(){var e=window.location.href,t={clientVersion:u.clientVersion,source:e,componentId:u.componentId,name:u.name};a=new n(t);var s={sessionId:i.id,connectionId:i.connection.connectionId,partnerId:i.apiKey};a.addSessionInfo(s)},g=function(e,t){var n={action:e,variation:t};a.logEvent(n)},v=!1,h=!1,p=!1,f=!1,y=[],C=!1,x=function(e,t){l&&l.triggerEvent(e,t)},S=function(){return['<div class="ots-text-chat-container">','<div class="ots-text-chat">','<div class="ots-messages-header ots-hidden" id="chatHeader">',"<span>Chat with</span>","</div>",'<div id="otsChatWrap">','<div class="ots-messages-holder" id="messagesHolder">','<div class="ots-messages-alert ots-hidden" id="messagesWaiting">Messsages will be delivered once your contact arrives</div>','<div class="ots-message-item ots-message-sent">',"</div>","</div>",'<div class="ots-send-message-box">','<input type="text" maxlength='+s.options.limitCharacterMessage+' class="ots-message-input" placeholder="Enter your message here" id="messageBox">','<button class="ots-icon-check" id="sendMessage" type="submit"></button>','<div class="ots-character-count"><span><span id="characterCount">0</span>/'+s.options.limitCharacterMessage+" characters</span></div>","</div>","</div>","</div>","</div>"].join("\n")},w=function(e){return!!c&&(c.sender.id===e.sender.id&&c.sender.id===e.sender.id)},M=function(){r.value="",t("#characterCount").text("0")},E=function(e){var t=['<div class="'+e.messageClass+'" >','<div class="ots-user-name-initial"> '+e.username[0]+"</div>",'<div class="ots-item-timestamp"> '+e.username+', <span data-livestamp=" '+new Date(e.time)+'" </span></div>','<div class="ots-item-text">',"<span> "+e.message+"</span>","</div>","</div>"].join("\n");return t},T=function(e,n,s,i){var a=o.id===e?"ots-message-item ots-message-sent":"ots-message-item",r=E({username:n,message:s,messageClass:a,time:i}),c=t(d);c.append(r),M(),c[0].scrollTop=c[0].scrollHeight},I=function(e){if(w(e)){t(".ots-item-text").last().append(["<span>",e.message,"</span>"].join(""));var n=t(d);n[0].scrollTop=n[0].scrollHeight,M()}else T(o.id,o.alias,e.message,e.sentOn);c=e,x("messageSent",e)},k=function(n){if(console.log(n.code,n.message),500===n.code){var i=e.template(t("#chatError").html());t(s.comms_elements.messagesView).append(i())}x("errorSendingMessage",n)},O=function(n,s){var a=new t.Deferred;y.push({recipient:n,message:s}),C?j():(L(),a.resolve());var r={text:s,sender:{id:o.id,alias:o.alias},sentOn:Date.now()};return g(u.actionSendMessage,u.variationAttempt),void 0===n?i.signal({type:"text-chat",data:JSON.stringify(r)},function(t){if(t){var n="Error sending a message. ";g(u.actionSendMessage,u.variationFailure),413===t.code?n+="The chat message is over size limit.":500===t.code&&(n+="Check your network connection."),a.reject(e.extend(e.omit(t,"message")),{message:n})}else console.log("Message sent"),g(u.actionSendMessage,u.variationSuccess),a.resolve(r)}):i.signal({type:"text-chat",data:JSON.stringify(r),to:n},function(e){e?(console.log("Error sending a message"),g(u.actionSendMessage,u.variationFailure),a.resolve(e)):(console.log("Message sent"),a.resolve(r),g(u.actionSendMessage,u.variationSuccess))}),a.promise()},b=function(n){e.isEmpty(n)||t.when(O(s._remoteParticipant,n)).then(function(){I({sender:{id:o.id,alias:o.alias},message:n,sentOn:Date.now()}),this.futureMessageNotice&&(this.futureMessageNotice=!1)},function(e){k(e)})},L=function(){var e=document.getElementById("messagesWaiting");e&&e.classList.remove("ots-hidden")},j=function(){var e=document.getElementById("messagesWaiting");e&&e.classList.add("ots-hidden")},q=function(){var e=document.querySelector(s.options.textChatContainer)||document.body,n=document.createElement("section");n.innerHTML=S(),r=n.querySelector("#messageBox"),d=n.querySelector("#messagesHolder"),r.onkeyup=function(){t("#characterCount").text(r.value.length)},r.onkeydown=function(e){var t=13===e.which||13===e.keyCode;!e.shiftKey&&t&&(e.preventDefault(),b(r.value))},e.appendChild(n),document.getElementById("sendMessage").onclick=function(){b(r.value)},g(u.actionInitialize,u.variationSuccess)},A=function(e){var n=JSON.parse(e.data);w(n)?t(".ots-item-text").last().append(["<span>",n.text,"</span>"].join("")):T(n.sender.id,n.sender.alias,n.text,n.sentOn),c=n,g(u.actionReceiveMessage,u.variationSuccess)},D=function(e){var t=i.connection.connectionId,n=e.from.connectionId;if(n!==t){var s=A(e);s&&"function"==typeof s&&s(e),x("messageReceived",e)}},H=function(){y.forEach(function(e){O(e.recipient,e.message)}),y=[]},P=function(e){e.from.connectionId!==i.connection.connectionId&&(C=!0,H())},B=function(){var e={type:"text-chat-ready",data:JSON.stringify({ready:!0})};i.on("signal:text-chat-ready",P),i.signal(e,function(e){e&&console.log("Error sending ready signal",e)})},N=function(){v=!0,h=!0,p=!0,q(),x("showTextChat"),i.on("signal:text-chat",D),B(),g(u.actionStart,u.variationSuccess)},R=function(){document.querySelector(s.options.textChatContainer).classList.remove("ots-hidden"),h=!0,x("showTextChat"),g(u.actionOpen,u.variationSuccess)},_=function(){document.querySelector(s.options.textChatContainer).classList.add("ots-hidden"),h=!1,x("hideTextChat"),g(u.actionClose,u.variationSuccess),g(u.actionEnd,u.variationSuccess)},J=function(){var e=document.querySelector(s.options.controlsContainer),t=document.createElement("div");t.innerHTML='<div class="ots-video-control circle text-chat enabled" id="enableTextChat"></div>';var n=t.firstChild;e.appendChild(n),f=!0,n.onclick=function(){p?h?_():R():N()}},V=function(t){if(!t.session)throw new Error("Text Chat Accelerator Pack requires an OpenTok session.");var n=function(e){var t=e||3;return Math.random().toString(36).substr(2,t)},s=function(){return[n(),i.id,n()].join("")};return i=e.property("session")(t),l=e.property("accPack")(t),o=e.defaults(t.sender||{},{id:s(),alias:["User",n()].join(" ")}),e.defaults(e.omit(t,["accPack","_sender"]),{limitCharacterMessage:160,controlsContainer:"#feedControls",textChatContainer:"#chatContainer",alwaysOpen:!1})},W=function(){var e=["showTextChat","hideTextChat","messageSent","errorSendingMessage","messageReceived"];l&&l.registerEvents(e)},z=function(e){e&&e.stream.connection.connectionId!==i.connection.connectionId&&(C=!0,j())},F=function(){i.streams.length()<2&&(C=!1)},K=function(){l?(l.registerEventListener("streamCreated",z),l.registerEventListener("streamDestroyed",F),l.registerEventListener("startCall",function(){s.options.alwaysOpen||(f?document.querySelector("#enableTextChat").classList.remove("ots-hidden"):J())}),l.registerEventListener("endCall",function(){document.getElementById("enableTextChat").classList.add("ots-hidden"),h&&_()})):(i.on("streamCreated",z),i.on("streamDestroyed",F)),z()},Q=function(t){s=this,s.options=V(t),m(),e.property("_this.options.limitCharacterMessage")(t)&&g(u.actionSetMaxLength,u.variationSuccess),s.options.alwaysOpen?N():J(),W(),K()};Q.prototype={constructor:Q,isEnabled:function(){return v},isDisplayed:function(){return h},showTextChat:function(){R()},hideTextChat:function(){_()}},"object"==typeof exports?module.exports=Q:"function"==typeof define&&define.amd?define(function(){return Q}):this.TextChatAccPack=Q}).call(this); |
{ | ||
"name": "opentok-text-chat", | ||
"version": "1.0.15", | ||
"version": "1.0.16", | ||
"description": "OpenTok text chat accelerator pack", | ||
@@ -5,0 +5,0 @@ "main": "dist/opentok-text-chat.js", |
@@ -526,6 +526,8 @@ /* global OTKAnalytics define */ | ||
_accPack.registerEventListener('endCall', function () { | ||
document.getElementById('enableTextChat').classList.add('ots-hidden'); | ||
if (_displayed) { | ||
_hideTextChat(); | ||
} | ||
if(!_this.options.alwaysOpen) { | ||
document.getElementById('enableTextChat').classList.add('ots-hidden'); | ||
if (_displayed) { | ||
_hideTextChat(); | ||
} | ||
} | ||
}); | ||
@@ -532,0 +534,0 @@ } else { |
71114
1869