diff --git a/package-lock.json b/package-lock.json index 2754a488..8c8cfe65 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "amplitudejs", - "version": "5.3.0", + "version": "5.3.2", "license": "MIT", "devDependencies": { "babel-core": "^6.26.3", @@ -3757,7 +3757,6 @@ "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", - "fsevents": "^1.2.7", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", @@ -4609,8 +4608,7 @@ "esprima": "^3.1.3", "estraverse": "^4.2.0", "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "optionator": "^0.8.1" }, "bin": { "escodegen": "bin/escodegen.js", @@ -6001,8 +5999,7 @@ "dependencies": { "neo-async": "^2.6.0", "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" + "source-map": "^0.6.1" }, "bin": { "handlebars": "bin/handlebars" @@ -10631,7 +10628,6 @@ "capture-exit": "^1.2.0", "exec-sh": "^0.2.0", "fb-watchman": "^2.0.0", - "fsevents": "^1.2.3", "micromatch": "^3.1.4", "minimist": "^1.1.1", "walker": "~1.0.5", @@ -13128,7 +13124,6 @@ "dev": true, "dependencies": { "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", "yargs": "~3.10.0" }, "bin": { diff --git a/src/visual/songSliderElements.js b/src/visual/songSliderElements.js index 1d07c047..6a15acfb 100644 --- a/src/visual/songSliderElements.js +++ b/src/visual/songSliderElements.js @@ -59,6 +59,9 @@ let SongSliderElements = (function() { */ if (playlist == null && song == null) { mainSongSliders[i].value = location; + if (window.Event) { + mainSongSliders[i].dispatchEvent(new Event("change")); + } } } } @@ -105,6 +108,9 @@ let SongSliderElements = (function() { */ if (playlistAttribute == playlist && songAttribute == null) { playlistSongSliders[i].value = location; + if (window.Event) { + playlistSongSliders[i].dispatchEvent(new Event("change")); + } } } } @@ -155,6 +161,9 @@ let SongSliderElements = (function() { */ if (playlistAttribute == null && songAttribute == songIndex) { songSliders[i].value = location; + if (window.Event) { + songSliders[i].dispatchEvent(new Event("change")); + } } } } @@ -195,6 +204,9 @@ let SongSliderElements = (function() { */ for (let i = 0; i < songInPlaylistSliders.length; i++) { songInPlaylistSliders[i].value = location; + if (window.Event) { + songInPlaylistSliders[i].dispatchEvent(new Event("change")); + } } } @@ -213,6 +225,9 @@ let SongSliderElements = (function() { */ for (let i = 0; i < songSliders.length; i++) { songSliders[i].value = 0; + if (window.Event) { + songSliders[i].dispatchEvent(new Event("change")); + } } } @@ -225,7 +240,7 @@ let SongSliderElements = (function() { syncPlaylist: syncPlaylist, syncSong: syncSong, syncSongInPlaylist: syncSongInPlaylist, - resetElements: resetElements + resetElements: resetElements, }; })(); diff --git a/tests/visual/songSliderElements.test.js b/tests/visual/songSliderElements.test.js index bf867850..4c6ba857 100644 --- a/tests/visual/songSliderElements.test.js +++ b/tests/visual/songSliderElements.test.js @@ -84,3 +84,26 @@ test("AmplitudeJS Song Slider Elements adjust current Time For Song", () => { ); expect(document.getElementById("individual-song-slider").value).toBe("45"); }); + +test("AmplitudeJS Song Slider Elements trigger change event when value changed", () => { + Amplitude.playSongAtIndex(2); + + const songSliderEl = document.getElementById("global-song-slider"); + + let onChangeCalled = false; + function onChangeCallback() { + onChangeCalled = true; + } + songSliderEl.addEventListener("change", onChangeCallback); + config.audio.currentTime = 45; + SongSliderElements.sync( + config.audio.currentTime, + config.active_playlist, + config.active_playlist != "" && config.active_playlist != null + ? config.playlists[config.active_playlist].active_index + : config.active_index + ); + + expect(document.getElementById("individual-song-slider").value).toBe("45"); + expect(onChangeCalled).toBe(true); +});