@meetelise/chat 1.1.0 → 1.3.1

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.
@@ -1,4 +1,5 @@
1
1
  {
2
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
2
3
  "editor.formatOnSave": false,
3
4
  "[typescript]": {
4
5
  "editor.formatOnSave": true
@@ -53,6 +53,7 @@ export default class MEChat {
53
53
  private building;
54
54
  private theme;
55
55
  private chatId;
56
+ private analytics;
56
57
  private constructor();
57
58
  }
58
59
  export interface Options {
@@ -4,7 +4,7 @@ import { getChatID, createChatID } from "./chatID";
4
4
  import createConversation from "./createConversation";
5
5
  import installTalkJSStyles from "./installTalkJSStyles";
6
6
  import resolveTheme from "./resolveTheme";
7
- import { ping } from "./analytics";
7
+ import Analytics from "./analytics";
8
8
  /**
9
9
  * The interface to MeetElise chat.
10
10
  *
@@ -22,7 +22,8 @@ export default class MEChat {
22
22
  this.orgSlug = organization;
23
23
  this.buildingSlug = building;
24
24
  this.chatId = getChatID(organization, building);
25
- ping("load", this.chatId);
25
+ this.analytics = new Analytics(organization, building, this.chatId);
26
+ this.analytics.ping("load");
26
27
  this.theme = theme;
27
28
  this.building = fetchBuildingInfo(organization, building);
28
29
  this.popup = Promise.all([this.building, MEChat.session]).then(async ([building, session]) => {
@@ -30,7 +31,7 @@ export default class MEChat {
30
31
  installTalkJSStyles(resolvedTheme);
31
32
  const p = session.createPopup(createConversation(session, building, resolvedTheme, this.chatId));
32
33
  p.on("open", () => {
33
- ping("open", this.chatId);
34
+ this.analytics.ping("open");
34
35
  });
35
36
  if (building.conversationMaintenanceMode) {
36
37
  return new Promise(() => {
@@ -80,6 +81,7 @@ export default class MEChat {
80
81
  restartConversation() {
81
82
  Promise.all([MEChat.session, this.building, this.popup]).then(([session, building, popup]) => {
82
83
  this.chatId = createChatID(this.orgSlug, this.buildingSlug);
84
+ this.analytics.chatId = this.chatId;
83
85
  popup.select(createConversation(session, building, resolveTheme(building, this.theme), this.chatId));
84
86
  });
85
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MEChat.js","sourceRoot":"","sources":["../../src/MEChat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MEChat.js","sourceRoot":"","sources":["../../src/MEChat.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,iBAA+B,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,YAAuB,MAAM,gBAAgB,CAAC;AACrD,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IA6GzB,YAAoB,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,GAAG,EAAE,EAAW;QACjE,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAC5D,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE;YAC5B,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YACnE,mBAAmB,CAAC,aAAa,CAAC,CAAC;YACnC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAC3B,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAClE,CAAC;YACF,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,2BAA2B,EAAE;gBACxC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE;oBACtB,8DAA8D;oBAC9D,sCAAsC;oBACtC,OAAO,CAAC,IAAI,CACV,mEAAmE,CACpE,CAAC;gBACJ,CAAC,CAAC,CAAC;aACJ;YACD,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;YAC1D,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC5D,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACxC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,CAAC,CAAC;QACX,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACnC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAC9B,qBAAqB,CACtB,CAAC;YACF,IAAI,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YACtE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAClC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5B,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IA7ID;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,IAAa;QACxB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,MAAM;QACJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAC3D,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE;YAC7B,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5D,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACpC,KAAK,CAAC,MAAM,CACV,kBAAkB,CAChB,OAAO,EACP,QAAQ,EACR,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAClC,IAAI,CAAC,MAAM,CACZ,CACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,KAAqB;QAC5B,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aACrD,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE;YACnC,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE;gBACzD,GAAG,IAAI,CAAC,KAAK;gBACb,GAAG,KAAK;aACT,CAAC,CAAC,CAAC;YACJ,KAAK,CAAC,MAAM,CACV,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAClE,CAAC;YACF,mBAAmB,CAAC,aAAa,CAAC,CAAC;YACnC,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAC5C,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;;YACT,IAAI,CAAC,cAAc;gBAAE,OAAO;YAC5B,IAAI,cAAc,YAAY,WAAW;gBAAE,cAAc,CAAC,KAAK,EAAE,CAAC;;gBAC7D,MAAA,cAAc,CAAC,aAAa,0CAAE,KAAK,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,+BAA+B;IAC/B,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,gCAAgC;IAChC,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,sEAAsE;IACtE,IAAI;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,4EAA4E;IAC5E,IAAI;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;;AAjGM,cAAO,GAA0B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;IAC3D,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;QACvB,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IACH,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;QACtB,KAAK,EAAE,UAAU;QACjB,EAAE;KACH,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1,13 @@
1
- export declare function ping(type: string, chatId: string): void;
1
+ /**
2
+ * A connection to the MeetElise API to send analytics events.
3
+ */
4
+ export default class Analytics {
5
+ private org;
6
+ private building;
7
+ chatId: string;
8
+ constructor(org: string, building: string, chatId: string);
9
+ /**
10
+ * Send an event. Takes one argument, the event type name.
11
+ */
12
+ ping(eventType: string): void;
13
+ }
@@ -1,12 +1,30 @@
1
- export function ping(type, chatId) {
2
- fetch("https://api.meetelise.com/api/pub/chat-stats", {
3
- method: "POST",
4
- credentials: "omit",
5
- body: JSON.stringify({ eventType: type, chatId, url: location.href }),
6
- keepalive: true,
7
- headers: {
8
- "content-type": "application/json; charset=UTF-8",
9
- },
10
- });
1
+ /**
2
+ * A connection to the MeetElise API to send analytics events.
3
+ */
4
+ export default class Analytics {
5
+ constructor(org, building, chatId) {
6
+ this.org = org;
7
+ this.building = building;
8
+ this.chatId = chatId;
9
+ }
10
+ /**
11
+ * Send an event. Takes one argument, the event type name.
12
+ */
13
+ ping(eventType) {
14
+ fetch("https://api.meetelise.com/api/pub/chat-stats", {
15
+ method: "POST",
16
+ credentials: "omit",
17
+ keepalive: true,
18
+ headers: { "content-type": "application/json; charset=UTF-8" },
19
+ body: JSON.stringify({
20
+ eventType,
21
+ chatId: this.chatId,
22
+ url: location.href,
23
+ org: this.org,
24
+ building: this.building,
25
+ referrer: document.referrer,
26
+ }),
27
+ });
28
+ }
11
29
  }
12
30
  //# sourceMappingURL=analytics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/analytics.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,MAAc;IAC/C,KAAK,CAAC,8CAA8C,EAAE;QACpD,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrE,SAAS,EAAE,IAAI;QACf,OAAO,EAAE;YACP,cAAc,EAAE,iCAAiC;SAClD;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/analytics.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAK5B,YAAY,GAAW,EAAE,QAAgB,EAAE,MAAc;QACvD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,SAAiB;QACpB,KAAK,CAAC,8CAA8C,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,MAAM;YACnB,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE;YAC9D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS;gBACT,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,QAAQ,CAAC,IAAI;gBAClB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B,CAAC;SACH,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -23,6 +23,7 @@ export default function createConversation(session, building, theme, chatID) {
23
23
  bannerTextColor: theme.bannerTextColor,
24
24
  messageColor: theme.messageColor,
25
25
  messageTextColor: theme.messageTextColor,
26
+ url: location.href,
26
27
  };
27
28
  return conversation;
28
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createConversation.js","sourceRoot":"","sources":["../../src/createConversation.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAG1C,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,OAAqB,EACrB,QAAkB,EAClB,KAAY,EACZ,MAAc;;IAEd,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;QAC1B,EAAE,EAAE,YAAY,QAAQ,CAAC,EAAE,EAAE;QAC7B,IAAI,EAAE,QAAQ,CAAC,aAAa;QAC5B,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC;QAChC,IAAI,EAAE,SAAS;QACf,cAAc,EAAE,QAAQ,CAAC,cAAc;KACxC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7D,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;IACvC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,YAAY,CAAC,MAAM,GAAG;QACpB,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE;QAClC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;QAClC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;QAChC,QAAQ,EAAE,MAAA,KAAK,CAAC,YAAY,mCAAI,IAAI;QACpC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;KACzC,CAAC;IACF,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"createConversation.js","sourceRoot":"","sources":["../../src/createConversation.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAG1C,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,OAAqB,EACrB,QAAkB,EAClB,KAAY,EACZ,MAAc;;IAEd,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;QAC1B,EAAE,EAAE,YAAY,QAAQ,CAAC,EAAE,EAAE;QAC7B,IAAI,EAAE,QAAQ,CAAC,aAAa;QAC5B,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC;QAChC,IAAI,EAAE,SAAS;QACf,cAAc,EAAE,QAAQ,CAAC,cAAc;KACxC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7D,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;IACvC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,YAAY,CAAC,MAAM,GAAG;QACpB,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE;QAClC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;QAClC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;QAChC,QAAQ,EAAE,MAAA,KAAK,CAAC,YAAY,mCAAI,IAAI;QACpC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,GAAG,EAAE,QAAQ,CAAC,IAAI;KACnB,CAAC;IACF,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -5,6 +5,7 @@ export interface Building {
5
5
  id: number;
6
6
  avatarInitials: string | null;
7
7
  avatarSrc: string | null;
8
+ avatarType: "image" | "initials" | null;
8
9
  backgroundColor: string | null;
9
10
  bannerColor: string | null;
10
11
  bannerTextColor: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"fetchBuildingInfo.js","sourceRoot":"","sources":["../../src/fetchBuildingInfo.ts"],"names":[],"mappings":"AA6BA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAC7C,OAAe,EACf,YAAoB;IAEpB,MAAM,IAAI,GAAG,2BAA2B,CAAC;IACzC,MAAM,GAAG,GAAG,GAAG,IAAI,4BAA4B,OAAO,aAAa,YAAY,EAAE,CAAC;IAClF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAa,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACjD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"fetchBuildingInfo.js","sourceRoot":"","sources":["../../src/fetchBuildingInfo.ts"],"names":[],"mappings":"AA8BA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAC7C,OAAe,EACf,YAAoB;IAEpB,MAAM,IAAI,GAAG,2BAA2B,CAAC;IACzC,MAAM,GAAG,GAAG,GAAG,IAAI,4BAA4B,OAAO,aAAa,YAAY,EAAE,CAAC;IAClF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAa,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACjD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -10,7 +10,7 @@
10
10
  * @returns a URL suitable for use as a CSS background-image or <img> src.
11
11
  */
12
12
  export default function getAvatarURL(building) {
13
- if (building.avatarSrc)
13
+ if (building.avatarType === "image" && building.avatarSrc)
14
14
  return building.avatarSrc;
15
15
  const initials = building.avatarInitials;
16
16
  const bgColor = building.launchButtonColor;
@@ -1 +1 @@
1
- {"version":3,"file":"getAvatarUrl.js","sourceRoot":"","sources":["../../src/getAvatarUrl.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,QAAkB;IACrD,IAAI,QAAQ,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAC,SAAS,CAAC;IAElD,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC;IACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IAE3C,MAAM,WAAW,GAAG;;uDAEiC,OAAO;;;;;;;;;MASxD,QAAQ;;EAEZ;SACG,IAAI,EAAE;SACN,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,OAAO,6BAA6B,MAAM,EAAE,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"getAvatarUrl.js","sourceRoot":"","sources":["../../src/getAvatarUrl.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,QAAkB;IACrD,IAAI,QAAQ,CAAC,UAAU,KAAK,OAAO,IAAI,QAAQ,CAAC,SAAS;QACvD,OAAO,QAAQ,CAAC,SAAS,CAAC;IAE5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC;IACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IAE3C,MAAM,WAAW,GAAG;;uDAEiC,OAAO;;;;;;;;;MASxD,QAAQ;;EAEZ;SACG,IAAI,EAAE;SACN,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,OAAO,6BAA6B,MAAM,EAAE,CAAC;AAC/C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meetelise/chat",
3
- "version": "1.1.0",
3
+ "version": "1.3.1",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/MEChat.ts CHANGED
@@ -4,7 +4,7 @@ import { getChatID, createChatID } from "./chatID";
4
4
  import createConversation from "./createConversation";
5
5
  import installTalkJSStyles from "./installTalkJSStyles";
6
6
  import resolveTheme, { Theme } from "./resolveTheme";
7
- import { ping } from "./analytics";
7
+ import Analytics from "./analytics";
8
8
 
9
9
  /**
10
10
  * The interface to MeetElise chat.
@@ -59,6 +59,7 @@ export default class MEChat {
59
59
  Promise.all([MEChat.session, this.building, this.popup]).then(
60
60
  ([session, building, popup]) => {
61
61
  this.chatId = createChatID(this.orgSlug, this.buildingSlug);
62
+ this.analytics.chatId = this.chatId;
62
63
  popup.select(
63
64
  createConversation(
64
65
  session,
@@ -124,12 +125,15 @@ export default class MEChat {
124
125
  private building: Promise<Building>;
125
126
  private theme: Partial<Theme>;
126
127
  private chatId: string;
128
+ private analytics: Analytics;
127
129
 
128
130
  private constructor({ organization, building, theme = {} }: Options) {
129
131
  this.orgSlug = organization;
130
132
  this.buildingSlug = building;
131
133
  this.chatId = getChatID(organization, building);
132
- ping("load", this.chatId);
134
+ this.analytics = new Analytics(organization, building, this.chatId);
135
+ this.analytics.ping("load");
136
+
133
137
  this.theme = theme;
134
138
  this.building = fetchBuildingInfo(organization, building);
135
139
  this.popup = Promise.all([this.building, MEChat.session]).then(
@@ -140,7 +144,7 @@ export default class MEChat {
140
144
  createConversation(session, building, resolvedTheme, this.chatId)
141
145
  );
142
146
  p.on("open", () => {
143
- ping("open", this.chatId);
147
+ this.analytics.ping("open");
144
148
  });
145
149
  if (building.conversationMaintenanceMode) {
146
150
  return new Promise(() => {
package/src/analytics.ts CHANGED
@@ -1,11 +1,34 @@
1
- export function ping(type: string, chatId: string): void {
2
- fetch("https://api.meetelise.com/api/pub/chat-stats", {
3
- method: "POST",
4
- credentials: "omit",
5
- body: JSON.stringify({ eventType: type, chatId, url: location.href }),
6
- keepalive: true,
7
- headers: {
8
- "content-type": "application/json; charset=UTF-8",
9
- },
10
- });
1
+ /**
2
+ * A connection to the MeetElise API to send analytics events.
3
+ */
4
+ export default class Analytics {
5
+ private org: string;
6
+ private building: string;
7
+ public chatId: string;
8
+
9
+ constructor(org: string, building: string, chatId: string) {
10
+ this.org = org;
11
+ this.building = building;
12
+ this.chatId = chatId;
13
+ }
14
+
15
+ /**
16
+ * Send an event. Takes one argument, the event type name.
17
+ */
18
+ ping(eventType: string): void {
19
+ fetch("https://api.meetelise.com/api/pub/chat-stats", {
20
+ method: "POST",
21
+ credentials: "omit", // Necessary for successful CORS
22
+ keepalive: true, // Analytics should not abort after browser close
23
+ headers: { "content-type": "application/json; charset=UTF-8" },
24
+ body: JSON.stringify({
25
+ eventType,
26
+ chatId: this.chatId,
27
+ url: location.href,
28
+ org: this.org,
29
+ building: this.building,
30
+ referrer: document.referrer,
31
+ }),
32
+ });
33
+ }
11
34
  }
@@ -30,6 +30,7 @@ export default function createConversation(
30
30
  bannerTextColor: theme.bannerTextColor,
31
31
  messageColor: theme.messageColor,
32
32
  messageTextColor: theme.messageTextColor,
33
+ url: location.href,
33
34
  };
34
35
  return conversation;
35
36
  }
@@ -6,6 +6,7 @@ export interface Building {
6
6
 
7
7
  avatarInitials: string | null;
8
8
  avatarSrc: string | null;
9
+ avatarType: "image" | "initials" | null;
9
10
  backgroundColor: string | null;
10
11
  bannerColor: string | null;
11
12
  bannerTextColor: string | null;
@@ -12,7 +12,8 @@ import { Building } from "./fetchBuildingInfo";
12
12
  * @returns a URL suitable for use as a CSS background-image or <img> src.
13
13
  */
14
14
  export default function getAvatarURL(building: Building): string {
15
- if (building.avatarSrc) return building.avatarSrc;
15
+ if (building.avatarType === "image" && building.avatarSrc)
16
+ return building.avatarSrc;
16
17
 
17
18
  const initials = building.avatarInitials;
18
19
  const bgColor = building.launchButtonColor;