YouTube動画の埋め込みに関係してそうなソース
code:index.js
function (i, _, w) {
"use strict";
w(6), w(7), w(9), w(18), w(3), w(17), w(12), w(2), w(26), w(8), w(4), w(56), w(52), w(5), Object.defineProperty(_, "__esModule", {
value: !0
}), _.parseParams = parseParams, _.normalizeTime = normalizeTime, _.default = _.parseYoutubeShortUrl = _.parseYoutubeCom = void 0;
var P = w(71);
function _slicedToArray(i, _) {
return function _arrayWithHoles(i) {
if (Array.isArray(i)) return i
}(i) || function _iterableToArrayLimit(i, _) {
if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(i))) return;
var w = [],
P = !0,
E = !1,
A = void 0;
try {
for (var j, q = iSymbol.iterator(); !(P = (j = q.next()).done) && (w.push(j.value), !_ || w.length !== _); P = !0); } catch (B) {
E = !0, A = B
} finally {
try {
P || null == q.return || q.return()
} finally {
if (E) throw A
}
}
return w
}(i, _) || _unsupportedIterableToArray(i, _) || function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a Symbol.iterator() method.") }()
}
function _unsupportedIterableToArray(i, _) {
if (i) {
if ("string" == typeof i) return _arrayLikeToArray(i, _);
var w = Object.prototype.toString.call(i).slice(8, -1);
return "Object" === w && i.constructor && (w = i.constructor.name), "Map" === w || "Set" === w ? Array.from(i) : "Arguments" === w || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(w) ? _arrayLikeToArray(i, _) : void 0
}
}
function _arrayLikeToArray(i, _) {
(null == _ || _ > i.length) && (_ = i.length);
for (var w = 0, P = new Array(_); w < _; w++) Pw = iw; return P
}
function parseParams(i) {
var _ = {};
if (!i) return _;
var w, P = function _createForOfIteratorHelper(i, _) {
var w;
if (Array.isArray(i) || (w = _unsupportedIterableToArray(i)) || _ && i && "number" == typeof i.length) {
w && (i = w);
var P = 0,
E = function F() { };
return {
s: E,
n: function n() {
return P >= i.length ? {
done: !0
} : {
done: !1,
}
},
e: function e(i) {
throw i
},
f: E
}
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a Symbol.iterator() method.") }
var A, j = !0,
q = !1;
return {
s: function s() {
},
n: function n() {
var i = w.next();
return j = i.done, i
},
e: function e(i) {
q = !0, A = i
},
f: function f() {
try {
j || null == w.return || w.return()
} finally {
if (q) throw A
}
}
}
}(i.split("&"));
try {
for (P.s(); !(w = P.n()).done;) {
var E = w.value;
if (E) {
var A = _slicedToArray(E.split("="), 2),
}
}
} catch (B) {
P.e(B)
} finally {
P.f()
}
return _.t && (_.t = normalizeTime(_.t)), _
}
function normalizeTime(i) {
if (/^\d+$/.test(i)) return parseInt(i);
for (var _ = 0, w = 0, P = [
[/(\d+)s/, function (i) {
return i
}],
[/(\d+)m/, function (i) {
return 60 * i
}],
[/(\d+)h/, function (i) {
return 3600 * i
}]
]; w < P.length; w++) {
var E = _slicedToArray(Pw, 2), A.test(i) && (_ += j(parseInt(i.match(A)1))) }
return _ || i
}
parseしている
code:index.js
// youtube.com
var E = (0, P.createNodeParser)(/\[(https?:\/\/(?:www\.|)youtube\.com\/watch\?((?:^\s+&|)v=(a-zA-Z\d_-+)(?:&^\s+|)))\]/, (function (i) { var _ = _slicedToArray(i, 4),
return {
type: "youtube",
unit: {
whole: w,
content: P,
params: parseParams(E)
},
children: P
}
}));
_.parseYoutubeCom = E;
// youtu.be
var A = (0, P.createNodeParser)(/\[(https?:\/\/youtu\.be\/(a-zA-Z\d_-+)(?:\?(^\s{0,100})|))\]/, (function (i) { var _ = _slicedToArray(i, 4),
return {
type: "youtube",
unit: {
whole: w,
content: P,
},
children: P
}
}));
_.parseYoutubeShortUrl = A;
var j = (0, P.combineNodeParsers)(E, A);
_.default = j
}
code:index.js
var q = function (i) {
! function _inherits(i, _) {
if ("function" != typeof _ && null !== _) throw new TypeError("Super expression must either be null or a function");
i.prototype = Object.create(_ && _.prototype, {
constructor: {
value: i,
writable: !0,
configurable: !0
}
}), _ && _setPrototypeOf(i, _)
}(IframeVideoPlayer, i);
var _ = _createSuper(IframeVideoPlayer);
function IframeVideoPlayer(i) {
var w;
return function _classCallCheck(i, _) {
if (!(i instanceof _)) throw new TypeError("Cannot call a class as a function")
}(this, IframeVideoPlayer), (w = _.call(this, i)).state = {
show: "page" === j.default.Layout.get()
}, w.subscribe(j.default.Layout), w.onWindowResize = w.onWindowResize.bind(_assertThisInitialized(w)), w
}
return _createClass(IframeVideoPlayer, null, [{
key: "defaultProps",
get: function get() {
return {
params: {}
}
}
}, {
key: "propTypes",
get: function get() {
return {
service: A.default.string.isRequired,
videoId: A.default.string.isRequired,
params: A.default.object,
children: A.default.array
}
}
}]), _createClass(IframeVideoPlayer, [{
key: "onStoreChange",
value: function onStoreChange() {
this.setState({
show: "page" === j.default.Layout.get()
})
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
window.removeEventListener("resize", this.onWindowResize)
}
}, {
key: "onWindowResize",
value: function onWindowResize() {
if (this.playerDom) {
var i = this.playerDom.offsetWidth;
if (!i) return setTimeout(this.onWindowResize, 1e3);
this.playerDom.style.height = "".concat(9 * i / 16, "px")
}
}
}, {
key: "render",
value: function render() {
var i = this,
_ = this.props.children,
w = {
display: _ ? "none" : "inline-block"
};
return P.default.createElement("div", {
className: "iframe-video-player"
}, _ && P.default.createElement("span", {
className: "link"
}, _), P.default.createElement("iframe", {
ref: function ref(_) {
i.playerDom = _
},
style: w,
src: this.state.show ? this.src : "",
type: "text/html",
allowFullScreen: !0
}))
}
}, {
key: "src",
get: function get() {
var i = this.props,
_ = i.videoId;
switch (i.service) {
case "vimeo":
case "youtube":
var w = Object.entries({
// ここでautoplayとstartというパラメータしか扱っていない
autoplay: 0,
start: this.props.params.t || 0
}).map((function (i) {
var _ = _slicedToArray(i, 2),
return "".concat(w, "=").concat(P)
})).join("&");
}
}
}]), IframeVideoPlayer
}(E.default);
_.default = q