@salesforcedevs/dx-components 1.3.81 → 1.3.83

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": "@salesforcedevs/dx-components",
3
- "version": "1.3.81",
3
+ "version": "1.3.83",
4
4
  "description": "DX Lightning web components",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -41,5 +41,5 @@
41
41
  "eventsourcemock": "^2.0.0",
42
42
  "luxon": "^3.1.0"
43
43
  },
44
- "gitHead": "92a788995a419856ee81fe2ea13f877865506a9b"
44
+ "gitHead": "97b96b6a71af7312811bd937293c9da3102ad443"
45
45
  }
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="audio-container">
3
3
  <audio class="audio" controls>
4
- <source src={audio_src} type="audio/mpeg" />
4
+ <source src={audioSrc} type="audio/mpeg" />
5
5
  Your browser does not support the audio element.
6
6
  </audio>
7
7
  </div>
@@ -1,5 +1,55 @@
1
+ import { track } from "dxUtils/analytics";
1
2
  import { LightningElement, api } from "lwc";
2
3
 
3
4
  export default class Audio extends LightningElement {
4
5
  @api audioSrc!: string;
6
+ @api postName!: string;
7
+
8
+ renderedCallback() {
9
+ const audioElement = this.template.querySelector("audio");
10
+ audioElement?.addEventListener(
11
+ "play",
12
+ this.trackPlay.bind(this),
13
+ false
14
+ );
15
+ audioElement?.addEventListener(
16
+ "ended",
17
+ this.trackEnded.bind(this),
18
+ false
19
+ );
20
+ audioElement?.addEventListener(
21
+ "pause",
22
+ this.trackPause.bind(this),
23
+ false
24
+ );
25
+ }
26
+
27
+ private trackClick(e: Event, clickType: string) {
28
+ const audioElement = this.template.querySelector(
29
+ "audio"
30
+ ) as HTMLMediaElement;
31
+
32
+ const payload = {
33
+ event: "custEv_blogAudioPlay",
34
+ media_action: clickType,
35
+ media_name: this.postName,
36
+ media_percentage_played: (
37
+ (audioElement!.currentTime * 100) /
38
+ audioElement!.duration
39
+ ).toFixed(0),
40
+ media_seconds_played: audioElement!.currentTime,
41
+ media_type: "blog audio"
42
+ };
43
+ track(e.currentTarget!, "custEv_blogAudioPlay", payload);
44
+ }
45
+
46
+ private trackPlay(e: Event) {
47
+ this.trackClick(e, "play");
48
+ }
49
+ private trackEnded(e: Event) {
50
+ this.trackClick(e, "complete");
51
+ }
52
+ private trackPause(e: Event) {
53
+ this.trackClick(e, "pause");
54
+ }
5
55
  }