diff --git a/docs/uncompiled/artplayer-plugin-vtt-thumbnail/index.js b/docs/uncompiled/artplayer-plugin-vtt-thumbnail/index.js index f064ff088..b11350331 100644 --- a/docs/uncompiled/artplayer-plugin-vtt-thumbnail/index.js +++ b/docs/uncompiled/artplayer-plugin-vtt-thumbnail/index.js @@ -142,7 +142,7 @@ this[globalName] = mainExports; } } -})({"eYYuT":[function(require,module,exports) { +})({"1gq8W":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>artplayerPluginVttThumbnail); @@ -163,7 +163,7 @@ function artplayerPluginVttThumbnail(option) { else setStyle($control, "left", `${width - find.w / 2}px`); } art.controls.add({ - name: "thumbnails", + name: "vtt-thumbnail", position: "top", index: 20, style: option.style || {}, @@ -195,7 +195,7 @@ function artplayerPluginVttThumbnail(option) { } if (typeof window !== "undefined") window["artplayerPluginVttThumbnail"] = artplayerPluginVttThumbnail; -},{"./getVttArray":"cKvoV","@parcel/transformer-js/src/esmodule-helpers.js":"kBreb"}],"cKvoV":[function(require,module,exports) { +},{"./getVttArray":"gSM1I","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"gSM1I":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>getVttArray); @@ -252,7 +252,7 @@ async function getVttArray(vttUrl = "") { return vttArray; } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"kBreb"}],"kBreb":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"5dUr6":[function(require,module,exports) { exports.interopDefault = function(a) { return a && a.__esModule ? a : { default: a @@ -282,6 +282,6 @@ exports.export = function(dest, destName, get) { }); }; -},{}]},["eYYuT"], "eYYuT", "parcelRequire94c2") +},{}]},["1gq8W"], "1gq8W", "parcelRequire4dc0") //# sourceMappingURL=index.js.map diff --git a/docs/uncompiled/artplayer-plugin-vtt-thumbnail/index.js.map b/docs/uncompiled/artplayer-plugin-vtt-thumbnail/index.js.map index 3bad4ccee..dcb17f9dc 100644 --- a/docs/uncompiled/artplayer-plugin-vtt-thumbnail/index.js.map +++ b/docs/uncompiled/artplayer-plugin-vtt-thumbnail/index.js.map @@ -1 +1 @@ -{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAEwB;AAFxB;;AAEe,SAAS,4BAA4B,MAAM;IACtD,OAAO,OAAO;QACV,MAAM,EACF,aAAa,EACT,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAChC,EACD,UAAU,EAAE,SAAS,EAAE,EAC1B,GAAG;QAEJ,IAAI,QAAQ;QACZ,MAAM,aAAa,MAAM,CAAA,GAAA,2BAAW,AAAD,EAAE,OAAO,GAAG;QAE/C,SAAS,eAAe,QAAQ,EAAE,IAAI,EAAE,KAAK;YACzC,SAAS,UAAU,mBAAmB,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACxD,SAAS,UAAU,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1C,SAAS,UAAU,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACzC,SAAS,UAAU,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACpE,IAAI,SAAS,KAAK,CAAC,GAAG,GAClB,SAAS,UAAU,QAAQ;iBACxB,IAAI,QAAQ,UAAU,WAAW,GAAG,KAAK,CAAC,GAAG,GAChD,SAAS,UAAU,QAAQ,CAAC,EAAE,UAAU,WAAW,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;iBAEhE,SAAS,UAAU,QAAQ,CAAC,EAAE,QAAQ,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;QAE5D;QAEA,IAAI,QAAQ,CAAC,GAAG,CAAC;YACb,MAAM;YACN,UAAU;YACV,OAAO;YACP,OAAO,OAAO,KAAK,IAAI,CAAC;YACxB,SAAQ,QAAQ;gBACZ,IAAI,EAAE,CAAC,UAAU,OAAO,MAAM,YAAY;oBACtC,MAAM,kBAAkB,SAAS,YAAY,SAAS;oBAEtD,IAAI,SAAS,WAAW,iBAAiB;wBACrC,MAAM,QAAQ,UAAU,WAAW,GAAG;wBACtC,MAAM,SAAS,aAAa,IAAI,QAAQ;wBACxC,SAAS,UAAU,WAAW;wBAE9B,MAAM,OAAO,WAAW,IAAI,CAAC,CAAC,OAAS,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,GAAG;wBACjF,IAAI,CAAC,MAAM,OAAO,SAAS,UAAU,WAAW;wBAEhD,IAAI,QAAQ,KAAK,QAAQ,UAAU,WAAW,EAC1C,eAAe,UAAU,MAAM;6BAE/B,IAAI,CAAC,UACD,SAAS,UAAU,WAAW;wBAItC,IAAI,iBAAiB;4BACjB,aAAa;4BACb,QAAQ,WAAW;gCACf,SAAS,UAAU,WAAW;4BAClC,GAAG;wBACP;oBACJ;gBACJ;YACJ;QACJ;QAEA,OAAO;YACH,MAAM;QACV;IACJ;AACJ;AAEA,IAAI,OAAO,WAAW,aAClB,MAAM,CAAC,8BAA8B,GAAG;;;;;6CC/Cd;AAxB9B,SAAS,OAAO,GAAG,EAAE,YAAY,EAAE,SAAS;IACxC,IAAI,IAAI,MAAM,GAAG,cACb,OAAO,OAAO;SACX;QACH,eAAe,eAAe,IAAI,MAAM;QACxC,IAAI,eAAe,UAAU,MAAM,EAC/B,aAAa,UAAU,MAAM,CAAC,eAAe,UAAU,MAAM;QAEjE,OAAO,OAAO,OAAO,UAAU,KAAK,CAAC,GAAG;IAC5C;AACJ;AAEA,SAAS,IAAI,IAAI;IACb,IAAI,MAAM,KAAK,KAAK,CAAC;IACrB,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE;IAClC,IAAI,QAAQ,OAAO,GAAG,CAAC,EAAE,IAAI,KAAK,GAAG;IACrC,IAAI,KAAK,OAAO,SAAS;IAEzB,IAAI,IAAI,OAAO,IAAI,CAAC,KAAK,MAAM,GAAG,EAAE,IAAI,KAAK;IAC7C,IAAI,IAAI,OAAO,IAAI,CAAC,KAAK,MAAM,GAAG,EAAE,IAAI,KAAK;IAC7C,IAAI,IAAI,OAAO,IAAI,CAAC,KAAK,MAAM,GAAG,EAAE,IAAI;IACxC,OAAO,IAAI,IAAI,IAAI;AACvB;AAEe,eAAe,YAAY,SAAS,EAAE;IACjD,MAAM,YAAY,MAAM,AAAC,CAAA,MAAM,MAAM,OAAM,EAAG,IAAI;IAClD,MAAM,QAAQ,UAAU,KAAK,CAAC,YAAY,MAAM,CAAC,CAAC,OAAS,KAAK,IAAI;IACpE,MAAM,WAAW,EAAE;IAEnB,IAAK,IAAI,IAAI,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAG;QACtC,MAAM,OAAO,KAAK,CAAC,EAAE;QACrB,MAAM,OAAO,KAAK,CAAC,IAAI,EAAE;QAEzB,IAAI,CAAC,KAAK,IAAI,IAAI;QAElB,MAAM,UACF;QACJ,MAAM,YAAY,KAAK,KAAK,CAAC;QAE7B,MAAM,UAAU;QAChB,MAAM,YAAY,KAAK,KAAK,CAAC;QAE7B,MAAM,QAAQ,KAAK,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE;QACzC,MAAM,MAAM,KAAK,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE;QAEvC,IAAI,MAAM,SAAS,CAAC,EAAE;QACtB,MAAM,gBAAgB,gCAAgC,IAAI,CAAC;QAC3D,IAAI,CAAC,eAAe;YAChB,MAAM,SAAS,OAAO,KAAK,CAAC;YAC5B,OAAO,GAAG;YACV,OAAO,IAAI,CAAC;YACZ,MAAM,OAAO,IAAI,CAAC;QACtB;QAEA,MAAM,SAAS;YAAE;YAAO;YAAK;QAAI;QAEjC,MAAM,OAAO,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC;QAChC,MAAM,SAAS,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC;QAElC,IAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,EAAE,IAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE;QAG/B,SAAS,IAAI,CAAC;IAClB;IAEA,OAAO;AACX;;;ACnEA,QAAQ,cAAc,GAAG,SAAU,CAAC;IAClC,OAAO,KAAK,EAAE,UAAU,GAAG,IAAI;QAAC,SAAS;IAAC;AAC5C;AAEA,QAAQ,iBAAiB,GAAG,SAAU,CAAC;IACrC,OAAO,cAAc,CAAC,GAAG,cAAc;QAAC,OAAO;IAAI;AACrD;AAEA,QAAQ,SAAS,GAAG,SAAU,MAAM,EAAE,IAAI;IACxC,OAAO,IAAI,CAAC,QAAQ,OAAO,CAAC,SAAU,GAAG;QACvC,IACE,QAAQ,aACR,QAAQ,gBACR,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,MAE3C;QAGF,OAAO,cAAc,CAAC,MAAM,KAAK;YAC/B,YAAY;YACZ,KAAK;gBACH,OAAO,MAAM,CAAC,IAAI;YACpB;QACF;IACF;IAEA,OAAO;AACT;AAEA,QAAQ,MAAM,GAAG,SAAU,IAAI,EAAE,QAAQ,EAAE,GAAG;IAC5C,OAAO,cAAc,CAAC,MAAM,UAAU;QACpC,YAAY;QACZ,KAAK;IACP;AACF","sources":["Desktop/github/ArtPlayer/packages/artplayer-plugin-vtt-thumbnail/src/index.js","Desktop/github/ArtPlayer/packages/artplayer-plugin-vtt-thumbnail/src/getVttArray.js","Desktop/github/ArtPlayer/node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["import getVttArray from './getVttArray';\n\nexport default function artplayerPluginVttThumbnail(option) {\n return async (art) => {\n const {\n constructor: {\n utils: { setStyle, isMobile },\n },\n template: { $progress },\n } = art;\n\n let timer = null;\n const thumbnails = await getVttArray(option.vtt);\n\n function showThumbnails($control, find, width) {\n setStyle($control, 'backgroundImage', `url(${find.url})`);\n setStyle($control, 'height', `${find.h}px`);\n setStyle($control, 'width', `${find.w}px`);\n setStyle($control, 'backgroundPosition', `-${find.x}px -${find.y}px`);\n if (width <= find.w / 2) {\n setStyle($control, 'left', 0);\n } else if (width > $progress.clientWidth - find.w / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - find.w}px`);\n } else {\n setStyle($control, 'left', `${width - find.w / 2}px`);\n }\n }\n\n art.controls.add({\n name: 'thumbnails',\n position: 'top',\n index: 20,\n style: option.style || {},\n mounted($control) {\n art.on('setBar', async (type, percentage, event) => {\n const isMobileDroging = type === 'played' && event && isMobile;\n\n if (type === 'hover' || isMobileDroging) {\n const width = $progress.clientWidth * percentage;\n const second = percentage * art.duration;\n setStyle($control, 'display', 'flex');\n\n const find = thumbnails.find((item) => second >= item.start && second <= item.end);\n if (!find) return setStyle($control, 'display', 'none');\n\n if (width > 0 && width < $progress.clientWidth) {\n showThumbnails($control, find, width);\n } else {\n if (!isMobile) {\n setStyle($control, 'display', 'none');\n }\n }\n\n if (isMobileDroging) {\n clearTimeout(timer);\n timer = setTimeout(() => {\n setStyle($control, 'display', 'none');\n }, 500);\n }\n }\n });\n },\n });\n\n return {\n name: 'artplayerPluginVttThumbnail',\n };\n };\n}\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginVttThumbnail'] = artplayerPluginVttThumbnail;\n}\n","function padEnd(str, targetLength, padString) {\n if (str.length > targetLength) {\n return String(str);\n } else {\n targetLength = targetLength - str.length;\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length);\n }\n return String(str) + padString.slice(0, targetLength);\n }\n}\n\nfunction t2d(time) {\n var arr = time.split('.');\n var left = arr[0].split(':') || [];\n var right = padEnd(arr[1] || '0', 3, '0');\n var ms = Number(right) / 1000;\n\n var h = Number(left[left.length - 3] || 0) * 3600;\n var m = Number(left[left.length - 2] || 0) * 60;\n var s = Number(left[left.length - 1] || 0);\n return h + m + s + ms;\n}\n\nexport default async function getVttArray(vttUrl = '') {\n const vttString = await (await fetch(vttUrl)).text();\n const lines = vttString.split(/[\\n\\r]/gm).filter((item) => item.trim());\n const vttArray = [];\n\n for (let i = 1; i < lines.length; i += 2) {\n const time = lines[i];\n const text = lines[i + 1];\n\n if (!text.trim()) continue;\n\n const timeReg =\n /((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)(?: ?--> ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/;\n const timeMatch = time.match(timeReg);\n\n const textReg = /(.*)#(\\w{4})=(.*)/i;\n const textMatch = text.match(textReg);\n\n const start = Math.floor(t2d(timeMatch[1]));\n const end = Math.floor(t2d(timeMatch[2]));\n\n let url = textMatch[1];\n const isAbsoluteUrl = /^\\/|((https?|ftp|file):\\/\\/)/i.test(url);\n if (!isAbsoluteUrl) {\n const urlArr = vttUrl.split('/');\n urlArr.pop();\n urlArr.push(url);\n url = urlArr.join('/');\n }\n\n const result = { start, end, url };\n\n const keys = textMatch[2].split('');\n const values = textMatch[3].split(',');\n\n for (let j = 0; j < keys.length; j++) {\n result[keys[j]] = values[j];\n }\n\n vttArray.push(result);\n }\n\n return vttArray;\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../../../../"} \ No newline at end of file +{"mappings":"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","sources":["packages/artplayer-plugin-vtt-thumbnail/src/index.js","packages/artplayer-plugin-vtt-thumbnail/src/getVttArray.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["import getVttArray from './getVttArray';\n\nexport default function artplayerPluginVttThumbnail(option) {\n return async (art) => {\n const {\n constructor: {\n utils: { setStyle, isMobile },\n },\n template: { $progress },\n } = art;\n\n let timer = null;\n const thumbnails = await getVttArray(option.vtt);\n\n function showThumbnails($control, find, width) {\n setStyle($control, 'backgroundImage', `url(${find.url})`);\n setStyle($control, 'height', `${find.h}px`);\n setStyle($control, 'width', `${find.w}px`);\n setStyle($control, 'backgroundPosition', `-${find.x}px -${find.y}px`);\n if (width <= find.w / 2) {\n setStyle($control, 'left', 0);\n } else if (width > $progress.clientWidth - find.w / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - find.w}px`);\n } else {\n setStyle($control, 'left', `${width - find.w / 2}px`);\n }\n }\n\n art.controls.add({\n name: 'vtt-thumbnail',\n position: 'top',\n index: 20,\n style: option.style || {},\n mounted($control) {\n art.on('setBar', async (type, percentage, event) => {\n const isMobileDroging = type === 'played' && event && isMobile;\n\n if (type === 'hover' || isMobileDroging) {\n const width = $progress.clientWidth * percentage;\n const second = percentage * art.duration;\n setStyle($control, 'display', 'flex');\n\n const find = thumbnails.find((item) => second >= item.start && second <= item.end);\n if (!find) return setStyle($control, 'display', 'none');\n\n if (width > 0 && width < $progress.clientWidth) {\n showThumbnails($control, find, width);\n } else {\n if (!isMobile) {\n setStyle($control, 'display', 'none');\n }\n }\n\n if (isMobileDroging) {\n clearTimeout(timer);\n timer = setTimeout(() => {\n setStyle($control, 'display', 'none');\n }, 500);\n }\n }\n });\n },\n });\n\n return {\n name: 'artplayerPluginVttThumbnail',\n };\n };\n}\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginVttThumbnail'] = artplayerPluginVttThumbnail;\n}\n","function padEnd(str, targetLength, padString) {\n if (str.length > targetLength) {\n return String(str);\n } else {\n targetLength = targetLength - str.length;\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length);\n }\n return String(str) + padString.slice(0, targetLength);\n }\n}\n\nfunction t2d(time) {\n var arr = time.split('.');\n var left = arr[0].split(':') || [];\n var right = padEnd(arr[1] || '0', 3, '0');\n var ms = Number(right) / 1000;\n\n var h = Number(left[left.length - 3] || 0) * 3600;\n var m = Number(left[left.length - 2] || 0) * 60;\n var s = Number(left[left.length - 1] || 0);\n return h + m + s + ms;\n}\n\nexport default async function getVttArray(vttUrl = '') {\n const vttString = await (await fetch(vttUrl)).text();\n const lines = vttString.split(/[\\n\\r]/gm).filter((item) => item.trim());\n const vttArray = [];\n\n for (let i = 1; i < lines.length; i += 2) {\n const time = lines[i];\n const text = lines[i + 1];\n\n if (!text.trim()) continue;\n\n const timeReg =\n /((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)(?: ?--> ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/;\n const timeMatch = time.match(timeReg);\n\n const textReg = /(.*)#(\\w{4})=(.*)/i;\n const textMatch = text.match(textReg);\n\n const start = Math.floor(t2d(timeMatch[1]));\n const end = Math.floor(t2d(timeMatch[2]));\n\n let url = textMatch[1];\n const isAbsoluteUrl = /^\\/|((https?|ftp|file):\\/\\/)/i.test(url);\n if (!isAbsoluteUrl) {\n const urlArr = vttUrl.split('/');\n urlArr.pop();\n urlArr.push(url);\n url = urlArr.join('/');\n }\n\n const result = { start, end, url };\n\n const keys = textMatch[2].split('');\n const values = textMatch[3].split(',');\n\n for (let j = 0; j < keys.length; j++) {\n result[keys[j]] = values[j];\n }\n\n vttArray.push(result);\n }\n\n return vttArray;\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file