UNPKG

waveform-playlist-nartj

Version:

Multiple track web audio editor and player with waveform preview

52 lines (40 loc) 1.72 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _conversions = require("../utils/conversions"); /* * virtual-dom hook for scrolling the track container. */ var _default = /*#__PURE__*/function () { function _default(playlist) { (0, _classCallCheck2["default"])(this, _default); this.playlist = playlist; } (0, _createClass2["default"])(_default, [{ key: "hook", value: function hook(node) { var playlist = this.playlist; if (!playlist.isScrolling) { var el = node; if (playlist.isAutomaticScroll && node.querySelector('.cursor')) { var rect = node.getBoundingClientRect(); var cursorRect = node.querySelector('.cursor').getBoundingClientRect(); if (cursorRect.right > rect.right || cursorRect.right < 0) { var controlWidth = playlist.controls.show ? playlist.controls.width : 0; var width = (0, _conversions.pixelsToSeconds)(rect.right - rect.left, playlist.samplesPerPixel, playlist.sampleRate); playlist.scrollLeft = Math.min(playlist.playbackSeconds, playlist.duration - (width - controlWidth)); } } var left = (0, _conversions.secondsToPixels)(playlist.scrollLeft, playlist.samplesPerPixel, playlist.sampleRate); el.scrollLeft = left; } } }]); return _default; }(); exports["default"] = _default;