UNPKG

rizzo-next

Version:

The next generation of Lonely Planet's style guide and pattern library.

89 lines (68 loc) 2.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _brightcove = require("./brightcove"); var _brightcove2 = _interopRequireDefault(_brightcove); var _youtube = require("./youtube"); var _youtube2 = _interopRequireDefault(_youtube); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } require("./_video.scss"); var players = new Map(); players.set("brightcove", _brightcove2.default); players.set("youtube", _youtube2.default); var Video = function () { function Video() { _classCallCheck(this, Video); } _createClass(Video, null, [{ key: "addPlayer", value: function addPlayer(element) { var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref$type = _ref.type, type = _ref$type === undefined ? "brightcove" : _ref$type, _ref$videoId = _ref.videoId, videoId = _ref$videoId === undefined ? null : _ref$videoId, _ref$autoplay = _ref.autoplay, autoplay = _ref$autoplay === undefined ? false : _ref$autoplay; if (typeof element === "string") { element = document.getElementById(element); } if (!element) { return; } this.players = this.players || new Map(); var PlayerConstructor = players.get(type), player = new PlayerConstructor({ el: element, playerId: this.players.size + 1, videoId: videoId, autoplay: autoplay }); this.players.set(element, player); player.on("disposed", this.removePlayer.bind(this)); // Take the return value and use .then() on it to ensure the // player is ready before using it. return new Promise(function (resolve) { if (player.isReady) { resolve(player); return; } player.on("ready", function () { resolve(player); }); }); } }, { key: "removePlayer", value: function removePlayer(player) { if (this.players) { this.players.delete(player.el); } } }]); return Video; }(); exports.default = Video;